在多个 Linux 服务器上运行多个命令的操作指南
目录
- 创建 Shell 脚本
- 创建 PSSH 主机文件
- 通过脚本在多个 Linux 服务器上运行命令
可以使用 pssh(并行 ssh)程序,这是一个用于在多个主机上并行执行 ssh 的命令行实用程序。使用它,您可以从 shell 脚本向所有 ssh 进程发送输入。
创建 Shell 脚本
因此,您需要首先准备一个脚本,其中包含您要在不同服务器上执行的 Linux 命令。在此示例中,我们将编写一个脚本,该脚本将从多个服务器收集以下信息:
- 检查服务器的正常运行时间
- 检查谁登录以及他们在做什么
- 根据内存使用情况列出前 5 个正在运行的进程。
首先使用您喜欢的编辑器创建一个名为 commands.sh 的脚本。
# vi commands.sh
接下来,将以下命令添加到脚本中,如图所示。
#!/bin/bash ############################################################################### #Script Name : commands.sh #Description : execute multiple commands on multiple servers #Author : Aaron Kili Kisinga #Email : aaronkilik@gmail.com ################################################################################ echo # show system uptime uptime echo # show who is logged on and what they are doing who echo # show top 5 processe by RAM usage ps -eo cmd,pid,ppid,%mem,%cpu --sort=-%mem | head -n 6 exit 0
保存文件并关闭它。然后如图所示使脚本可执行。
# chmod +x commands.sh
创建 PSSH 主机文件
接下来,在 hosts.txt 文件中添加要在其上运行命令的服务器列表,格式为 [user@]host[:port] 或仅提供服务器 IP 地址。
但我们建议您使用可以在 .ssh/config 文件中指定的 ssh 别名,如如何配置自定义 ssh 连接以简化远程访问中所述。
这种方法更有效和可靠,它允许您为每个远程服务器指定配置选项(如主机名、标识文件、端口、用户名等)。 以下是我们的示例 ssh 主机别名文件,也就是用户特定的 ssh 配置文件。
# vi ~/.ssh/config

接下来,创建一个 hosts.txt 文件,在这里您可以简单地指定别名(使用 .ssh/config 文件中的 Host 关键字定义的名称),如图所示。
# vi hosts.txt
添加服务器别名。
server1 server2 server3
通过脚本在多个 Linux 服务器上运行命令
现在通过指定 hosts.txt 文件以及包含要在多个远程服务器上运行的多个命令的脚本来运行以下 pssh 命令。
# pssh -h hosts.txt -P -I<./commands.sh
上述命令中使用的标志的含义:
-h– 读取主机文件。-P– 告诉 pssh 在输出到达时显示输出。-I– 读取输入并发送到每个 ssh 进程。

您可能感兴趣的文章
- 12-20Kubernetes中使用临时容器进行故障排查的方法
- 12-20Nginx设置HTTPS的方法步骤
- 12-20二进制方式安装 Kubernetes1.18.3版本实现脚本
- 12-20Nginx工作模式及代理配置的使用细节
- 12-20ZooKeeper分布式协调服务设计核心概念及安装配置
- 12-20Kubernetes部署可视化地图的十个步骤
- 12-20关于docker清理Overlay2占用磁盘空间的问题(亲测有效)
- 12-20Docker compose配置文件写法及命令使用示例
- 12-20openwrt安装docker并启动的操作方法
- 12-20云原生Kubernetes初始化容器Init使用教程


阅读排行
推荐教程
- 12-07一文教你怎么选择Tomcat对应的JDK版本
- 12-07新版Eclipse集成Tomcat时找不到server选项的解决方法
- 12-06IIS7 应用程序池自动回收关闭的解决方案
- 12-05Windows Server 2019安装VMware
- 12-05Windows服务器默认IE浏览器无法下载文件的解决方法
- 12-05Docker安装Jenkins全过程
- 12-19Zabbix SAML SSO 登录绕过漏洞的操作流程
- 12-15Docker-Compose搭建Spark集群的实现方法
- 12-14Docker Desktop无法正常启动解决(failed to start...)
- 12-14k8s 与docker空间使用分析与清理方法





