web-dev-qa-db-ja.com

異なる引数を持つリモートノードに並列コマンドを発行するにはどうすればよいですか?

サーバーごとに異なる引数を指定しながら、複数のUbuntuサーバーでアプリケーションを並行して実行する必要があります。私はそれをグーグルしようとしましたが、可能な解決策を見つけることができませんでした。 ssh/pdsh/parallelでも実験しましたが、成功しませんでした。

シナリオをさらに説明するために、これは機能しない例(pdshを使用)です。ここでscript.shは、3つのサーバーすべてで並行して実行する必要がありますが、引数は異なります。参考までに、私はすでにパブリック/プライベートsshキー(パスワードなしのログイン)を設定しています。

pdsh -w server1,server2,server3 -l username script.sh args

ここで、argsはserver1の場合は1、server2の場合は2などです。

pdshまたはUbuntuで利用可能な他のツールを使用して、誰かがこれを達成するのを手伝ってくれるとありがたいです。

4
Sachin

GNUバージョンの並列 を使用できます

たとえば、引数1から10を指定してechoを呼び出すには、各echoコマンドをserver.example.comまたはserver2.example.netのいずれかにディスパッチします。

seq 10 | parallel --sshlogin server.example.com,server2.example.net echo
3
Rahul Patil