pssh是一个可以在多台服务器上执行命令的工具,同时支持拷贝文件,是同类工具中很出色的。使用是必须在各个服务器上配置好密钥认证访问。
pssh 包安装 5 个实用程序:
pssh 在多个主机上并行地运行命令。
pscp 把文件并行地复制到多个主机上。
prsync 通过 rsync 协议把文件高效地并行复制到多个主机上。
pslurp 把文件并行地从多个远程主机复制到中心主机上。
pnuke 并行地在多个远程主机上杀死进程。
1.安装
[size=1em] 1 2 3 4 | wget http://parallel-ssh.googlecode.com/files/pssh-2.2.2.tar.gz tar zxvf pssh-2.2.2.tar.gz cd pssh-2.2.2 python setup.py install |
2.简单使用
在使用之前需要配置密钥访问,如下:
#ssh-keygen #一直回车
#ssh-copy-id -i .ssh/id_rsa.pub root@192.168.16.X #复制公钥到远端服务器
ps.如果端口不是默认22 ,需要使用:ssh-copy-id -i .ssh/id_rsa.pub ”-p 4567 yin@192.168.16.X”
创建servers.txt文件:
192.168.16.1
192.168.16.2
luby@192.168.16.3:4567
[root@orkaudiobackup ~]# pssh -h servers.txt -l root -P uptime
192.168.16.X: 18:32:40 up 3 days, 7:07, 1 user, load average: 0.00, 0.00, 0.00
[1] 18:36:27 [SUCCESS] 192.168.16.X
更多用法查看:
[size=1em] 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | [root@orkaudiobackup ~]# pssh --help usage: pssh [OPTIONS] command [...] options: --help show this help message and exit -h HOST_FILE, --hosts=HOST_FILE hosts file (each line "[user@]host[:port]") -H HOST_STRING, --host=HOST_STRING additional host entries ("[user@]host[:port]") -l USER, --user=USER username (OPTIONAL) -p PAR, --par=PAR max number of parallel threads (OPTIONAL) -o OUTDIR, --outdir=OUTDIR output directory for stdout files (OPTIONAL) -e ERRDIR, --errdir=ERRDIR output directory for stderr files (OPTIONAL) -t TIMEOUT, --timeout=TIMEOUT timeout (secs) (0 = no timeout) per host (OPTIONAL) -O OPTION, --option=OPTION SSH option (OPTIONAL) -v, --verbose turn on warning and diagnostic messages (OPTIONAL) -A, --askpass Ask for a password (OPTIONAL) -x ARGS, --extra-args=ARGS Extra command-line arguments, with processing for spaces, quotes, and backslashes -X ARG, --extra-arg=ARG Extra command-line argument -i, --inline inline aggregated output for each server -I, --send-input read from standard input and send as input to ssh -P, --print print output as we get it |
3.其他几个命令
pscp用法示例:
用代理机当前目录下面的get.sh分发到服务器列表中的/tmp目录下,名字为get.sh
[size=1em] 1 2 3 4 5 6 7 8 9 10 11 | [root@orkaudiobackup ~]# pscp -h servers.txt get.sh /tmp/get.sh [1] 21:30:09 [SUCCESS] 192.168.16.145 [2] 21:30:09 [SUCCESS] yin@192.168.16.1:4567 [3] 21:30:09 [SUCCESS] 192.168.16.147 [root@orkaudiobackup ~]# pssh -h servers.txt -P ls -al /tmp/get.sh 192.168.16.147: -rwxr-xr-x 1 root root 348 Sep 1 21:26 /tmp/get.sh [1] 21:31:34 [SUCCESS] 192.168.16.147 192.168.16.145: -rwxr-xr-x 1 root root 348 Sep 1 21:30 /tmp/get.sh 192.168.16.190: -rwxr-xr-x 1 yin yin 348 Sep 1 21:29 /tmp/get.sh [2] 21:31:34 [SUCCESS] 192.168.16.145 [3] 21:31:34 [SUCCESS] yin@192.168.16.1:4567 |
pslurp用法示例:
把服务器列表中的/tmp/get.sh全部复制到代理 机的/tmp目录下面
[size=1em] 1 2 3 | [root@orkaudiobackup ~]# ll /tmp/192.168.16.190 total 4 -rwxr-xr-x 1 root root 348 Sep 1 21:40 get1.sh |
4.写完收工,晚安!