原文:http://www.linuxidc.com/Linux/2011-12/49635p2.htm
(一) 使用前提
中心主机连接远程主机可以通过ssh密钥无密码连接
(二) 命令格式
pssh 总是通过清单 文件指定主机
其中的每行采用 [user] host[:port] 形式。
(三) 创建servers.txt文件
文件的内容为远程主机的ip,和用于连接ssh的用户名和端口
# vim /home/server.txt
192.168.0.177
root@183.62.138.82:22031
(四) pssh用法-在多个主机上并行地运行命令
# pssh -P -h /home/server.txt hostname
在默认情况下,每个命令实例的输出出现在 stdout 中。输出划分为每个主机一段。但是,可以指定一个目录来捕捉每个实例的输出。例如,如果运行前面的命令并添加 --outdir=/opt/output/,那么会把每个主机的命令输出捕捉到/opt/output/ 中单独的文件中
# pssh -P -h /home/server.txt --outdir=/opt/output/ hostname
# ll /opt/output/
# cat /opt/output/192.168.0.177
Standby
pssh可以生成最多 32 个进程,并行地连接各个节点。如果远程命令在 60 秒内没有完成,连接会终止。如果命令需要更多处理时间,可以使用 -t 设置更长的到期时间。(parallel-scp 和 parallel-rsync 没有默认的到期时间,但是可以用 -t 指定到期时间。)
(五) pscp用法-把文件或者目录并行地复制到多个主机上
# pscp -h /home/server.txt /home/server.txt /opt /qubaoquan
其中/home/server.txt 为本地目录 /opt/qubaoquan为文件名,即server.txt复制到远端后重名为qubaoquan,如果不指定远端文件名只有目录则保持原文件名
也可以复制整个目录到远端
# ll /srv/test
# pscp --recursive -h /home/server.txt /srv/test /opt
(六) pslurp用法-把文件或者目录并行地从多个远程主机复制到中心主机上
它从每台远程计算机收集指定的文件,但是并不覆盖文件的本地版本。pslurp 为每台远程计算机创建一个子目录并把指定的文件复制到此位置
# # pslurp --recursive -h /home/server.txt /etc/passwd /qubaoquan
/etc/passwd 为远程文件 /qubaoquan为本地目录,也可以为拷贝到本地后的文件名.
# tree /qubaoquan/
# pslurp --recursive -h /home/server.txt -L /srv/test/ /srv llll
其中 --recursive表示递归子目录,-L 选项指定创建子目录的位置,/srv为远程目录,lll为拷贝到本地后的目录名,看目录结构就知道了
#tree /srv/test/
(七) pnuke用法-并行地在多个远程主机上杀死进程
pnuke 相当于运行 ssh host killall。pnuke 的参数是一个模式。在远程计算机上运行的名称符合这个模式的所有进程都被杀死。可以用此命令方便地在一组服务器上停止同一守护进程。
# pnuke -h /home/server.txt --user=root cron
命令的结果则是在server.txt文件中指定的主机上执行killall cron命令 其中cron为匹配到cron的进程, 只要ps进程中出现相关词语 都能杀死