pssh
比ansible更轻量级,能实现批量管理多台机器。都是python的pssh包提供的命令,用法也大同小异,学习起来也很容易。可以通过pip install pssh来安装这个python包。
资料
安装
yum install -y pssh
# 或 暂未测试
pip3 install pssh
使用yum安装后,也会通过的安装上 pscp.pssh、prsync工具。
pssh命令
pssh 是一个可以并行的在多个ip上执行ssh命令的程序, 主要用来在多台服务器上执行同样的命令
常用参数
-h host_file 从host_file指定的文件中读取需要连接的ip信息。(常用)
-H host 从命令行读取登录主机信息 (常用)
-l user 登录用户名
-p 一次并行执行的机器个数 (常用)
-t 连接机器的超时时间
-o 标准输出打印文件
-e 标准错误打印文件
-i 每个主机执行完毕后显示标准输出和标准错误,默认不会显示。(最常用)
例子1
打印ip_list.txt中每个占用8080端口的进程, 每次并发连接执行两个主机
pssh -h ip_list.txt -i -p 2 'fuser -n tcp 8080'
输出
[1] 13:58:14 [SUCCESS] 10.1.107.171
14696 14702 14703 14704 14711 14712 14714 14716 14717 14718Stderr: 8080/tcp:
[2] 13:58:16 [SUCCESS] 10.3.13.91
15072 15078 15079 15082 15085 15086 15087 15090 15094 20237Stderr: 8080/tcp:
[3] 13:58:16 [SUCCESS] 10.3.13.42
15204 15210 15211 15212 15215 15216 15221 15222 15223 15224Stderr: 8080/tcp:
[4] 13:58:18 [SUCCESS] 10.1.107.142
6935 6941 6942 6943 6946 6953 6954 6955 6956 6957Stderr: 8080/tcp:
例子2
pssh -i \
-H 10.172.48.8:22022 \
-H 10.172.48.9:22022 \
ls
# 或
pssh -i -h myhosts.txt "cd /home && ls"
pscp命令
pscp 命令是用来并行的将本地文件拷贝到多台服务器上的命令。参数和pssh命令基本一致
常用参数
这个命令常用参数基本和pssh一致,不同的是pssh命令中的-i参数此命令不支持,同时多了一个-r参数,用于递归拷贝文件夹
例子
将本地的hehe.txt文件拷贝到ip_list.txt中的所有机器上面的/data/hehe.txt位置
pscp -h ip_list.txt -p 2 hehe.txt /data/hehe.txt
输出
[1] 14:04:41 [SUCCESS] 10.1.107.171
[2] 14:04:41 [SUCCESS] 10.3.13.91
[3] 14:04:41 [SUCCESS] 10.1.107.142
[4] 14:04:41 [SUCCESS] 10.3.13.42
结语
除了pssh和pscp外,pssh包还提供了prsync命令使用rsync协议来并行将本地文件同步到不通主机,plcurl用来将不通服务器上的文件同步到本地等等。只要知道这些命令,具体用法可以在使用man查询。