如果你是一名服务器运维,每天需要管理多台的服务器.那么这几款工具非常的适合你!没有最好的工具,只有最适合的自己的工具!
通常每天要检查多台Linux服务器运行状况的系统管理员非常有用!
1. PSSH-Parallel SSH
Parallel-SSH是一个快速且易于使用的基于命令行的开源Python工具包,用于在众多Linux系统上并行执行ssh。它包括用途不一的许多工具,比如parallel-ssh、parallel-scp、parallel-rsync、parallel-slurp和parallel-nuke
想安装parallel-ssh,需要先在Linux系统上安装PIP。
然后使用pip安装parallel-ssh,如下所示。
$ sudo pip install parallel-ssh
在一个名为hosts的文件中输入带SSH端口的远程Linux服务器的主机名或IP地址(该文件名可随意命名):
$ vim hosts
pssh hosts file
192.168.0.1:22
192.168.0.2:22
192.168.0.3:22
保存文件并关闭。
现在运行parallel-ssh,使用-h选项指定hosts文件,并指定在所有指定的服务器上执行的一个或多个命令。-i标志意味着,在每台服务器上执行命令完成后,显示std输出和std错误。
$ parallel-ssh -h hosts "uptime; df -h"
2. Pdsh-并行远程Shell实用程序
Pdsh是一个简单的开源并行远程shell工具,用于同时在多台Linux服务器上执行命令。它使用线程滑动窗口来执行远程命令。
想在Linux计算机上安装Pdsh,运行以下相应的命令。
$ sudo apt install pdsh #Debian/Ubuntu
# yum install pdsh #RHEL/CentOS
# dnf install pdsh #Fedora 22+
想在多台服务器上运行命令,将服务器添加到hosts文件,如前所述。然后运行pdsh,如图所示;标志-w用于指定hosts文件,-R用于指定远程命令模块(可用的远程命令模块包括ssh、rsh和exec,默认模块是rsh)。
留意hosts文件前面的^。
$ pdsh -w ^hosts -R ssh "uptime; df -h"
图2:Pdsh――在多台Linux服务器上执行命令
如果你没有在命令行上指定要执行的远程命令,如上所示,pdsh将以交互方式运行,提示你输入命令,并在使用回车符终止时运行命令。想了解更多信息,请查阅pdsh参考手册页:
$ man pdsh
3. ClusterSSH
ClusterSSH是一个命令行工具,用于同时管理多台服务器组成的集群。它为所有指定的服务器启动管理控制台和xterm,让你可以在所有服务器运行同一个命令。
想使用clusterssh,先将它安装在本地Linux计算机上,如图所示。
$ sudo apt install clusterssh #Debian/Ubuntu
# yum install clusterssh #RHEL/CentOS
$ sudo dnf install clusterssh #Fedora 22+
现已安装了它,同时在远程服务器上打开管理控制台和xterm,如下所示。想在所有服务器上运行命令,点击xterm输入栏,然后输入要运行的命令;想管理单个主机,请使用其管理控制台。
$ clusterssh linode cserver contabo
或者
$ clusterssh username@server1 username@server2 username@server3
$ man clusterssh
4. Ansible
Ansible是一个实现IT流程自动化的热门开源工具。它用于配置和管理系统、部署应用程序等等。
想在Linux系统上安装Ansible,运行以下相应的命令:
$ sudo apt install ansible #Debian/Ubuntu
# yum install ansible #RHEL/CentOS
$ sudo dnf install ansible #Fedora 22+
安装ansible后,可以在文件/etc/anasible/hosts中添加服务器的主机名或IP地址。
$ sudo vim /etc/anasible/hosts
在组中指定它们,比如webservers。
# Ex 2: A collection of hosts belonging to the 'webservers' group
[webservers]
139.10.100.147
139.20.40.90
192.30.152.186
Ansible – Run Command on Multiple Linux Servers
保存文件并关闭。
现在想检查连接到组webservers中指定的所有服务器的正常运行时间和用户,在上面的hosts配置文件中,只要运行ansible命令行工具,如下所示。
-a选项用于指定传递给模块的参数,-u标志指定通过SSH连接到远程服务器的默认用户名。
请注意,ansible CLI工具只允许你最多只执行一个命令。
$ ansible webservers -a "w " -u admin
就这样!我们在本文中解释了如何使用常用的工具同时在多台远程Linux服务器上运行命令。如果你知道其他用途一样但本文没有提到的工具,欢迎补充。
领取专属 10元无门槛券
私享最新 技术干货