关于程序员:如何在多个-Linux-服务器上运行多个命令

2次阅读

共计 1407 个字符,预计需要花费 4 分钟才能阅读完成。

动动发财的小手,点个赞吧!

如果你正在治理多台 Linux 服务器,并且你想在所有 Linux 服务器上运行多个命令,但你不晓得该怎么做。不必放心,在这个简略的服务器治理指南中,咱们将向您展现如何在多个 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 过程。

本文由 mdnice 多平台公布

正文完
 0