【问题标题】:Perform multiple command on 1000 remote servers?在 1000 个远程服务器上执行多个命令?
【发布时间】:2014-11-12 17:43:12
【问题描述】:

出于审计目的,我有在 1000 台服务器 (linux) 上执行多个 linux 命令的场景。我觉得在所有 1000-1500 台服务器上执行 ssh 和复制密钥到远程主机有点困难。有没有可能实现这一点。 事实上,我听说了一些关于 rcmd 命令实用程序的地方。但我无法找到完成的确切工作。

问候, 萨万

【问题讨论】:

  • 如果您需要经常这样做,您可能需要查看 saltstack 和类似工具。我的意思是不应该手动管理超过 1 个盒子...
  • 嗨 fejese,感谢您的及时回复......如果我得到任何关于 rcmd 命令的建议,这将是有帮助的,我可能会得到任何解决方案!
  • 也许看看GNU parallel。出于安全原因,您可能不想使用rsh(首选ssh)。你肯定有办法访问这些远程服务器(第一次),所以使用它。
  • 您的问题离题且不准确。首先,您如何访问这么多主机?你从哪里弄来的?它们上运行了哪些服务?
  • 需要在每台远程机器上触发一些命令,例如 ....dmidecode 、 pciscan 、 snmpd status 、 clustat .... & 需要综合信息用于审计目的..

标签: linux bash ssh


【解决方案1】:

也许你可以试试“sshrun”脚本。它获取文本文件中的服务器列表并从另一个文本文件运行命令。我已经将该脚本用于一堆服务器的类似维护目的。它能够在目的地使用需要“sudo”的命令。

http://www.homelinuxpc.com/download/sshrun_user_guide.pdf

http://www.homelinuxpc.com/download/sshrun.tar.gz

如果您需要为每台服务器输入密码,您可能还需要“自动通过”:

http://www.homelinuxpc.com/download/autopass_user_guide.pdf

http://www.homelinuxpc.com/download/autopass.tar.gz

“自动通过”是一个组合的 bash/expect 脚本。它询问一次密码,每当远程服务器询问密码时,它都会以该密码响应。 “autopass”可用于运行“sshrun”以避免手动输入密码,例如 1000 次。

【讨论】:

  • 您好 Ajaaskel,感谢您的反馈,请在此处提供场景...我们为每个站点提供不同的 IP 范围和不同的用户名和不同的密码来登录。事实上,我们必须在 40 个地理站点服务器上完成这项任务。
  • 这样做真的很痛苦,但我不知道有什么解决方法。在每台服务器上都有 ssh 密钥后,一切都会变得更好,您可以非常快速地从所有服务器中收集 dmidecode 等。
猜你喜欢
  • 1970-01-01
  • 2012-04-06
  • 2022-01-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-11-22
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多