pssh批量管理服务器

pssh批量管理服务器

目录

pssh是一个python编写可以在多台服务器上执行命令的工具,同时支持拷贝文件,是同类工具中很出色的,类似pdsh。

安装

  • 编译安装
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:
    1
    2
    3
    pssh -i -H host1 -H host2 \
    -x "-O StrictHostKeyChecking=no -O UserKnownHostsFile=/dev/null -O GlobalKnownHostsFile=/dev/null" \
    echo hi
    • 也可以加到.ssh/config
      1
      2
      3
      4
      5
      cat >>~/.ssh/config <<EOF
      StrictHostKeyChecking=no
      UserKnownHostsFile=/dev/null
      GlobalKnownHostsFile=/dev/null
      EOF
  • host文件格式
    1
    2
    3
    4
    5
    # 可以有空行,#开头的是注释行
    # 每行一个主机,格式: [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
posted @ 2022-08-11 19:46  rebeca8  阅读(87)  评论(0编辑  收藏  举报