一、pssh简介

pssh原名为parallel-ssh,底层使用python编写,需要python解释器和核心库支持(中心主机安装python即可),可以并行在多个主机上执行远程命令行操作,parallel-ssh工具执行时最多生成32个进程,适用于小批量管理主机,执行一些并行批量化命令行操作


二、pssh的安装

$ wget https://parallel-ssh.googlecode.com/files/pssh-2.3.1.tar.gz
$ tar xf pssh-2.3.1.tar.gz
$ cd pssh-2.3.1/
$ sudo python setup.py install

三、pssh工具包的使用

pssh工具包有5个命令行工具:pssh、pscp、prsync、pslurp、pnuke

如中心主机使用pssh工具包,则需要做好ssh信任被管理的主机

1、pssh多主机并行运行命令(ip.data中的格式可以是root@ip:port)

$ sudo pssh -P -h ip.data uptime
# 在多个主机上远程执行uptime命令
172.16.2.225:  14:54:37 up  3:21,  1 user,  load average: 0.00, 0.01, 0.05
[1] 14:54:39 [SUCCESS] 172.16.2.225
172.16.2.226:  14:54:37 up  3:21,  1 user,  load average: 0.00, 0.01, 0.05
[2] 14:54:39 [SUCCESS] 172.16.2.226
172.16.2.220:  14:54:36 up  3:21,  1 user,  load average: 0.00, 0.01, 0.05
[3] 14:54:39 [SUCCESS] 172.16.2.220

2、pscp把文件并行复制到多个主机(单向,服务器端向客户端)

$ sudo pscp -h ip.data -l root zabbix.php /tmp
#将本地的zabbix.php文件上传到目标主机的/tmp目录下                    
[1] 15:03:57 [SUCCESS] 172.16.2.225
[2] 15:03:57 [SUCCESS] 172.16.2.220
[3] 15:03:57 [SUCCESS] 172.16.2.226

3、prsync使用rsync协议将本地目录同步到多个主机

$ sudo prsync -r -h ip.data -l root zatree /tmp
# 将本地的zatree目录递归同步到目标主机的/tmp目录下
[1] 14:47:43 [SUCCESS] 172.16.2.220
[2] 14:47:43 [SUCCESS] 172.16.2.226
[3] 14:47:43 [SUCCESS] 172.16.2.225

4、pslurp将远程主机上的某个文件复制到本地(仅限传输文件)

$ sudo pslurp -h ip.data -L /data -l root /tmp/ikkitest.file ikki.file
# 将目标主机的/tmp/ikkitest.file文件复制到本地的/data目录下,并改名为ikki.file
[1] 13:34:24 [SUCCESS] 172.16.2.220
[2] 13:34:24 [SUCCESS] 172.16.2.225
[3] 13:34:24 [SUCCESS] 172.16.2.226

5、pnuke并行在远程主机杀死进程

$ sudo pnuke -h ip.data -l root zabbix
# 杀死远程主机上的zabbix进程(ps中关键词)
[1] 15:10:56 [SUCCESS] 172.16.2.220
[2] 15:10:56 [SUCCESS] 172.16.2.225
[3] 15:10:56 [SUCCESS] 172.16.2.226