批量执行工具PSSH详解
批量执行工具PSSH详解
pssh是一个python编写可以在多台服务器上执行命令的工具,同时支持拷贝文件,是同类工具中很出色的,使用必须在各个服务器上配置好密钥认证访问。
安装pssh包
yum 安装:
yum install pssh -y
编译安装:
# 安装setuptools包,如果安装了跳过
wget http://pypi.python.org/packages/source/s/setuptools/setuptools-0.6c11.tar.gz --no-check-certificate
tar -xf setuptools-0.6c11.tar.gz
cd setuptools-0.6c11
python setup.py build
python setup.py install
# 安装pssh
cd -
wget http://www.theether.org/pssh/pssh-1.4.3.tar.gz
cd pssh-1.4.3/
python setup.py install
pssh包的命令介绍
- pssh 在多个主机上并行运行命令
- pscp 把文件并行复制到多个主机上
- prsync 通过rsync协议把文件高效并行复制到多个主机上
- pslurp 把文件并行地从多个远程主机复制到中心主机上
- pnuke 并行地在多个远程主机上杀死进程
pssh 命令
pssh: 查询远程主机的信息
pssh
Usage: pssh [OPTIONS] -h hosts.txt prog [arg0] ..
-h --hosts 主机文件列表,格式"host[:port] [user]"
-l --user 用户名
-p --par 并发线程数
-o --outdir 输出的文件目录
-e --errdir 错误输出的文件目录
-t --timeout 设置命令执行超时时间 -1表示无限制
-O --options 设置ssh的一些选项
-v --verbose 详细模式
-P --print 打印出输出执行信息
-i --inline 在每台host执行完毕后,显示出输出信息
Example: pssh -h nodes.txt -l irb2 -o /tmp/pssh uptime
[root@localhost ~]# cat /etc/pssh_hosts
web1.jiajie.com
web2.jiajie.com
web3.jiajie.com
“-O”参数,后面跟
的“StrictHostKeyChecking=no”是sshd服务的配置文件ssh_config
中的一个选项,通过设置这个参数,可以让远程主机自动接受
本地主机的hostkey。第一次执行必须指定,不然报错。
[root@localhost ~]# pssh -i -O "StrictHostKeyChecking=no" -h /etc/pssh_hosts 'date'
[1] 09:56:38 [SUCCESS] web1.jiajie.com 22
2017年 10月 17日 星期二 09:56:38 CST
[2] 09:56:38 [SUCCESS] web2.jiajie.com 22
2017年 10月 17日 星期二 09:56:38 CST
[3] 09:56:38 [SUCCESS] web3.jiajie.com 22
2017年 10月 17日 星期二 09:56:37 CST
[root@localhost ~]# pssh -i -h /etc/pssh_hosts 'uptime'
[1] 09:59:50 [SUCCESS] web1.jiajie.com 22
09:59:50 up 1:20, 1 user, load average: 0.06, 0.01, 0.00
[2] 09:59:50 [SUCCESS] web3.jiajie.com 22
09:59:49 up 1:20, 2 users, load average: 0.00, 0.01, 0.05
[3] 09:59:50 [SUCCESS] web2.jiajie.com 22
09:59:50 up 1:20, 1 user, load average: 0.06, 0.02, 0.00
[root@localhost ~]# pssh -i -h /etc/pssh_hosts "tar -zxvf pssh-1.4.3.tar.gz"
[root@localhost ~]# pssh -i -h /etc/pssh_hosts "rpm -qa httpd|wc -l"
[1] 10:20:18 [SUCCESS] web2.jiajie.com 22
0
[2] 10:20:19 [SUCCESS] web1.jiajie.com 22
0
[3] 10:20:19 [SUCCESS] web3.jiajie.com 22
0
pscp 命令
pscp: 把文件或者目录并行的复制到多个主机上面
Usage: pscp [OPTIONS] -h hosts.txt local remote
-r 递归复制目录
-h 主机文件列表,格式"host[:port] [user]"
-l 用户名
-p --par 并发线程数
-o --outdir 输出的文件目录
-e --errdir 错误输出的文件目录
-t --timeout 设置命令执行超时时间 -1表示无限制
-O --options 设置ssh的一些选项
-v --verbose 详细模式
Example: pscp -h hosts.txt -l irb2 foo.txt /home/irb2/foo.txt
[root@localhost ~]# pscp -h /etc/pssh_hosts /etc/hosts /tmp/
[1] 10:29:11 [SUCCESS] web2.jiajie.com 22
[2] 10:29:11 [SUCCESS] web1.jiajie.com 22
[3] 10:29:11 [SUCCESS] web3.jiajie.com 22
[root@localhost ~]# pssh -i -h /etc/pssh_hosts "ls -l /tmp/hosts"
[1] 10:29:57 [SUCCESS] web1.jiajie.com 22
-rw-r--r-- 1 root root 202 10月 17 10:29 /tmp/hosts
[2] 10:29:57 [SUCCESS] web2.jiajie.com 22
-rw-r--r-- 1 root root 202 10月 17 10:29 /tmp/hosts
[3] 10:29:57 [SUCCESS] web3.jiajie.com 22
-rw-r--r-- 1 root root 202 10月 17 10:29 /tmp/hosts
[root@localhost ~]# pscp -r -h /etc/pssh_hosts /root/shell.sh/ /tmp/
[1] 10:33:18 [SUCCESS] web1.jiajie.com 22
[2] 10:33:18 [SUCCESS] web2.jiajie.com 22
[3] 10:33:18 [SUCCESS] web3.jiajie.com 22
pslurp 命令(从远程主机复制到本地。)
Usage: pslurp [OPTIONS] -h hosts.txt -o outdir remote local
-r --recursive recusively copy directories (OPTIONAL)
-L --localdir output directory for remote file copies
-h --hosts hosts file (each line "host[:port] [login]")
-l --user username (OPTIONAL)
-p --par max number of parallel threads (OPTIONAL)
-o --outdir output directory for stdout files (OPTIONAL)
-e --errdir output directory for stderr files (OPTIONAL)
-t --timeout timeout (secs) (-1 = no timeout) per host (OPTIONAL)
-v --verbose turn on warning and diagnostic messages (OPTIONAL)
-O --options SSH options (OPTIONAL)
Example: pslurp -h hosts.txt -L /tmp/outdir -l irb2 \
/home/irb2/foo.txt foo.txt
-L:指定从远程主机拷贝文件放置的目录,拷贝/root/expect.sh文件,并将其重命名为test1.
如果拷贝目录需要使用-r参数:
[root@localhost ~]# pslurp -h /etc/pssh_hosts -L /tmp/ /root/expect.sh test1
[1] 10:44:55 [FAILURE] web1.jiajie.com 22 Received error code of 1
[2] 10:44:56 [FAILURE] web3.jiajie.com 22 Received error code of 1
[3] 10:44:56 [SUCCESS] web2.jiajie.com 22
[root@localhost ~]# ll /tmp/web2.jiajie.com/
总用量 4
-rw-r--r-- 1 root root 139 10月 17 10:44 test1
[root@localhost ~]# pslurp -r -h /etc/pssh_hosts -L /tmp/ /root/shell.sh test2
prsync 命令:
Usage: prsync [OPTIONS] -h hosts.txt local remote
-r --recursive recusively copy directories (OPTIONAL)
-a --archive use rsync -a (archive mode) (OPTIONAL)
-z --compress use rsync compression (OPTIONAL)
-h --hosts hosts file (each line "host[:port] [login]")
-l --user username (OPTIONAL)
-p --par max number of parallel threads (OPTIONAL)
-o --outdir output directory for stdout files (OPTIONAL)
-e --errdir output directory for stderr files (OPTIONAL)
-t --timeout timeout (secs) (-1 = no timeout) per host (OPTIONAL)
-v --verbose turn on warning and diagnostic messages (OPTIONAL)
-O --options SSH options (OPTIONAL)
Example: prsync -r -h hosts.txt -l irb2 foo /home/irb2/foo
prsync的主要作用是通过rsync协议将文件或目录从本地主
机同步到远程多个主机上。
[root@localhost ~]# prsync -h /etc/pssh_hosts -a -r /root/shell.sh /tmp
[1] 11:33:26 [SUCCESS] web3.jiajie.com 22
[2] 11:33:26 [SUCCESS] web1.jiajie.com 22
[3] 11:33:27 [SUCCESS] web2.jiajie.com 22
-r:递归复制。
-a:保持文件的属性不变
-z:压缩文件,一般不推荐。
pnuke 命令:
Usage: pnuke [OPTIONS] -h hosts.txt pattern
-h --hosts hosts file (each line "host[:port] [user]")
-l --user username (OPTIONAL)
-p --par max number of parallel threads (OPTIONAL)
-o --outdir output directory for stdout files (OPTIONAL)
-e --errdir output directory for stderr files (OPTIONAL)
-t --timeout timeout (secs) (-1 = no timeout) per host (OPTIONAL)
-v --verbose turn on warning and diagnostic messages (OPTIONAL)
-O --options SSH options (OPTIONAL)
Example: pnuke -h hosts.txt -l irb2 java
pnuke的主要作用是在远程多主机上并行杀掉某一进程,
相当于killall命令。可以直接使用pssh 来传递killall命令,这里就不做介绍了。
批量执行工具PSSH详解的更多相关文章
- 【Android 应用开发】Ubuntu 下 Android Studio 开发工具使用详解 (旧版本 | 仅作参考)
. 基本上可以导入项目开始使用了 ... . 作者 : 万境绝尘 转载请注明出处 : http://blog.csdn.net/shulianghan/article/details/21035637 ...
- 自动化运维工具——ansile详解
自动化运维工具——ansible详解(一) 目录 ansible 简介 ansible 是什么? ansible 特点 ansible 架构图 ansible 任务执行 ansible 任务执行模式 ...
- 【Android 应用开发】Ubuntu 下 Android Studio 开发工具使用详解
. 基本上可以导入项目开始使用了 ... . 作者 : 万境绝尘 转载请注明出处 : http://blog.csdn.net/shulianghan/article/details/21035637 ...
- Linux命令工具 top详解
Linux命令工具 top详解 top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器.top是一个动态显示过程,即可以通过用户按键来不 ...
- MySQL 执行计划explain详解
MySQL 执行计划explain详解 2015-08-10 13:56:27 分类: MySQL explain命令是查看查询优化器如何决定执行查询的主要方法.这个功能有局限性,并不总会说出真相,但 ...
- [转]网络性能评估工具Iperf详解(可测丢包率)
原文链接:安全运维之:网络性能评估工具Iperf详解:http://os.51cto.com/art/201410/454889.htm 参考博文:http://linoxide.com/monito ...
- IE8"开发人员工具"使用详解下(浏览器模式、文本模式、JavaScript调试、探查器)
来源: http://www.cnblogs.com/JustinYoung/archive/2009/04/03/kaifarenyuangongju2.html 在上一篇文章IE8“开发人员工具” ...
- Linux下批量管理工具pssh安装和使用
Linux下批量管理工具pssh安装和使用 pssh工具包 安装:yum -y install pssh pssh:在多个主机上并行地运行命令 pscp:把文件并行地复制到多个主机上 prsync:通 ...
- 轻量级批量管理工具pssh
pssh工具 pssh工具是个轻量级的批量管理工具,相比同类型的开源工具 Ansible,Saltstack,他比较轻量级,需要对管理的主机做秘钥认证 Ansible是可以做秘钥认证,也可以通过配置文 ...
随机推荐
- Oracle-14:PLSQL
------------吾亦无他,唯手熟尔,谦卑若愚,好学若饥------------- PL/SQL PL/SQL(Procedural Language):过程化sql语言! 在原本的sql语句之 ...
- python 小练习题做起来
1# 有两个磁盘文件A和B,各存放一行字母,要求把这两个文件中的信息合并# (按字母顺序排列), 输出到一个新文件C中.with open('a') as f1: a=f1.read()with op ...
- PoiDocxDemo【Android将表单数据生成Word文档的方案之二(基于Poi4.0.0),目前只能java生成】
版权声明:本文为HaiyuKing原创文章,转载请注明出处! 前言 这个是<PoiDemo[Android将表单数据生成Word文档的方案之二(基于Poi4.0.0)]>的扩展,上一篇是根 ...
- Python练习:关于递归的经典实例设计
(一)裴波拉契数列 利用递归算法获得裴波拉契数列前N个值的结果: #裴波拉契数列,通过递归计算 def fb(n): if n <=0: res = 0 elif n ==1: res = 1 ...
- 【开源】OSharpNS,轻量级.net core快速开发框架发布
OSharpNS简介 OSharp Framework with .NetStandard2.0(OSharpNS)是OSharp的以.NetStandard2.0为目标框架,在AspNetCore的 ...
- python接口自动化(十六)--参数关联接口后传(详解)
简介 大家对前边的自动化新建任务之后,接着对这个新建任务操作了解之后,希望带小伙伴进一步巩固胜利的果实,夯实基础.因此再在沙场实例演练一下博客园的相关接口.我们用自动化发随笔之后,要想接着对这篇随笔操 ...
- asp.net core系列 42 Web 应用 分部视图
一.分部视图 对于MVC 视图和 Razor Pages 页面,都有分部视图功能.通常将 MVC 视图和 Razor Pages 页面统称为“标记文件”,下面会常提到该名词.使用分部视图的优势包括:( ...
- Java8新特性之一:Lambda表达式
Java8是自java5之后最重大的一次更新,它给JAVA语言带来了很多新的特性(包括编译器.类库.工具类.JVM等),其中最重要的升级是它给我们带来了Lambda表达式和Stream API. 1. ...
- Spring boot打包war包
1.设置打包的类型(war/jar) 在pom.xml里设置 <packaging>war</packaging> 2.移除嵌入式tomcat插件 //在pom.xml里找到s ...
- [转]POJ1006: 中国剩余定理的完美演绎
Biorhythms Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 117973 Accepted: 37026 Des ...