springboot远程执行shell命令
时间: 2023-10-14 10:24:01 浏览: 162
可以使用Java中的ProcessBuilder类来远程执行shell命令。以下是一个示例代码:
```
import java.io.BufferedReader;
import java.io.InputStreamReader;
public class RemoteShellExecutor {
public static void main(String[] args) throws Exception {
String command = "ls -l"; // shell命令
String host = "192.168.1.100"; // 远程主机IP地址
String user = "username"; // 远程主机用户名
String password = "password"; // 远程主机密码
ProcessBuilder pb = new ProcessBuilder("ssh", user + "@" + host, command);
pb.redirectErrorStream(true);
Process process = pb.start();
BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream()));
String line;
while ((line = reader.readLine()) != null) {
System.out.println(line); // 输出命令执行结果
}
process.waitFor(); // 等待命令执行完成
}
}
```
在上述示例中,我们使用ProcessBuilder类创建一个ssh进程,并将shell命令作为参数传递给它。我们使用用户名和密码连接到远程主机。我们从ssh进程的输出流中读取命令的执行结果,并在控制台上输出它们。最后,我们等待命令执行完成。
阅读全文