4个有用的工具,可以在多个Linux服务器上运行命令

在本文中,我们将展示如何同时在多个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"
PSSH运行命令在多个Linux服务器上

您还应该检查:

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"
PDSH - 在多个Linux服务器中执行命令

如果您没有指定要在命令行上执行的远程命令,如上所示,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 
簇 - 管理多个SSH会话

有关更多信息,请参阅“ 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
Ansible - 在多个Linux服务器上运行命令

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