OpenSSH是当前使用最多、功能强大的Linux工具,可以让用户用shell安全的连接到Linux系统,完成文件传输等操作。但是OpenSSH存在局限性,就是不支持在多台主机上同时执行相同命令。并行SSH或PSSH这时就可以派上用场,基于Python开发的应用程序可以完成多主机上并行命令。
Pssh支持多台远程主机上并行ssh程序,pacp支持并行把文件复制到多个主机程序,prsync是一个用于高效地把文件并行复制到多个主机的程序,pnuke是并行终止多个远程主机进程,pslurp是把文件从多个远程主机并行复制到中央主机,这些工具常常被用于网络上需要处理大量节点的系统管理场景。pip命令是一个用于安装和管理 Python 软件包索引的小程序(easy_install脚本的替代)。
RHEL中安装pip包,用yum或dnf安装PSSH程序:
yum install python-pip
或
dnf install python-pip
安装后,开始安装pssh:
pip install pssh
Debian 的发行版上:
sudo apt install python-pip
sudo pip install pssh
在Linux中使用pssh需要创建一个主机文件,其中含主机数量及pssh连接到远程系统所需IP地址和端口号。通过运行pssh命令在网络上的不同或多个 Linux 主机上执行任何单个命令。pssh有许多选项可供使用。
读取主机文件:
-h host_file-name
或
--hosts host_file_name
要在所有未定义特定用户的主机上包含默认用户名:
-l用户名
或
--user username
还可以在每个主机完成时显示标准输出和标准错误:
-i
或
--inline
如果要通过包含该选项使连接在给定的秒数后超时:
-t number_of_seconds。
要将标准输出保存到给定目录:
-o /directory/path
要询问密码并将其发送到 SSH,
-A
找出网络上多个 Linux 服务器的磁盘空间使用情况:
pssh -h pssh-hosts -l root -A -i "df -hT"
如果想一次了解多台 Linux 服务器的正常运行时间:
pssh -h pssh-hosts -l root -A -i "uptime"
查看更多有关pssh用法:
pssh --help