使用 Terminator 向多个 SSH 会话发送命令

使用这款便捷工具简化多台机器的管理。
111 位读者喜欢这篇文章。
FreeDOS

Opensource.com

Terminator 是一款单窗口分屏终端复用器,允许您一次性向所有终端发送相同的击键。这意味着您可以 SSH 连接到任意数量的机器,同时运行相同的命令,并同时看到所有结果。

安装 Terminator:sudo apt install terminator

然后,当您打开应用程序时,它只是一个普通的终端窗口。您可以单独使用它,或者右键单击某个位置来垂直或水平拆分屏幕。然后,您可以单独在每个窗口中输入,或者选择广播到所有窗口或一组窗口的选项。

显然,在多台机器上运行命令时必须格外小心;很容易出错。您还必须意识到,运行相同的命令可能需要不同的完成时间,或者可能产生不同的输出。如果您输入 SSH 命令以连接到几台不同的服务器并同时按下 Enter 键,如果您之前没有连接到某些服务器,则它们可能需要您输入“yes”才能继续。在一台机器上输入“yes”并按下 Enter 键可能不会造成任何损害(实际上,试试看!),但这并不是一个好习惯。如果您需要单独控制窗口,您可以关闭“广播”并在准备好时重新打开它。

我经常使用 Terminator 来管理 piwheels 构建服务器。

对于某些工作来说,这是一个非常方便的工具——值得了解一下!

接下来阅读
标签
User profile image.
Ben 是 BBC News Labs 的软件工程师,曾任 Raspberry Pi 的社区经理。他热衷于 Linux、Python 和所有开源事物!在 Twitter 上关注 Ben:@ben_nuttall。

3 条评论

有趣!值得一试

我使用 GNU parallel 做类似的事情。

我将每台机器的命令放在一个文本文件中,每行一个命令,格式为 "ssh machine -t bash -ci 'COMMAND'"

然后我运行 parallel :::: commandfile.txt

这意味着即使不同的机器需要不同的命令,我也可以执行相同的操作。

不错!我一直在寻找一种扩展我想运行的进程的方法……这看起来非常适合这项工作。

© . All rights reserved.