複数のサーバーでshスクリプトを並列に実行する

複数のサーバーでshスクリプトを並列に実行する

ループ内の複数のサーバーでタスクを実行しようとしていますが、最初のサーバーでタスクを開始し、最初のサーバーが完了するのを待たずに2番目のサーバーに直接移動したいと思います。

HOSTS="host1 host2"
    For hostname in ${HOST} ;
do ssh -tt ${USERNAME}@${hostname} << EOF
actions
exit
EOF
Done 

Linux sh bashでこれを行う方法を知っている人はいますか?

よろしくお願いします。

ベストアンサー1

pdshあなたのニーズを満たすようです。マルチスレッド方式でSSH接続を並列に実行します。

例:

$ pdsh -w 192.168.1.4,192.168.1.250 uname -r
192.168.1.4: 2.6.32-431.17.1.el6.x86_64
192.168.1.250: 2.6.32-431.11.2.el6.x86_64
$

pdshを使用したパラレルシェル

単一のファイルを複数のリモートサイトに同時に送信するには?

おすすめ記事