如何通过 SSH 自动向多个服务器执行类似命令?

如何通过 SSH 自动向多个服务器执行类似命令?

我有 x 个服务器,可以通过密码通过 SSH 连接。如果我只需要连接 1,我将 ssh root@IP 地址。然后它会询问我的密码,经过身份验证后,我可以在那里执行命令。

如果我有 x 个相同的服务器并且我希望在每台服务器上执行相同的命令怎么办?我怎样才能用一个或两个命令来做到这一点?

答案1

听起来您想要一个配置工具,例如安西布尔,盐堆,厨师或者木偶

Ansible 的工作方式与您想要的非常相似,您可以在本地运行它,然后通过 ssh 连接到远程服务器来运行命令(无需像上面列出的其他产品那样在远程服务器上安装代理)。例如,给定服务器列表,/etc/ansible/hosts您可以运行ansible all -a "/bin/echo hello"以在所有服务器上执行给定命令。完整指南这里

但除此之外,您还可以开始制作有用命令的剧本,以便您将来在主机上重新运行它们,并努力实现基础设施的自动化管理。

或者,您可以使用类似命令噗噗用于并行运行批处理命令或使用同步窗格tmux 的功能是在多个主机上交互运行命令。

答案2

  1. 在多个主机上运行相同的命令

如果我有 x 个服务器都相同并且我希望在每一个服务器上执行相同的 > 命令怎么办?我怎样才能用一个或两个命令来做到这一点?

您可以运行一个脚本,该脚本获取主机名作为参数,并对参数中的主机名执行相同的命令

  1. 通过 SSH 连接到多个服务器

强烈建议您使用 ssh 密钥对,这样 ssh 通信就无需密码了

这个答案

答案3

您可以使用MobaXtrem作为 ssh 客户端,它具有 MultiExec 功能,允许您对所有打开的终端执行相同的命令。

相关内容