概述
前面已经介绍了怎么用脚本实现了对一些服务器的远程控制和文件传输, 那么有没工具可以类似功能呢?
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
来源: http://developer.51cto.com/art/201910/605004.htm