如何在多个主机上使用ssh和xargs运行bash脚本,而脚本不会复制到每个主机上?
这工作,
ssh host1.com bash -s <〜/ httpd-conf / weblogrotate.sh
这不起作用,
猫webserver.hosts | xargs -I%ssh%bash -s <〜/ httpd-conf / weblogrotate.sh
tcsh:模糊inputredirect。
猫webserver.hosts
host1.com
host2.com
host3.com
在bash中:
while read host; do ssh $host bash -s < ~/httpd-conf/weblogrotate.sh & done < webserver.hosts
这也同时运行它们。
我相信你也可以在tcsh中完成,但是我不熟悉shell的语法。
或者,你也可以使用GNU parallel,而不是通过ssh远程执行远程主机的xargs。
你正在寻找DSSH 。 这是一个分布式终端。 执行命令一次,将在所有主机上执行。
主机文件被使用
$ 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