概述
前面已经介绍了怎么用脚本实现了对一些服务器的远程控制和文件传输,那么有没工具可以类似功能呢?
1、PSSH简介
PSSH提供OpenSSH和相关工具的并行版本。包括pssh,pscp,prsync,pnuke和pslurp。该项目包括psshlib,可以在自定义应用程序中使用。
pssh是python写的可以并发在多台机器上批量执行命令的工具,它的用法可以媲美ansible的一些简单用法,执行起来速度比ansible快它支持文件并行复制,远程命令执行,杀掉远程主机上的进程等等。杀手锏是文件并行复制,,当进行再远程主机批量上传下载的时候,最好使用它。
项目地址: https://code.google.com/archive/p/parallel-ssh/
2、安装PSSH
前提条件:注意需要安装 python 2.4 或以上版本
- ==========yum安装==========
- yum install pssh
- ==========源码安装==========
- wget http://parallel-ssh.googlecode.com/files/pssh-2.3.1.tar.gz
- tar -xvf pssh-2.3.1.tar.gz
- cd pssh-2.3.1/
- python setup.py build && python setup.py install
3、pssh语法
- pssh [OPTIONS] command […]
选项:
- –version:查看版本
- -h:主机文件列表,内容格式”[user@]host[:port]”
- -H:主机字符串,内容格式”[user@]host[:port]”
- -l:登录使用的用户名
- -p:并发的线程数【可选】
- -o:输出的文件目录【可选】
- -e:错误输入文件【可选】
- -t:TIMEOUT 超时时间设置,0无限制【可选】
- -O:SSH的选项
- -v:详细模式
- -A:手动输入密码模式
- -x:额外的命令行参数使用空白符号,引号,反斜线处理
- -X:额外的命令行参数,单个参数模式,同-x
- -i:每个服务器内部处理信息输出
- -P:打印出服务器返回信息
常用选项:-H 、-h 、-i、
4、常见用法
使用yum安装后,只能使用pssh,但是编译安装后会包括其他命令也安装了(pscp prsync pnuke pslurp)
pssh:在远程多台主机上并行运行命令
- Example: pssh -h host.txt -A date
pscp :把文件并行复制到多台远程主机上
- Example: pscp -h hosts.txt -l irb2 foo.txt /home/irb2/foo.txt
prsync:使用rsync协议本地文件同步到远程多台主机上。
- Example: prsync -r -h hosts.txt -l irb2 foo /home/irb2/foo
pnuke:在远程多台主机上并行killall某一进程
- Example: pnuke -h hosts.txt -l irb2 java
pslurp:把文件从远程多台主机上复制到本地主机上
- Example: pslurp -h hosts.txt -L /tmp/outdir -l irb2
- /home/irb2/foo.txt foo.txt