博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Linux批量远程执行命令管理pssh
阅读量:6167 次
发布时间:2019-06-21

本文共 3083 字,大约阅读时间需要 10 分钟。

hot3.png

pssh是一个简单的字符界面并发向多个服务器发送指令进行执行的工具。适合一次性向集群大量服务器发送相同指令(并观察输出)

使用前提

    主机连接远程主机可以通过ssh密钥无密码连接 可参见

1.下载

下载页面:

wget https://storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/parallel-ssh/pssh-2.3.1.tar.gz

wget https://storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/parallel-ssh/pssh-2.3.1.tar.gz

2.安装

tar -zxvf pssh-2.3.1.tar.gzcd pssh-2.3.1python setup.py buildpython setup.py install

如果是 redhat (或者CentOS)也可以用yum安装

yum install -y pssh

3.使用

    3.1 介绍pssh参数

       -h 执行命令的远程主机列表  或者 -H user@ip:port  文件内容格式[user@]host[:port]

       -l 远程机器的用户名

       -p 一次最大允许多少连接

       -o 输出内容重定向到一个文件

       -e 执行错误重定向到一个文件

       -t 设置命令执行的超时时间

       -A 提示输入密码并且把密码传递给ssh

       -O 设置ssh参数的具体配置,参照ssh_config配置文件

       -x 传递多个SSH 命令,多个命令用空格分开,用引号括起来

       -X 同-x 但是一次只能传递一个命令

       -i 显示标准输出和标准错误在每台host执行完毕后

       -I 读取每个输入命令,并传递给ssh进程 允许命令脚本传送到标准输入

完整说明见命令:pssh --help

Usage: pssh [OPTIONS] command [...]

Options:
  --version             show program's version number and exit
  --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 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

     3.2 介绍软件包内其他命令

pssh 包安装 5 个实用程序:

    pssh 在多个主机上并行地运行命令。
    pscp 把文件并行地复制到多个主机上。
    prsync 通过 rsync 协议把文件高效地并行复制到多个主机上。
    pslurp 把文件并行地从多个远程主机复制到中心主机上。
    pnuke 并行地在多个远程主机上杀死进程。

4.操作实例

   4.1 服务器IP配置 文件resin.coupons-web.hosts内容如下:

10.10.12.3710.10.12.38

   4.2 pssh远程执行命令:whoami   如下:

[reader@test  hosts]$ pssh -h resin.coupons-web.hosts  -P  'whoami'10.10.12.37: reader[1] 16:00:09 [SUCCESS] 10.10.12.3710.10.12.38: reader[2] 16:00:09 [SUCCESS] 10.10.12.38

       4.2.1 远程执行命令:whoami   并指定远程登录用户root  :

 pssh -l root -h resin.coupons-web.hosts  -P  'whoami'

   4.3 pscp 把文件并行地复制到多个主机上

    将本机readme.txt 上传到 多个主机上 /tmp/

[reader@test  hosts]$ pscp -h resin.coupons-web.hosts readme.txt /tmp/[1] 16:03:20 [SUCCESS] 10.10.12.37[2] 16:03:20 [SUCCESS] 10.10.12.38

   4.4 将文件从远程主机复制到本地,和pscp方向相反:

    将远程主机文件/tmp/readme.txt 复制到本地主目录 ~/下文件 readme.txt

     -L  指定本机目录 

    执行完成后文件会存放到本机主目录下对应IP地址的目录中 如:

~/10.10.12.37/readme.txt

~/10.10.12.38/readme.txt

[reader@test hosts]$ pslurp -h resin.coupons-web.hosts  -L ~/  /tmp/readme.txt  readme.txt [1] 16:17:39 [SUCCESS] 10.10.12.37[2] 16:17:39 [SUCCESS] 10.10.12.38

参考文献:

转载于:https://my.oschina.net/lemonzone2010/blog/614192

你可能感兴趣的文章
linux centeros 7.4 修改主机名
查看>>
关于程序员,你知道的有多少?
查看>>
Tomcat问题汇总
查看>>
由于未预料的错误,现在无法使用nautilus
查看>>
业界最有价值的Linux资料大全(200篇)
查看>>
Arraylist动态扩容详解
查看>>
%cd%及%~dp0批处理命令的详解
查看>>
MySQL数据库负载很高连接数很多怎么处理
查看>>
关于延迟加载(lazy)和强制加载(Hibernate.initialize(Object proxy) )
查看>>
Cent OS 环境下 samba服务器的搭建
查看>>
vCloud Director 1.5.1 Install Procedure
查看>>
hive 中的多列进行group by查询方法
查看>>
Cisco统一通信---视频部分
查看>>
nginx编译及参数详解
查看>>
VMware下PM魔术分区使用教程
查看>>
nslookup错误
查看>>
我的友情链接
查看>>
Supported plattforms
查看>>
做自己喜欢的事情
查看>>
CRM安装(二)
查看>>