如何在多个 Linux 服务器上运行多个命令

如果您正在管理多个 Linux 服务器,并且想要在所有 Linux 服务器上运行多个命令,但您不知道如何执行。不用担心,在这个简单的服务器管理指南中,我们将向您展示如何在多个 Linux 服务器上同时运行多个命令。

要实现这一点,您可以使用,一个用于在多个主机上并行执行 ssh 的命令行实用程序。有了它,您可以从 shell 脚本将输入发送到所有 ssh 进程。

要求

  1. 您一定正在使用对于所有远程服务器。

创建外壳脚本

因此,您需要首先准备一个脚本,其中包含要在不同服务器上执行的 Linux 命令。在此示例中,我们将编写一个脚本,从多个服务器收集以下信息:

  • 检查服务器的正常运行时间
  • 检查谁登录了以及他们在做什么
  • 根据内存使用情况列出前 5 个正在运行的进程。

首先创建一个名为命令.sh与您最喜欢的编辑器。

# vi commands.sh

接下来,将以下命令添加到脚本中,如图所示。

#!/bin/bash 
###############################################################################
#Script Name    : commands.sh                       
#Description    : execute multiple commands on multiple servers                                                                     
#Author         : Aaron Kili Kisinga       
#Email          :  
################################################################################
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 主机文件

接下来,添加要在其上运行命令的服务器列表主机.txt文件,格式为[user@]host[:port]或者直接提供服务器 IP 地址。

但我们建议您使用 ssh 别名,可以在.ssh/配置按照如何操作中的说明进行文件以简化远程访问。

这种方法更加高效和可靠,它允许您为每个远程服务器指定配置选项(例如主机名、识别文件、端口、用户名等)。

以下是我们的示例 ssh 主机别名文件,也称为用户特定的 ssh 配置文件。

# vi ~/.ssh/config
SSH 主机别名文件

接下来,创建一个主机.txt文件,在这里您可以简单地指定别名(使用 Host 关键字定义的名称).ssh/配置文件)如图所示。

# vi hosts.txt 

添加服务器别名。

server1
server2
server3

通过脚本在多个 Linux 服务器上运行命令

现在运行以下命令噗噗通过指定命令主机.txt文件以及包含在多个远程服务器上运行的多个命令的脚本。

# pssh -h hosts.txt -P -I<./commands.sh

上述命令中使用的标志的含义:

  • -h– 读取主机文件。
  • -P– 告诉 pssh 在输出到达时显示输出。
  • -I– 读取输入并发送到每个 ssh 进程。
在远程服务器上运行多个命令

就是这样!在本文中,我们展示了如何在 Linux 中的多个服务器上执行多个命令。您可以通过下面的评论部分分享与此主题相关的任何想法。

嘿 TechMint 读者,

令人兴奋的消息!每个月,我们的顶级博客评论者都有机会赢得丰厚奖励,例如免费的 Linux 电子书,例如红细胞认证工程师,红十字会协会,LFCS,学习Linux, 和awk, 每个值20 美元

学习!