当前位置: 首页 > 科技观察

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

时间:2023-03-16 02:03:52 科技观察

【.com快译】本文将讲解如何同时在多台Linux服务器上运行命令。我们将解释如何使用一些众所周知的工具来同时在多个服务器上执行一系列重复的命令。本文对于通常每天检查多台Linux服务器的运行状况的系统管理员很有用。我们假设您已经设置了SSH以访问所有服务器;其次假设在同时访问多台服务器时,在所有Linux服务器上设置基于密钥的无密码SSH是合适的。这增强了服务器安全性并为用户提供了轻松访问。1.PSSH-ParallelSSHParallel-SSH是一种快速且易于使用的基于命令行的开源Python工具包,用于在众多Linux系统上并行执行ssh。它包括许多用于不同目的的工具,例如parallel-ssh、parallel-scp、parallel-rsync、parallel-slurp和parallel-nuke(有关更多信息,请阅读相应工具的参考手册页)。安装parallel-ssh需要先在Linux系统上安装PIP。$sudopipinstallparallel-ssh$sudoaptinstallpython-pippython-setuptools  #Debian/Ubuntu#yuminstallpython-pippython-setuptools#RHEL/CentOS#dnfinstallpython-pippython-setuptools#Fedora22+然后使用pip安装parallel-ssh如下。$sudopipinstallparallel-ssh接下来,在名为hosts的文件中使用SSH端口输入远程Linux服务器的主机名或IP地址(该文件可以随意命名):$vimhostspsshhostsfile192.168.0.10:22192.168.0.11:22192.168。0.12:22保存文件并关闭。现在运行parallel-ssh,使用-h选项指定主机文件,并指定一个或多个命令在所有指定的服务器上执行。-i标志表示在每个服务器上执行命令后,显示标准输出和标准错误。$parallel-ssh-hhosts"uptime;df-h"图1:Pssh-在多个Linux服务器上运行命令2.Pdsh-并行远程Shell实用程序Pdsh是一个简单的开源并行远程shell工具,用于在多个Linux服务器上同时执行命令.它使用线程的滑动窗口来执行远程命令。要在Linux计算机上安装Pdsh,请运行下面相应的命令。$sudoaptinstallpdsh    #Debian/Ubuntu#yuminstallpdsh  #RHEL/CentOS#dnfinstallpdsh#Fedora22+想在多台服务器上运行该命令,将服务器添加到hosts文件中,如前所述。然后运行pdsh,如图;标志-w用于指定hosts文件,-R用于指定远程命令模块(可用的远程命令模块包括ssh、rsh和exec,默认模块为rsh)。请注意主机文件前面的^。$pdsh-w^hosts-Rssh"uptime;df-h"图2:pdsh——在多台Linux服务器上执行命令如果不在命令行指定远程命令执行,如上图,pdsh会以Runs启动以交互方式提示您输入命令,并在以回车符终止时运行命令。有关详细信息,请参阅pdsh参考手册页:$manpdsh3。ClusterSSHClusterSSH是一个命令行工具,用于同时管理多台服务器的集群。它为所有指定的服务器启动管理控制台和xterm,允许您在所有服务器上运行相同的命令。要使用clusterssh,首先将其安装在本地Linux计算机上,如图所示。$sudoaptinstallclusterssh#Debian/Ubuntu#yuminstallclusterssh#RHEL/CentOS$sudodninstallclusterssh#Fedora22+现在它已安装,打开远程服务器上的管理控制台和xterm,如下所示。要在所有服务器上运行命令,请单击xterm输入字段并输入要运行的命令;要管理单个主机,请使用其管理控制台。$clustersshlinodecservercontabo或$clustersshusername@server1username@server2username@server3图3:Clusterssh-管理多个SSH会话有关详细信息,请参阅clusterssh参考手册页:$manclusterssh4.AnsibleAnsible是一种流行的开源工具,用于自动化IT流程。它用于配置和管理系统、部署应用程序等。要在Linux系统上安装Ansible,请运行以下相应命令:$sudoaptinstallansible#Debian/Ubuntu#yuminstallsible#RHEL/CentOS$sudodnfinstallansible#Fedora22+安装ansible后,您可以在文件/etc/anasible/中添加服务器的主机名主机或IP地址。$sudovim/etc/anasible/hosts将它们指定为组,例如网络服务器。#Ex2:属于“webservers”组的主机集合[webservers]139.10.100.147139.20.40.90192.30.152.186Ansible–RunCommandonMultipleLinuxServers保存文件并关闭。现在要检查连接到组webservers中指定的所有服务器的正常运行时间和用户,在上面的主机配置文件中,只需运行ansible命令行工具,如下所示。-a选项用于指定传递给模块的参数,-u标志指定用于通过SSH连接到远程服务器的默认用户名。请注意,ansibleCLI工具最多只允许您执行一条命令。$ansiblewebservers-a"w"-uadmin图4:Ansible-在多个Linux服务器上运行命令在本文中,我们将解释如何使用常用工具在多个远程Linux服务器上同时运行命令。如果您知道其他具有相同用途但未在本文中提及的工具,请添加它们。原标题:4个在多台Linux服务器上运行命令的实用工具,作者:AaronKili