• Java远程操作Linux服务器命令


    Java可以通过SSH协议远程连接Linux服务器,然后使用JSch库或者Apache Commons Net库来执行远程Linux命令。以下是一个使用JSch库的示例代码:

    1. import com.jcraft.jsch.*;
    2. public class RemoteCommandExecutor {
    3. private String host;
    4. private String user;
    5. private String password;
    6. public RemoteCommandExecutor(String host, String user, String password) {
    7. this.host = host;
    8. this.user = user;
    9. this.password = password;
    10. }
    11. public void executeCommand(String command) throws JSchException {
    12. JSch jsch = new JSch();
    13. Session session = jsch.getSession(user, host, 22); // 默认SSH端口号为22
    14. session.setConfig("StrictHostKeyChecking", "no"); // 不进行公钥验证
    15. session.setPassword(password);
    16. session.connect();
    17. ChannelExec channel = (ChannelExec) session.openChannel("exec");
    18. channel.setCommand(command);
    19. channel.setInputStream(null);
    20. channel.setErrStream(System.err);
    21. channel.connect();
    22. channel.disconnect();
    23. session.disconnect();
    24. }
    25. public static void main(String[] args) throws JSchException {
    26. RemoteCommandExecutor executor = new RemoteCommandExecutor("192.168.0.1", "username", "password");
    27. executor.executeCommand("ls -l");
    28. }
    29. }

    该示例通过构造方法传入服务器地址、用户名和密码,然后在executeCommand方法中执行传入的命令。在执行命令之前,需要建立一个SSH会话,并且打开一个执行命令的通道,最后关闭通道和会话。

    注意事项:

    1. 需要在项目中引入JSch库和其依赖的JZlib库。
    2. 如果需要传递参数,需要将参数用单引号或双引号括起来。
    3. 执行命令时,需要保证Linux服务器上已经安装需要执行的命令及其依赖的程序或库文件。
  • 相关阅读:
    在CentOS7上安装RabbitMQ(RPM安装方式)
    Flask简单调用Redis、MySQL和生成token及token验证
    Go 使用kafka读写
    Linux多线程C++版(七) 线程互斥方式-----读写锁
    Hive的基本知识
    浅析SpringBoot框架常见未授权访问漏洞
    决策树算法
    Hello Java,Java简介及第一个Java程序
    【自然语言处理】关系抽取 —— SpeechRE
    【开源】基于Vue+SpringBoot的音乐平台
  • 原文地址:https://blog.csdn.net/m0_37649480/article/details/134428885