在远程计算机上运行ssh并执行命令

时间:2015-05-11 09:28:18

标签: java node.js java-ee

我是一名java开发人员,我被分配到一个项目,我需要以编程方式ssh进入linux框并运行一些unix commands。命令运行后,应收集命令的输出并显示在UI上。

我看到了一个名为sshxcute的库,它可用于完成此任务。我的问题是:

  1. 对于像Nodejs或Ruby on Rails这样的要求,有没有比基于Java更好的解决方案
  2. 可以从执行命令的系统获取实时日志,而不是在运行命令时获取日志。

  3. 可以异步在机器上运行多个并行进程。

2 个答案:

答案 0 :(得分:1)

您可以使用sshj。它允许您打开ssh连接,发送命令并读取输出。

答案 1 :(得分:1)

我使用了jsch java库

ChannelShell channel = openShellChannel();
OutputStream outputStream = channel.getOutputStream();
PrintStream commander = new PrintStream(outputStream, true);
// Print logs
channel.setOutputStream(System.out, true);
// exec the command
commander.println(command);