1
私はリモートのVM上で次々に実行される必要がある一連のコマンドを持っています。私はまた、実行された各コマンドの出力を取得したい。これは、単一のJSchセッションで行われます。どうすればこれを達成できますか?JSch接続で複数のコマンドを1つのセッションで実行し、その出力を読み取る方法は?
私はリモートのVM上で次々に実行される必要がある一連のコマンドを持っています。私はまた、実行された各コマンドの出力を取得したい。これは、単一のJSchセッションで行われます。どうすればこれを達成できますか?JSch接続で複数のコマンドを1つのセッションで実行し、その出力を読み取る方法は?
複数のコマンドを実行するには、サーバーの適切な構文を使用してください。ほとんどの* nixサーバーは、セミコロンまたはアンパサンド(セマンティクスが異なる)を使用します。
Multiple commands using JSchを参照してください。
コマンド出力を読みたい場合は、問題の区別があり、1つのコマンドの出力が終了し、次のコマンドの出力が開始されます。
次に、各コマンドを独自の「exec」チャネルで実行することをお勧めします。単一のSSHセッションでは、複数のチャネルを(順番に、または並行して)開くことができます。
Channel channel1 = session.openChannel("exec");
((ChannelExec)channel1).setCommand(command1);
// ...
Channel channel2 = session.openChannel("exec");
((ChannelExec)channel2).setCommand(command2);
// ...
[Jschを使用した複数のコマンド](http://stackoverflow.com/questions/17352764/multiple-commands-using-jsch)の可能な複製 – gonephishing