SSHコマンドを使用して複数のコンピュータを接続し、同時に各コンピュータに異なるコマンドを送信する方法

SSHコマンドを使用して複数のコンピュータを接続し、同時に各コンピュータに異なるコマンドを送信する方法

さまざまなプログラムを実行するには、複数のコンピュータを接続する必要があります。コンピュータごとに異なるコマンドを送信する必要があります。 sshコマンドを使用して複数のコンピュータを接続し、各コンピュータに異なるコマンドを送信する方法は?各コンピュータに対してプログラムを実行するコマンドは nohup Rscript program_i.R > program_i_out.txt。より具体的に説明してください。 3つのコンピュータを使って3つのプログラムを実行したいです。だから私が送るよ

nohup Rscript program_1.R > program_1_out.txt最初のコンピュータとして、

nohup Rscript program_2.R > program_2_out.txt2台目のコンピュータで、

nohup Rscript program_3.R > program_3_out.txt3台目のコンピュータで。

ベストアンサー1

努力するssh -f user@host '<your command here>'

SSHのマニュアルページから:

-f Requests ssh to go to background just before command execution. This is useful if ssh is going to ask for passwords or passphrases, but the user wants it in the background.

たとえば、これを行うとssh -f <my computer> 'echo "hello $(pstree -p | grep sshd | wc -l) person in ssh!"印刷されますhello 1 person in ssh!

2を印刷した後、セッションは自動的に終了しますが、終了するのを待つ必要はありません。これにより、ssh -f <my computer> 'sleep 30 && echo "hello $(pstree -p | grep sshd | wc -l) person in ssh!"'何も起こらないように見え、正常にすべての操作を実行できますが、30秒後にはhello 1 person in ssh!

リダイレクトを使用すると、>すべての標準出力がファイルにリダイレクトされますが、すべてのエラーは依然として画面に印刷されます。これを防ぐには、&>すべての出力(stdoutとstderr)をファイルにリダイレクトする方法を使用できます。

おすすめ記事