如何仅使用 IPv6 在多个主机上执行命令?

如何仅使用 IPv6 在多个主机上执行命令?

首先韋斯它本质上是一个并行分布式 shell,可以在给定的主机列表上执行命令。但是,我发现自己处于 IPv6 问题设置中。似乎 pdsh 无法使用 IPv6,因为我收到错误消息:

pdsh -w ^hostnames my_command
pdsh@myhost: gethostbyname("foobar") failed

我也尝试过只使用 IPv6 地址,但同样没有用。那么如何在仅 IPv6 可访问的一组主机上运行单个 shell 脚本以进行管理(没有 SGE 内容或类似内容)?

答案1

集群SSH可以通过 SSH 连接到多个主机,并将您的按键复制到您连接的所有主机或部分主机。它适用于 Linux 和一些 UNIX。ClusterSSH 可以交互使用,或者您可以使用 -a 标志提供在远程主机上运行的命令。但是,据我所知,它需要 X 服务器,因为它是一个 GUI 应用程序。

在我的系统上,它使用 OpenSSH 打开 SSH 连接,以便能够到达仅 IPv6 的目的地。

答案2

假设您已运行 ssh 守护进程,并且它们已绑定到 IP6 接口 (/etc/ssh/sshd_config ListenAddress),则以下 shell 脚本或多或少应该可以执行您想要的操作:

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

答案3

我喜欢 Dancer's Shell/Distributed Shell:

http://www.netfort.gr.jp/~dancer/software/dsh.html

由于它使用 SSH,如果您的主机可以通过 IPv6 访问并且运行 sshd,那么就没问题。

它至少在 Debian 和 Ubuntu 中打包。

相关内容