我正在搜索一个允许我创建的库,让我们说3个线程用于远程命令执行每个命令执行大约需要13分钟。你会建议使用什么ssh lib for java,哪些能够执行这样的任务? (免费的Maveric版本 - 未能愿意为完整的库支付2.4k $,现在使用ssh2进行战斗......)
答案 0 :(得分:4)
我从个人经验中知道,只要为每个线程创建单独的SSH连接,JSch就可以正常工作。您还可以查看sshj和Ganymed SSH-2。
以下是使用JSch执行远程命令的快速示例:
JSch jsch = new JSch();
Session session = jsch.getSession(user, host);
session.setConfig("StrictHostKeyChecking", "no");
session.setPassword(password);
session.connect(timeout);
Channel channel = session.openChannel("exec");
ChannelExec channelExec = (ChannelExec) channel;
channelExec.setCommand(command);
channel.connect();
// read channel.getInputStream() here if you want to capture the output
channel.disconnect();
session.disconnect();