OPS Notes By 枯木

Pssh使用方法

| Comments

pssh是一个python编写可以在多台服务器上执行命令的工具,同时支持拷贝文件,是同类工具中很出色的,类似pdsh pdsh使用方法 。为方便操作,使用前请在各个服务器上配置好密钥认证访问。项目地址: parallel-ssh

安装

1
2
3
4
wget http://parallel-ssh.googlecode.com/files/pssh-2.3.1.tar.gz
tar zxvf pssh-2.3.1.tar.gz
cd pssh-2.3.1/
python setup.py install

pssh相关参数

  • pssh在多个主机上并行地运行命令
    • -h 执行命令的远程主机列表,文件内容格式[user@]host[:port]
      • 如 test@172.16.10.10:229
    • -H 执行命令主机,主机格式 user@ip:port
    • -l 远程机器的用户名
    • -p 一次最大允许多少连接
    • -P 执行时输出执行信息
    • -o 输出内容重定向到一个文件
    • -e 执行错误重定向到一个文件
    • -t 设置命令执行超时时间
    • -A 提示输入密码并且把密码传递给ssh(如果私钥也有密码也用这个参数)
    • -O 设置ssh一些选项
    • -x 设置ssh额外的一些参数,可以多个,不同参数间空格分开
    • -X 同-x,但是只能设置一个参数
    • -i 显示标准输出和标准错误在每台host执行完毕后

附加工具

  • pscp 传输文件到多个hosts,类似scp
    • pscp -h hosts.txt -l irb2 foo.txt /home/irb2/foo.txt
  • pslurp 从多台远程机器拷贝文件到本地
  • pnuke 并行在远程主机杀进程
    • pnuke -h hosts.txt -l irb2 java
  • prsync 使用rsync协议从本地计算机同步到远程主机
    • prsync -r -h hosts.txt -l irb2 foo /home/irb2/foo

示例

1
2
3
kumu-opsdev ~ # cat host.txt 
root@192.168.230.128
wul@10.0.0.8

推荐使用-i选项输出信息而不是-P选项

1
2
3
4
5
kumu-opsdev ~ # pssh -i -h host.txt 'date'
[1] 16:32:38 [SUCCESS] root@192.168.230.128
Mon Aug 12 16:32:38 CST 2013
[2] 16:32:38 [SUCCESS] wul@10.0.0.8
Mon Aug 12 16:32:38 CST 2013

-x选项

1
2
3
4
5
6
7
kumu-opsdev ~ # pssh -x '-t -t -o StrictHostKeyChecking=no' -i -h host.txt date
[1] 17:20:01 [SUCCESS] root@192.168.230.128
Mon Aug 12 17:20:01 CST 2013
Stderr: Connection to 192.168.230.128 closed.
[2] 17:20:01 [SUCCESS] wul@10.0.0.8
Mon Aug 12 17:20:01 CST 2013
Stderr: Connection to 10.0.0.8 closed.

-H选项

1
2
3
4
5
6
7
kumu-opsdev ~ # pssh -x '-t -t -o StrictHostKeyChecking=no' -i -H 192.168.230.128 -H wul@10.0.0.8 date
[1] 17:22:58 [SUCCESS] 192.168.230.128
Mon Aug 12 17:22:58 CST 2013
Stderr: Connection to 192.168.230.128 closed.
[2] 17:22:58 [SUCCESS] wul@10.0.0.8
Mon Aug 12 17:22:58 CST 2013
Stderr: Connection to 10.0.0.8 closed.

参考文档

–EOF–

Comments