|
|
51CTO旗下网站
|
|
移动端

在多台Linux服务器上运行命令的4个实用工具

本文将介绍如何同时在多台Linux服务器上运行命令。我们将解释如何使用一些知名的工具,这些工具旨在同时在多台服务器上执行一系列重复的命令。本文对于通常每天要检查多台Linux服务器运行状况的系统管理员非常有用。

作者:布加迪编译来源:51CTO|2018-10-19 08:54

【51CTO.com快译】本文将介绍如何同时在多台Linux服务器上运行命令。我们将解释如何使用一些知名的工具,这些工具旨在同时在多台服务器上执行一系列重复的命令。本文对于通常每天要检查多台Linux服务器运行状况的系统管理员非常有用。

我们假设你已经设置好了SSH以便访问所有服务器;其次假设,同时访问多台服务器时,在所有Linux服务器上设置基于密钥的无密码SSH是合适的。这增强了服务器的安全性,并让用户易于访问。

1. PSSH-Parallel SSH

Parallel-SSH是一个快速且易于使用的基于命令行的开源Python工具包,用于在众多Linux系统上并行执行ssh。它包括用途不一的许多工具,比如parallel-ssh、parallel-scp、parallel-rsync、parallel-slurp和parallel-nuke(想了解澳门美高梅梅登录网站信息,请阅读相应工具的参考手册页)。

想安装parallel-ssh,需要先在Linux系统上安装PIP。

  1. $ sudo pip install parallel-ssh  
  2. $ sudo apt install python-pip python-setuptools #Debian/Ubuntu  
  3. # yum install python-pip python-setuptools #RHEL/CentOS  
  4. # dnf install python-pip python-setuptools #Fedora 22+  

然后使用pip安装parallel-ssh,如下所示。

  1. $ sudo pip install parallel-ssh 

接下来,在一个名为hosts的美高梅娱乐平台中输入带SSH端口的远程Linux服务器的主机名或IP地址(该美高梅娱乐平台名可随意命名):

  1. $ vim hosts  
  2. pssh hosts file  
  3. 192.168.0.10:22  
  4. 192.168.0.11:22  
  5. 192.168.0.12:22  

保存美高梅娱乐平台并关闭。

现在运行parallel-ssh,使用-h选项指定hosts美高梅娱乐平台,并指定在所有指定的服务器上执行的一个或多个命令。-i标志意味着,在每台服务器上执行命令完成后,显示std输出和std错误。

  1. $ parallel-ssh -h hosts "uptime; df -h" 

Pssh――在多台Linux服务器上运行命令

图1:Pssh――在多台Linux服务器上运行命令

2. Pdsh-并行远程Shell实用程序

Pdsh是一个简单的开源并行远程shell工具,用于同时在多台Linux服务器上执行命令。它使用线程滑动窗口来执行远程命令。

想在Linux计算机上安装Pdsh,运行以下相应的命令。

  1. $ sudo apt install pdsh #Debian/Ubuntu  
  2. # yum install pdsh  #RHEL/CentOS  
  3. # dnf install pdsh #Fedora 22+  

想在多台服务器上运行命令,将服务器添加到hosts美高梅娱乐平台,如前所述。然后运行pdsh,如图所示;标志-w用于指定hosts美高梅娱乐平台,-R用于指定远程命令模块(可用的远程命令模块包括ssh、rsh和exec,默认模块是rsh)。

留意hosts美高梅娱乐平台前面的^。

  1. $ pdsh -w ^hosts -R ssh "uptime; df -h" 

在多台Linux服务器上运行命令的4个实用工具

图2:Pdsh――在多台Linux服务器上执行命令

如果你没有在命令行上指定要执行的远程命令,如上所示,pdsh将以交互方式运行,提示你输入命令,并在使用回车符终止时运行命令。想了解澳门美高梅梅登录网站信息,请查阅pdsh参考手册页:

  1. $ man pdsh 

3. ClusterSSH

ClusterSSH是一个命令行工具,用于同时管理多台服务器组成的集群。它为所有指定的服务器启动管理控制台和xterm,让你可以在所有服务器运行同一个命令。

想使用clusterssh,先将它安装在本地Linux计算机上,如图所示。

  1. $ sudo apt install clusterssh #Debian/Ubuntu  
  2. # yum install clusterssh #RHEL/CentOS  
  3. $ sudo dnf install clusterssh #Fedora 22+  

现已安装了它,同时在远程服务器上打开管理控制台和xterm,如下所示。想在所有服务器上运行命令,点击xterm输入栏,然后输入要运行的命令;想管理单个主机,请使用其管理控制台。

  1. $ clusterssh linode cserver contabo 

或者

  1. $ clusterssh username@server1 username@server2 username@server3 

Clusterssh――管理多个SSH会话

图3:Clusterssh――管理多个SSH会话

想了解澳门美高梅梅登录网站信息,请查阅clusterssh参考手册页:

  1. $ man clusterssh 

4. Ansible

Ansible是一个实现IT流程自动化的热门开源工具。它用于配置和管理系统、部署应用程序等等。

想在Linux系统上安装Ansible,运行以下相应的命令:

  1. $ sudo apt install ansible #Debian/Ubuntu  
  2. # yum install ansible #RHEL/CentOS  
  3. $ sudo dnf install ansible #Fedora 22+  

安装ansible后,可以在美高梅娱乐平台/etc/anasible/hosts中添加服务器的主机名或IP地址。

  1. $ sudo vim /etc/anasible/hosts 

在组中指定它们,比如webservers。

  1. # Ex 2: A collection of hosts belonging to the 'webservers' group  
  2. [webservers]  
  3. 139.10.100.147  
  4. 139.20.40.90  
  5. 192.30.152.186  
  6. Ansible – Run Command on Multiple Linux Servers  

保存美高梅娱乐平台并关闭。

现在想检查连接到组webservers中指定的所有服务器的正常运行时间和用户,在上面的hosts配置美高梅娱乐平台中,只要运行ansible命令行工具,如下所示。

-a选项用于指定传递给模块的参数,-u标志指定通过SSH连接到远程服务器的默认用户名。

请注意,ansible CLI工具只允许你最多只执行一个命令。

  1. $ ansible webservers -a "w " -u admin 

Ansible――在多台Linux服务器上运行命令

图4:Ansible――在多台Linux服务器上运行命令

就这样!我们在本文中解释了如何使用常用的工具同时在多台远程Linux服务器上运行命令。如果你知道其他用途一样但本文没有提到的工具,欢迎补充。

原文标题:4 Useful Tools to Run Commands on Multiple Linux Servers,作者:Aaron Kili

【51CTO译稿,合作站点转载请注明原文译者和出处为51CTO.com】

【编辑推荐】

  1. 在 Linux 下截屏并编辑的最佳工具
  2. 如何在Linux中列出可用的软件包组
  3. 如何在Linux下锁住键盘和鼠标而不锁屏
  4. 在Ubuntu 18.04 LTS上使用 KVM 配置无头虚拟化服务器
  5. 如何在救援(单用户模式)/紧急模式下启动Ubuntu 18.04/Debian 9服务器
【责任编辑:庞桂玉 TEL:(010)68476606】

点赞 0
分享:
大家都在看
猜你喜欢

读 书 +澳门美高梅梅登录网站

C++编程你也行

本书是一本优秀的C++教材,内容包括:基础类型、操作符和简单变量,循环和决策,命名空间和C++标准库,用C++编写函数,行为、序列点和求值...

订阅51CTO邮刊

点击这里查看样刊

订阅51CTO邮刊
博聚网