2017-03-16 22 views
1

私はリモートのVM上で次々に実行される必要がある一連のコマンドを持っています。私はまた、実行された各コマンドの出力を取得したい。これは、単一のJSchセッションで行われます。どうすればこれを達成できますか?JSch接続で複数のコマンドを1つのセッションで実行し、その出力を読み取る方法は?

+0

[Jschを使用した複数のコマンド](http://stackoverflow.com/questions/17352764/multiple-commands-using-jsch)の可能な複製 – gonephishing

答えて

0

複数のコマンドを実行するには、サーバーの適切な構文を使用してください。ほとんどの* 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); 
// ... 

How to perform multiple operations with JSchも参照してください。

関連する問題