gpt4 book ai didi

bash - 如何通过 SSH 自动向多台服务器并行运行命令?

转载 作者:行者123 更新时间:2023-11-29 08:45:06 25 4
gpt4 key购买 nike

我已经搜索了一些类似的问题,但除了运行一个命令或可能包含以下项目的一些命令之外:

ssh user@host -t sudo su -

但是,如果我基本上需要同时在(比方说)15 台服务器上运行脚本怎么办。这在 bash 中可行吗?在一个完美的世界中,我需要尽可能避免安装应用程序来实现这一目标。为了便于讨论,我们只说我需要在 10 个主机上执行以下操作:

  1. 部署一个新的 Tomcat 容器
  2. 在容器中部署应用,并配置
  3. 配置 Apache 虚拟主机
  4. 重新加载 Apache

我有一个脚本可以执行所有这些操作,但它依赖于我登录到所有服务器,从存储库中提取脚本,然后运行它。如果这在 bash 中不可行,您有什么建议?我是否需要更大的锤子,例如 Perl(Python 可能是首选,因为由于 yum/up2date,我可以保证 Python 在 RHEL 环境中的所有机器上)?如果有人可以向我指出任何有用的信息,我将不胜感激,特别是如果它在 bash 中可行的话。我将满足于 Perl 或 Python,但我也不太了解它们(正在研究)。谢谢!

最佳答案

您可以运行本地脚本,如 che 和 Yang 所示,和/或您可以使用 Here 文档:

ssh root@server /bin/sh <<\EOF  
wget http://server/warfile # Could use NFS here
cp app.war /location
command 1
command 2
/etc/init.d/httpd restart
EOF

关于bash - 如何通过 SSH 自动向多台服务器并行运行命令?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/243750/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com