サーバーごとに異なる引数を指定しながら、複数の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で利用可能な他のツールを使用して、誰かがこれを達成するのを手伝ってくれるとありがたいです。
GNUバージョンの並列 を使用できます
たとえば、引数1
から10
を指定してecho
を呼び出すには、各echo
コマンドをserver.example.com
またはserver2.example.net
のいずれかにディスパッチします。
seq 10 | parallel --sshlogin server.example.com,server2.example.net echo