什么是一个好的现代并行SSH工具?

我听说psshclusterssh是两个stream行的,但我想我会打开它在这里讨论,看看社区的经验与这些工具是什么? 什么是陷阱? 任何体面的黑客或用例?

我已经使用pssh,它很容易,工作得很好。 这对于快速查询非常有用。

如果你发现自己pipe理服务器,我会build议更强大的东西,并在一个稍微不同的领域(configurationpipe理),如Puppet或CFEngine。

知道你想要做什么很重要。 如果你想在很多服务器上运行“apt-get update”,据说clusterssh是一个易于使用和有效的工具。 请参阅Linux Journal上的Kyle Rankin关于clusterssh的文章。

如果您在不同服务器上的工作需要逻辑循环,放置,获取或以其他方式与每个主机进行交互(或者由于错误情况可能不得不与主机交互), Fabric (刚刚发布1.0版本)的工具是无价。 如果你是pythonista,你可能会最喜欢使用Fabric。

在任何一种情况下,可能都希望在受影响的远程服务器上执行相当简单的任务,并专门放在任何有问题的主机上。 但Fabric提供了更多的选项来处理变化。

有一件事通常不能很好地处理网关主机背后的多个主机,要求首先连接到网关,然后再从那里连接端口。 由于ssh本身很简单,所以可以将.ssh/config文件设置为

 Host gateway Port 9000 User remoteadmin HostName datacentre1.com # mail LocalForward 9100 192.168.9.11:22 # phones LocalForward 9101 192.168.9.12:22 Host dc1mail Port 9100 Host 127.0.0.1 User localadmin Host dc1phones Port 9201 Host 127.0.0.1 User localadmin 

为了做到相当于ssh dc1mail 'cmd' && ssh dc1phones 'cmd'必须首先调出ssh gateway 。 如果像clustersh和Fabric这样的工具将允许它们作为他们的工具的一部分来完成,那将是很好的。 当然,你可以亲自做这个。

SSH Power Tool (sshpt)是为并行SSHdevise的,不需要用户设置预先共享的SSH密钥。 它优于pssh和clusterssh,它支持通过sudo执行,也可以复制文件并在之后执行(也可以通过sudo)。 默认情况下,它以CSV格式输出结果,但sshpt.py兼作可导入的Python模块,所以您可以在自己的程序中使用它(我曾经把它用作我后面定制的基于Web的报告工具的后端上任老板)。

Mussh是一个很好的select,它已经包含在许多Linux发行版中。

Mussh是一个shell脚本,它允许你用一个命令通过ssh在多个主机上执行一个命令或脚本。 在可能的情况下,mussh将使用ssh-agent和RSA / DSA密钥来最大限度地减less多次input密码的需求。

我用cssh,它像一个魅力。 您可以轻松地在多个服务器上编辑相同的文件,然后只检查一个窗口并更改特定variables的值。 对每个窗口重复一遍,在vim和voila中敲击:wq! 工作已经完成;)

它也是进行能力升级的绝佳工具。

还有用于并行ssh运行的dsh 。

KDE中的Konsole和OS X上的Terminal.app也可以将一个控制台或标签变成一个“控制”terminal,将input发送到多个标签/窗口/会话。

过去,我使用pconsole。

我最喜欢的并行SSH工具是PuSSH … IMO的语法比任何其他类似的包更直观,它实际上并不需要安装RPM,编译或其他任何东西。 它只是作为一对脚本下载,只是工作。