pssh
批量管理执行
补充说明
pssh
命令是一个Python编写的工具,可以在多台服务器上执行命令,并支持文件拷贝。与类似的工具pdsh
相比,个人认为pssh
更加简便易用。使用时需要在各个服务器上配置好密钥认证访问。
安装pssh
在CentOS系统环境下,可以通过yum
安装或源码编译安装。
- yum方法
yum install pssh
- 编译安装
wget http://parallel-ssh.googlecode.com/files/pssh-2.3.1.tar.gz
tar xf pssh-2.3.1.tar.gz
cd pssh-2.3.1/
python setup.py install
选项
--version
:查看版本--help
:查看帮助,即此信息-h
:主机文件列表,内容格式[user@]host[:port]
-H
:主机字符串,内容格式[user@]host[:port]
-l
:登录使用的用户名-p
:并发的线程数【可选】-o
:输出的文件目录【可选】-e
:错误输入文件【可选】-t
:TIMEOUT超时时间设置,0表示无限制【可选】-O
:SSH的选项-v
:详细模式-A
:手动输入密码模式-x
:额外的命令行参数使用空白符号,引号,反斜线处理-X
:额外的命令行参数,单个参数模式,同-x-i
:每个服务器内部处理信息输出-P
:打印出服务器返回信息
实例
获取每台服务器的uptime:
代码语言:javascript复制pssh -h ip.txt -i uptime
输出结果:
代码语言:javascript复制[1] 11:15:03 [SUCCESS] Mar.mars.he
11:15:11 up 4 days, 16:25, 1 user, load average: 0.00, 0.00, 0.00
[2] 11:15:03 [SUCCESS] Jan.mars.he
11:15:12 up 3 days, 23:26, 0 users, load average: 0.00, 0.00, 0.00
[3] 11:15:03 [SUCCESS] Feb.mars.he
11:15:12 up 4 days, 16:26, 2 users, load average: 0.08, 0.02, 0.01
查看每台服务器上mysql复制IO/SQL线程运行状态信息:
代码语言:javascript复制pssh -h IP.txt -i "/usr/local/mysql/bin/mysql -e 'show slave status G'" | grep Running:
保存每台服务器运行的结果:
代码语言:javascript复制pssh -h IP.txt -i -o /tmp/pssh/ uptime
输出结果:
代码语言:javascript复制[1] 11:19:47 [SUCCESS] Feb.mars.he
11:19:55 up 4 days, 16:31, 2 users, load average: 0.02, 0.03, 0.00
[2] 11:19:47 [SUCCESS] Jan.mars.he
11:19:56 up 3 days, 23:30, 0 users, load average: 0.01, 0.00, 0.00
[3] 11:19:47 [SUCCESS] Mar.mars.he
11:19:56 up 4 days, 16:30, 1 user, load average: 0.00, 0.00, 0.00
查看保存结果文件的内容:
代码语言:javascript复制# ll /tmp/pssh/
总用量 12
-rw-r--r--. 1 root root 70 12月 1 11:19 Feb.mars.he
-rw-r--r--. 1 root root 70 12月 1 11:19 Jan.mars.he
-rw-r--r--. 1 root root 69 12月 1 11:19 Mar.mars.he
# cat /tmp/pssh/*
11:19:55 up 4 days, 16:31, 2 users, load average: 0.02, 0.03, 0.00
11:19:56 up 3 days, 23:30, 0 users, load average: 0.01, 0.00, 0.00
11:19:56 up 4 days, 16:30, 1 user, load average: 0.00, 0.00, 0.00
上面介绍的是pssh
命令的一部分功能,您可以根据自己的需求灵活运用该工具,发挥其最大的功效。