我需要在远程虚拟机上一个接一个地执行一系列命令。我还想获得每个命令的输出。这将通过单个JSch会话完成。我怎样才能做到这一点?
答案 0 :(得分:0)
要执行多个命令,只需使用适当的服务器语法即可。大多数* nix服务器使用分号或双符号(具有不同的语义)。
请参阅Multiple commands using JSch。
虽然如果您想要读取命令输出,您将有问题区别,其中一个命令的输出结束并且以下命令的输出开始。
然后最好在自己的“exec”频道中执行每个命令。单个SSH会话可以打开多个通道(按顺序或甚至并行)。
Channel channel1 = session.openChannel("exec");
((ChannelExec)channel1).setCommand(command1);
// ...
Channel channel2 = session.openChannel("exec");
((ChannelExec)channel2).setCommand(command2);
// ...