Pssh  - 使用单终端在多个远程Linux服务器上执行命令

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

Pssh - 在多个Linux服务器上运行命令

但是OpenSSH的最大的缺点是,你不能一气呵成在多个主机上执行相同的命令和OpenSSH是没有发展到执行这些任务。 这是并行SSHPSSH工具就派上用场了,是一个基于Python的应用程序,它可以让你在同一时间执行的并行多台主机的命令。

不要错过在使用DSH工具多个Linux服务器执行命令

PSSH工具包含OpenSSH的并行版本以及相关的工具,如:

  1. PSSH -是在多台远程主机并行运行SSH程序。
  2. PSCP -是在复制文件的同时向多台主机的程序。
    1. Pscp - 复制/传输文件两个或多个远程Linux服务器
  3. prsync -是并行高效地将文件复制到多台主机的程序。
  4. pnuke -杀死在并行多个远程主机的进程。
  5. pslurp -从多个远程主机文件复制到并行中央主机。

这些工具对于发现自己在网络上使用大型节点集合的系统管理员很有用。

在Linux上安装PSSH或Parallel SSH

在本指南中,我们将看看步骤,基于Fedora发行等的CentOS / RedHat和使用PIP命令Debian的衍生物如Ubuntu / 薄荷安装最新版本的PSSH(即2.3.1版)程序。

画中画命令是用于安装和管理Python的软件包指数的一个小程序(替代easy_install的脚本)。

基于Fedora的分发

CentOS / RHEL发行版,你需要在你的系统下先安装PIP(即python-PIP)封装,以便安装PSSH程序。

# yum install python-pip

Fedora 21+,你需要运行DNF命令 ,而不是Yum(DNF取代YUM)。

# dnf install python-pip

一旦你安装pip工具,你可以安装pssh软件包与pip命令的帮助,如图所示。

# pip install pssh  
示例输出
/usr/lib/python2.6/site-packages/pip/_vendor/requests/packages/urllib3/util/ssl_.py:90: InsecurePlatformWarning: A true SSLContext object is not available. This prevents urllib3 from configuring SSL appropriately and may cause certain SSL connections to fail. For more information, see https://urllib3.readthedocs.org/en/latest/security.html#insecureplatformwarning.
InsecurePlatformWarning
You are using pip version 7.1.0, however version 7.1.2 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.
Collecting pssh
/usr/lib/python2.6/site-packages/pip/_vendor/requests/packages/urllib3/util/ssl_.py:90: InsecurePlatformWarning: A true SSLContext object is not available. This prevents urllib3 from configuring SSL appropriately and may cause certain SSL connections to fail. For more information, see https://urllib3.readthedocs.org/en/latest/security.html#insecureplatformwarning.
InsecurePlatformWarning
Downloading pssh-2.3.1.tar.gz
Installing collected packages: pssh
Running setup.py install for pssh
Successfully installed pssh-2.3.1

Debian衍生产品

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

$ sudo apt-get install python-pip
$ sudo pip install pssh
示例输出
Downloading/unpacking pssh
Downloading pssh-2.3.1.tar.gz
Running setup.py (path:/tmp/pip_build_root/pssh/setup.py) egg_info for package pssh
Installing collected packages: pssh
Running setup.py install for pssh
changing mode of build/scripts-2.7/pssh from 644 to 755
changing mode of build/scripts-2.7/pnuke from 644 to 755
changing mode of build/scripts-2.7/prsync from 644 to 755
changing mode of build/scripts-2.7/pslurp from 644 to 755
changing mode of build/scripts-2.7/pscp from 644 to 755
changing mode of build/scripts-2.7/pssh-askpass from 644 to 755
changing mode of /usr/local/bin/pscp to 755
changing mode of /usr/local/bin/pssh-askpass to 755
changing mode of /usr/local/bin/pssh to 755
changing mode of /usr/local/bin/prsync to 755
changing mode of /usr/local/bin/pnuke to 755
changing mode of /usr/local/bin/pslurp to 755
Successfully installed pssh
Cleaning up...

从上面的输出可以看出,系统上已经安装了最新版本的pssh。

如何使用pssh?

当使用PSSH你需要创建与IP地址和端口号,你需要连接到使用PSSH远程系统的主机数量的主机文件。

主机文件中的行以下面的形式,也可以包括空行和注释。

pssh主机文件
192.168.0.10:22
192.168.0.11:22
使用pssh在多个服务器上执行单个命令

您可以通过运行一个命令PSSH在网络上执行不同或多Linux主机任何单一的命令。 有很多选择,如下所述与PSSH使用方法:

我们将看看使用具有不同选项的pssh在多个主机上执行命令的几种方法。

  1. 要读取hosts文件,包括-h host_file名-hosts host_file_name选项。
  2. 要包括在不定义特定用户的所有主机的默认用户名,使用-l用户名或-user用户名选项。
  3. 每个主机完成后,还可以显示标准输出和标准错误。 通过使用-i-inline选项。
  4. 您可能希望通过包括-t NUMBER_OF_SECONDS选项,以使连接超时秒指定号码后。
  5. 到标准输出保存到特定的目录,你可以使用-o /目录/路径选择。
  6. 要问密码,发送给SSH,使用-A选项。

让我们看看几个例子和pssh命令的用法:

1.由root用户执行echo“你好youcl”多个Linux主机的终端上,并提示输入root用户的密码,下面运行此命令。

重要提示 :记住所有主机都必须包含在主机文件。

# pssh -h pssh-hosts -l root -A echo "Hello youcl"
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的主机 ”是您要执行的命令远程Linux服务器的IP地址和SSH端口号列表的文件。

2.要了解你的网络上的多个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

3.如果你想知道的多台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命令和用法

概要

平行SSHPSSH是用于在系统管理员与网络上的多台服务器的工作环境中执行命令的好工具。 它将使在网络上的不同主机上远程执行命令变得容易。

希望您发现本指南有用,并且在安装或使用它时,任何有关pssh或错误的任何其他信息,请随时发表评论。

赞(52) 打赏
未经允许不得转载:优客志 » 系统运维
分享到:

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏