在本文中,我们将展示如何同时在多个Linux服务器上运行命令。我们将解释如何使用一些广为人知的工具,旨在同时在多个服务器上执行重复的命令。本指南对于通常需要每天检查多个Linux服务器健康的系统管理员很有用。
出于本文的目的,我们假设您已经有SSH设置来访问所有服务器,其次,同时访问多个服务器时,它适用于在所有Linux服务器上。首先,这增强了服务器安全性,还可以易于访问。
另请阅读:
1。PSSH-平行SSH
是开源,快速易用的命令行Python工具包,用于在许多Linux系统上并行执行SSH。它包含许多用于各种目的的工具平行ssh,,,,,,,,,,平行rshync,,,,,平行线和平行核(阅读特定工具的人页面以获取更多信息)。
安装平行ssh,您需要先安装pip在您的Linux系统上。
$ sudo apt install python-pip python-setuptools #Debian/Ubuntu # yum install python-pip python-setuptools #RHEL/CentOS # dnf install python-pip python-setuptools #Fedora 22+
然后安装平行ssh使用pip如下。
$ sudo pip install parallel-ssh
接下来,在文件中输入带有SSH端口的远程Linux服务器的主机名或IP地址主持人(您可以将其命名为您想要的任何东西):
$ vim hosts
PSSH主机文件
192.168.0.10:22 192.168.0.11:22 192.168.0.12:22
保存文件并关闭。
现在运行平行ssh,使用-h选项和命令将在所有指定的服务器上执行。这-i标志意味着显示STD输出和性病错误随着执行每个服务器上的命令。
$ parallel-ssh -h hosts "uptime; df -h"

您还应该检查:
2。PDSH - 并行远程外壳实用程序
DPA是一个开源的简单并行远程外壳工具,用于同时在多个Linux服务器上执行命令。它采用线程的滑动窗口来执行远程命令。
安装DPA在Linux机器上,在下面运行适当的命令。
$ sudo apt install pdsh #Debian/Ubuntu # yum install pdsh #RHEL/CentOS # dnf install pdsh #Fedora 22+
要在多个服务器上运行命令,请如前所述将服务器添加到主机文件中。然后运行DPA如图所示;国旗-w用于指定主机文件,-R用于指定远程命令模块(可用的远程命令模块包括SSH,RSH,EXEC,默认值为RSH)。
注意^在主机文件之前。
$ pdsh -w ^hosts -R ssh "uptime; df -h"

如果您没有指定要在命令行上执行的远程命令,如上所示,DPA交互式运行,提示您进行命令并在用马车返回终止时运行它们。有关更多信息,请参见PDSH MAN页面:
$ man pdsh
3。簇
簇是用于同时管理多个服务器簇的命令行工具。它启动了管理控制台和x -term对于所有指定的服务器,使您能够在所有这些服务器上运行相同的命令。
使用簇,首先在您的本地Linux计算机上安装它,如图所示。
$ sudo apt install clusterssh #Debian/Ubuntu # yum install clusterssh #RHEL/CentOS $ sudo dnf install clusterssh #Fedora 22+
现在您已经安装了它,打开管理控制台和一个x -term在远程服务器上,同时如下。要在所有服务器上运行命令,请单击XTERM输入栏,然后键入您的命令;要管理一个主机,请使用其管理员控制台。
$ clusterssh linode cserver contabo OR $ clusterssh username@server1 username@server2 username@server3

有关更多信息,请参阅“ clusterssh Man”页面:
$ man clusterssh
4. Ansible
是自动化IT流程的开源和流行工具。它用于配置和管理系统,部署应用程序等等。
安装Ansible在Linux系统上,在下面运行适当的命令:
$ sudo apt install ansible #Debian/Ubuntu # yum install ansible #RHEL/CentOS $ sudo dnf install ansible #Fedora 22+
一旦安装Ansible,您可以在文件中添加服务器的主机名或IP地址/etc/Ansible/Hosts。
$ sudo vim /etc/anasible/hosts
分组指定它们,例如Web服务器。
# Ex 2: A collection of hosts belonging to the 'webservers' group [webservers] 139.10.100.147 139.20.40.90 192.30.152.186
保存文件并关闭。
现在检查正常运行时间和用户连接到组中指定的所有服务器Web服务器,在上面的主机配置文件中,只需按下以下操作Ansible命令行工具。
这-a选项用于指定参数以传递到模块和-u标志指定默认值用户名通过SSH连接到远程服务器。
请注意,Ansible CLI工具仅允许您最多只能执行一个命令。
$ ansible webservers -a "w " -u admin

就这样!在本文中,我们解释了如何使用广泛使用的工具同时在多个远程Linux服务器上运行命令。如果您知道出于相同目的的任何工具,我们尚未包含在本文中,请通过下面的评论表格告知我们。
