3

各ホストにスクリプトをコピーせずに、複数のホストで ssh と xargs を使用して bash スクリプトを実行する方法

これは機能し
ます。ssh host1.com bash -s < ~/httpd-conf/weblogrotate.sh これ

は機能しません。
xargs -I % ssh % bash -s < ~/httpd-conf/weblogrotate.sh
tcsh: あいまいな入力リダイレクト。

猫 webserver.hosts
host1.com
host2.com
host3.com

4

2 に答える 2

2

バッシュの場合:

while read host; do
   ssh $host bash -s < ~/httpd-conf/weblogrotate.sh &
done < webserver.hosts

これも並行して実行されます。

tcshでもできると思いますが、そのシェルの構文に慣れていません。

または、ssh を介してリモート ホストにリモート実行する xargs ではなく、GNU 並列を使用することもできます。

于 2012-05-02T17:52:23.430 に答える
1

DSSHを探しています。分散端末です。コマンドを 1 回実行すると、すべてのホストで実行されます。

hostsファイルが使用されています

$ cat hosts
mojito
-l noland kodiak
mojito
kodiak
-C mojito
-i /home/noland/.ssh/id_rsa kodiak

コマンドの実行

$ ./dssh.sh "uptime" < hosts
mojito:O:0:19:16:45 up 3 days, 14 min,  5 users,  load average: 0.22, 0.22, 0.20
kodiak:O:0:13:24:00 up 20:00,  1 user,  load average: 0.42, 0.16, 0.05
mojito:O:0:19:16:45 up 3 days, 14 min,  5 users,  load average: 0.22, 0.22, 0.20
kodiak:O:0:13:24:00 up 20:00,  1 user,  load average: 0.42, 0.16, 0.05
mojito:O:0:19:16:45 up 3 days, 14 min,  5 users,  load average: 0.22, 0.22, 0.20
kodiak:O:0:13:24:00 up 20:00,  1 user,  load average: 0.42, 0.16, 0.0
于 2012-05-02T21:00:57.537 に答える