收集云服务器优惠信息
记录云服务器使用心得

PSSH:在多个远程Linux服务器上执行命令的并行SSH工具

毫无疑问,OpenSSH是Linux上使用最广泛、功能最强大的工具之一,它允许用户通过Shell安全地连接到远程Linux系统,并允许用户安全地在远程系统之间传输文件。

但是,OpenSSH的最大缺点是你无法一次性在多个主机上执行相同的命令,并且OpenSSH并不是为执行此类任务而开发的。所以,这就是PSSH(并行SSH)工具派上用场的地方,它是一个基于Python的应用程序,允许用户同时在多个主机上并行执行命令。

PSSH工具包括OpenSSH的并行版本和相关工具,主要包括以下几个方面:

  • pssh:一个在多个远程主机上并行运行ssh的程序。
  • pscp:一个用于将文件并行复制到多个主机的程序。
  • prsync:一个用于高效地将文件并行复制到多个主机的程序。
  • pnuke:并行终止多个远程主机上的进程。
  • pslurp:将文件从多个远程主机并行复制到中央主机。

以上这些PSSH工具对于需要处理网络上大量节点的系统管理员来说非常有用。

OpenSSH用法示例

在Linux上安装PSSH

这里主要介绍使用pip命令在基于RHEL的发行版(例如Fedora、CentOS Stream、Rocky和AlmaLinux)以及基于Debian的发行版(例如Ubuntu和Linux Mint)上安装最新版本的PSSH(即版本2.3.1 )的简单步骤。

pip命令是一个小程序(替换easy_install脚本),用于安装和管理Python软件包索引。

基于RHEL的发行版

在RHEL发行版上,需要首先在系统上安装pip软件包(即python-pip ),以使用yum或dnf安装PSSH程序:

yum install python-pip
或者
dnf install python-pip

安装pip工具后,可以使用pip命令安装pssh软件包,命令如下:

pip install pssh
基于Debian的发行版

在基于Debian的发行版上,使用pip命令安装pssh大概需要一分钟的时间:

sudo apt install python-pip
sudo pip install pssh

在Linux系统中使用pssh

使用pssh时,需要创建一个主机文件,其中包含主机数量以及使用pssh连接到远程系统所需的IP地址和端口号。其中,主机文件中的行采用以下形式,还可以包含空行和注释。

pssh主机文件示例如下:
192.168.0.10:22
192.168.0.11:22

另外,可以通过运行pssh命令在网络上的不同或多台Linux主机上执行任何单个命令。目前有许多选项可与pssh一起使用,具体如下所述:

  • 要读取主机文件,请包含-h host_file-name--hosts host_file_name选项。
  • 要在未定义特定用户的所有主机上包含默认用户名,请使用-lusername 或--user username选项。
  • 还可以在每个主机完成时显示标准输出和标准错误,通过使用-i--inline选项即可。
  • 可以通过包含-t number_of_seconds选项来使连接在给定秒数后超时。
  • 要将标准输出保存到给定目录,可以使用-o /directory/path选项。
  • 要请求密码并将其发送到SSH,请使用-A选项。

接下来让我们看一些pssh命令的示例和用法:

在多个Linux主机上运行命令

要通过root用户在多个Linux主机的终端上执行echo “Hello TecMint”并提示输入root用户密码,请运行以下命令。

重要提示:记住所有需要执行的主机必须包含在主机文件中。

pssh -h pssh-hosts -l root -A echo "Hello TecMint"

Warning: do not enter your password if anyone else has superuser
privileges or access to your account.
Password: 
[1] 15:54:55 [SUCCESS] 192.168.0.10:22
[2] 15:54:56 [SUCCESS] 192.168.0.11:22

注意:在上面的命令中,“ pssh-hosts ”是一个文件,其中包含你希望执行命令的远程Linux服务器的IP地址和SSH端口号的列表。

查找多个Linux主机的磁盘使用情况

要了解网络上多个Linux服务器的磁盘空间使用情况,可以运行单个命令,如下所示:

pssh -h pssh-hosts -l root -A -i "df -hT"

Warning: do not enter your password if anyone else has superuser
privileges or access to your account.
Password: 
[1] 16:04:18 [SUCCESS] 192.168.0.10:22
Filesystem     Type   Size  Used Avail Use% Mounted on
/dev/sda3      ext4    38G  4.3G   32G  12% /
tmpfs          tmpfs  499M     0  499M   0% /dev/shm
/dev/sda1      ext4   190M   25M  156M  14% /boot

[2] 16:04:18 [SUCCESS] 192.168.0.11:22
Filesystem              Type      Size  Used Avail Use% Mounted on
/dev/mapper/centos-root xfs        30G  9.8G   20G  34% /
devtmpfs                devtmpfs  488M     0  488M   0% /dev
tmpfs                   tmpfs     497M  148K  497M   1% /dev/shm
tmpfs                   tmpfs     497M  7.0M  490M   2% /run
tmpfs                   tmpfs     497M     0  497M   0% /sys/fs/cgroup
/dev/sda1               xfs       497M  166M  332M  34% /boot
查找多个Linux主机的正常运行时间

如果你想一次性了解多台Linux服务器的正常运行时间,可以运行以下命令:

pssh -h pssh-hosts -l root -A -i "uptime"
Warning: do not enter your password if anyone else has superuser
privileges or access to your account.
Password: 
[1] 16:09:03 [SUCCESS] 192.168.0.10:22
 16:09:01 up  1:00,  2 users,  load average: 0.07, 0.02, 0.00

[2] 16:09:03 [SUCCESS] 192.168.0.11:22
 06:39:03 up  1:00,  2 users,  load average: 0.00, 0.06, 0.09

此外,你还可以查看pssh命令的手动输入页面来获取许多其他选项,以了解更多使用pssh的方法:

pssh --help

pssh命令和用法

总结

PSSH是一个很好的工具,可用于在系统管理员必须与网络上的许多服务器一起工作的环境中执行命令,它将使命令可以轻松地在网络上的不同主机上远程执行。

希望本文关于PSSH命令的介绍能够对大家有所帮助,如果有任何有关PSSH的其它信息或在安装或使用它时出现错误,也可以查看帮助页面。

赞(0)
网站声明:本文内容由趣云笔记原创,部分资源收集于网络,如有侵权请联系企鹅:2472781824删除。
文章名称:《PSSH:在多个远程Linux服务器上执行命令的并行SSH工具》
文章链接:https://www.ecscoupon.com/3862.html
本站资源仅供个人学习交流,未经允许不得转载,更不允许用于商业用途。如需转载,请注明来源,感谢理解!