1 | pssh
|
2 | ===
|
3 |
|
4 | 批量管理执行
|
5 |
|
6 | ## 补充说明
|
7 |
|
8 | **pssh命令** 是一个python编写可以在多台服务器上执行命令的工具,同时支持拷贝文件,是同类工具中很出色的,类似pdsh,个人认为相对pdsh更为简便,使用必须在各个服务器上配置好密钥认证访问。
|
9 |
|
10 | ### 安装pssh
|
11 |
|
12 | 在CentOS系统环境下,介绍yum的安装和源码安装的方式:
|
13 |
|
14 | **yum方法**
|
15 |
|
16 | ```shell
|
17 | yum install pssh
|
18 | ```
|
19 |
|
20 | **编译安装**
|
21 |
|
22 | ```shell
|
23 | wget http://parallel-ssh.googlecode.com/files/pssh-2.3.1.tar.gz
|
24 | tar xf pssh-2.3.1.tar.gz
|
25 | cd pssh-2.3.1/
|
26 | python setup.py install
|
27 | ```
|
28 |
|
29 | ### 选项
|
30 |
|
31 | ```shell
|
32 | --version:查看版本
|
33 | --help:查看帮助,即此信息
|
34 | -h:主机文件列表,内容格式”[user@]host[:port]”
|
35 | -H:主机字符串,内容格式”[user@]host[:port]”
|
36 | -:登录使用的用户名
|
37 | -p:并发的线程数【可选】
|
38 | -o:输出的文件目录【可选】
|
39 | -e:错误输入文件【可选】
|
40 | -t:TIMEOUT 超时时间设置,0无限制【可选】
|
41 | -O:SSH的选项
|
42 | -v:详细模式
|
43 | -A:手动输入密码模式
|
44 | -x:额外的命令行参数使用空白符号,引号,反斜线处理
|
45 | -X:额外的命令行参数,单个参数模式,同-x
|
46 | -i:每个服务器内部处理信息输出
|
47 | -P:打印出服务器返回信息
|
48 | ```
|
49 |
|
50 | ### 实例
|
51 |
|
52 | 获取每台服务器的uptime:
|
53 |
|
54 | ```shell
|
55 | # pssh -h ip.txt -i uptime
|
56 | [1] 11:15:03 [SUCCESS] Mar.mars.he
|
57 | 11:15:11 up 4 days, 16:25, 1 user, load average: 0.00, 0.00, 0.00
|
58 | [2] 11:15:03 [SUCCESS] Jan.mars.he
|
59 | 11:15:12 up 3 days, 23:26, 0 users, load average: 0.00, 0.00, 0.00
|
60 | [3] 11:15:03 [SUCCESS] Feb.mars.he
|
61 | 11:15:12 up 4 days, 16:26, 2 users, load average: 0.08, 0.02, 0.01
|
62 | ```
|
63 |
|
64 | 查看每台服务器上mysql复制IO/SQL线程运行状态信息:
|
65 |
|
66 | ```shell
|
67 | # pssh -h IP.txt -i "/usr/local/mysql/bin/mysql -e 'show slave status \G'"|grep Running:
|
68 | Slave_IO_Running: yes
|
69 | Slave_SQL_Running: Yes
|
70 | Slave_IO_Running: Yes
|
71 | Slave_SQL_Running: Yes
|
72 | Slave_IO_Running: Yes
|
73 | Slave_SQL_Running: Yes
|
74 | ```
|
75 |
|
76 | 保存每台服务器运行的结果:
|
77 |
|
78 | ```shell
|
79 | # pssh -h IP.txt -i -o /tmp/pssh/ uptime
|
80 | [1] 11:19:47 [SUCCESS] Feb.mars.he
|
81 | 11:19:55 up 4 days, 16:31, 2 users, load average: 0.02, 0.03, 0.00
|
82 | [2] 11:19:47 [SUCCESS] Jan.mars.he
|
83 | 11:19:56 up 3 days, 23:30, 0 users, load average: 0.01, 0.00, 0.00
|
84 | [3] 11:19:47 [SUCCESS] Mar.mars.he
|
85 | 11:19:56 up 4 days, 16:30, 1 user, load average: 0.00, 0.00, 0.00
|
86 | ```
|
87 |
|
88 | 我们来看一下/tmp/pssh/下的文件及其内容
|
89 |
|
90 | ```shell
|
91 | # ll /tmp/pssh/
|
92 | 总用量 12
|
93 | -rw-r--r--. 1 root root 70 12月 1 11:19 Feb.mars.he
|
94 | -rw-r--r--. 1 root root 70 12月 1 11:19 Jan.mars.he
|
95 | -rw-r--r--. 1 root root 69 12月 1 11:19 Mar.mars.he
|
96 |
|
97 | # cat /tmp/pssh/*
|
98 | 11:19:55 up 4 days, 16:31, 2 users, load average: 0.02, 0.03, 0.00
|
99 | 11:19:56 up 3 days, 23:30, 0 users, load average: 0.01, 0.00, 0.00
|
100 | 11:19:56 up 4 days, 16:30, 1 user, load average: 0.00, 0.00, 0.00
|
101 | ```
|
102 |
|
103 | 上面介绍的是pssh命令很少的一部分,大家可以将其用到适合自己的场景,发挥它的最大功效。
|
104 |
|
105 |
|
106 |
|
\ | No newline at end of file |