首先是pdsh ,它本质上是一个并行的分布式shell,可以在给定的主机列表上执行命令。 但是,我发现自己处于仅有IPv6的问题设置。 看来,pdsh不能使用IPv6,因为我得到的错误消息:
pdsh -w ^hostnames my_command pdsh@myhost: gethostbyname("foobar") failed
我也试图只使用IPv6地址,这也不起作用。 那么如何在一堆只能访问IPv6的主机上运行一个用于pipe理的shell脚本(没有SGE的东西,或类似的东西)呢?
ClusterSSH可以通过SSH连接到多个主机,并将您的按键复制到已连接的所有主机或其子集。 它适用于Linux和几个UNIX。 ClusterSSH可以交互使用,也可以使用-a标志提供在远程主机上运行的命令。 不过,据我所知,它需要一个X服务器,因为它是一个GUI应用程序。
在我的系统上,它使用OpenSSH打开SSH连接,以便能够访问仅IPv6目标。
假设你有ssh守护进程运行,并且已经绑定到IP6接口(/ etc / ssh / sshd_config ListenAddress)以下的shell脚本应该或多或less的做你想做的事情:
for hostName in `cat serverList.txt` do (ssh userName@$hostName 'command' &) 2>&1 >> "${hostname}.log" done
另请参阅: https : //stackoverflow.com/questions/8677542/ssh-and-bring-up-many-processes-in-parallel-solaris
我喜欢舞者的壳/分布式shell:
http://www.netfort.gr.jp/~dancer/software/dsh.html
由于它使用SSH,如果你的主机可以通过IPv6访问并运行sshd,那么你会没事的。
它至less包装在Debian和Ubuntu中。