PSSH提供OpenSSH和相关工具的并行版本。包括pssh,pscp,prsync,pnuke和pslurp。该项目包括psshlib,可以在自定义应用程序中使用.PPS 2.4和更高版本(包括Python 3.1和更高版本)支持PSSH。
在ubuntu上安装pssh
打开终端并运行以下命令
sudo apt-get install python-pip
sudo pip install pssh
使用PSSH
PSSH语法
pssh [-vAiIP] [-h hosts_file] [-H [user@]host[:port]] [-l user] [-p par] [-o outdir] [-e errdir] [-t timeout] [-O options] [-x args] [-X arg] command
PSSH示例
连接到host1和host2,并从每个打印“hello,world”
pssh -i -H“host1 host2”echo“hello,world”
从文件hosts.txt中指定的每个主机打印“hello,world”
pssh -i -h hosts.txt echo“hello,world”
以root用户身份运行命令,并提示输入root密码
pssh -i -h hosts.txt -A -l root echo hi
在没有超时的情况下运行长命令
pssh -i -h hosts.txt -t 0 sleep 10000
如果文件hosts.txt包含大量条目,例如100,那么parallelism选项也可以设置为100以确保命令同时运行
pssh -i -h hosts.txt -p 100 -t 0 sleep 10000
在不检查或保存主机密钥的情况下运行命令
pssh -i -H host1 -H host2 -x“-O StrictHostKeyChecking = no -O UserKnownHostsFile = / dev / null -O GlobalKnownHostsFile = / dev / null”echo hi
打印每个连接的节点号(这将打印0,1和2)
pssh -i -H host1 -H host1 -H host2'echo $ PSSH_NODENUM'
上面的例子来自PSSH手册
注意
如果您经常使用特定选项连接到一组主机,则创建别名可能会有所帮助,例如:
别名pssh_servers =“pssh -h /path/to/server_list.txt -l root -A”
ssh_config文件可以包含任意数量的主机部分。每个主机条目指定仅适用于给定主机的ssh选项。如果包含HostName选项,则主机定义甚至可以像别名一样运行。此ssh功能与pssh主机文件结合使用,可提供极大的灵活性。