Java远程连接Linux服务器执行shell脚本程序代码

你可以使用Java中的JSch库来进行远程服务器连接,并执行Linux脚本。

如果你是maven程序,可以引入jsch依赖

<dependency>
   <groupId>com.jcraft</groupId>
   <artifactId>jsch</artifactId>
   <version>0.1.55</version>
</dependency>

 

以下是一个示例程序:

import com.jcraft.jsch.ChannelExec;
import com.jcraft.jsch.JSch;
import com.jcraft.jsch.Session;

import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;

public class RemoteShellCaller {
    public static void main(String[] args) {
        String host = "your_host"; // 远程服务器IP或域名
        String user = "your_username"; // 远程服务器用户名
        String password = "your_password"; // 远程服务器密码
        String command = "/path/to/your_script.sh"; // 要执行的脚本路径

        try {
            // 创建JSch对象并连接远程服务器
            JSch jsch = new JSch();
            Session session = jsch.getSession(user, host, 22);
            session.setPassword(password);
            session.setConfig("StrictHostKeyChecking", "no");
            session.connect();

            // 打开SSH通道并执行命令
            ChannelExec channel = (ChannelExec) session.openChannel("exec");
            channel.setCommand(command);
            channel.connect();

            // 读取命令输出
            InputStream inputStream = channel.getInputStream();
            BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream));
            String line;
            while ((line = reader.readLine()) != null) {
                System.out.println(line);
            }

            // 关闭SSH通道和会话
            channel.disconnect();
            session.disconnect();

        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

请注意,上述示例中需要将your_hostyour_usernameyour_password/path/to/your_script.sh替换为实际的远程服务器主机、用户名、密码和脚本路径。此示例程序将连接到指定的远程服务器并执行指定的脚本,并输出命令的结果。

© 版权声明
THE END
喜欢就支持一下吧
点赞8赞赏 分享