pssh批量管理服务器
pssh批量管理服务器
目录
pssh是一个python编写可以在多台服务器上执行命令的工具,同时支持拷贝文件,是同类工具中很出色的,类似pdsh。
- parallel-ssh: https://code.google.com/p/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 |
- yum安装
1
2
|
yum -y install epel-release yum -y install pssh |
- cygwin下安装
1
2
3
|
apt-cyg install python-setuptools easy_install pip pip install pssh |
使用pssh
简要范例
- pssh 在多个主机上并行地运行命令。
pssh -h hosts.txt -l irb2 -o /tmp/foo uptime
- pscp 传输文件到多个主机,类似scp。
pscp -h hosts.txt -l irb2 foo.txt /home/irb2/foo.txt
- pslurp 从多个主机拷贝到本地。
Example: pslurp -h hosts.txt -L /tmp/outdir -l irb2 /home/irb2/foo.txt foo.txt
- pnuke 在多个主机并行地杀进程。
pnuke -h hosts.txt -l irb2 java
- prsync 使用rsync协议从本地同步到远程主机。
prsync -r -h hosts.txt -l irb2 foo /home/irb2/foo
- 避免ssh检查host keys:
123
pssh -i -H host1 -H host2 \
-x
"-O StrictHostKeyChecking=no -O UserKnownHostsFile=/dev/null -O GlobalKnownHostsFile=/dev/null"
\
echo
hi
- 也可以加到.ssh/config
12345
cat
>>~/.
ssh
/config
<<EOF
StrictHostKeyChecking=no
UserKnownHostsFile=
/dev/null
GlobalKnownHostsFile=
/dev/null
EOF
- 也可以加到.ssh/config
- host文件格式
12345
# 可以有空行,#开头的是注释行
# 每行一个主机,格式: [user@]host[:port]
192.168.1.4
root@192.168.1.5
root@192.168.1.7:2203
pssh --help
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
30
31
32
33
34
|
Usage: pssh [OPTIONS] command [...] Options: --version show programs version number and exit --help show this help message and exit -h HOST_FILE, --hosts=HOST_FILE hosts file (each line "[user@]host[:port]" ) #如果指定了多个host文件(多次使用-h选择),pssh将它们连接在一起使用; #如果同一主机出现多次,pssh将会多次连接。 -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 and error for each server --inline-stdout inline standard 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 Example: pssh -h hosts.txt -l irb2 -o /tmp/foo uptime |