pssh是一个用于在多台主机上并行执行ssh的命令,方便多台Linux的管理。
-i 每台主机执行完后显示标准输出和标准错误
-H 指定远程地址,该地址可以同时给出多个,格式为[user@]host[:port],也可以和-f选项配合使用。
-h 指定主机列表文件,也就是说可以从文件中读取主机列表。
-t 指定超时时间,单位是秒,参数为0表示永不超时。
-o 将输出结果保存到指定的文件
-A 提示输入密码,这样做的目的是密码不会保存在命令历史记录里。
-l 指定ssh连接用户名-x 传递额外的ssh命令参数
-p 指定pssh命令的最大并发连接数
1、在两台主机上执行hostname命令,并打印其标准输出和标准错误。
[root@node_116 ~]# pssh -i -H "192.168.152.117 192.168.152.119" hostname
[1] 16:43:57 [SUCCESS] 192.168.152.117
node_117
[2] 16:43:57 [SUCCESS] 192.168.152.119
node_119
2、-o参数将执行结果保存到指定目录,目录下会以远程地址作为文件名保存其结果。
[root@node_116 src]# pssh -H "192.168.152.117 192.168.152.119" -o ./out hostname
[1] 16:47:07 [SUCCESS] 192.168.152.119
[2] 16:47:07 [SUCCESS] 192.168.152.117
[root@node_116 src]#
[root@node_116 src]# ls -R ./out
./out:
192.168.152.117 192.168.152.119
3、-h参数从文件中读取主机列表
[root@node_116 src]# cat address.txt
192.168.152.119
192.168.152.117
[root@node_116 src]# pssh -i -h address.txt hostname
[1] 16:52:19 [SUCCESS] 192.168.152.119
node_119
[2] 16:52:19 [SUCCESS] 192.168.152.117
node_117
4、-l参数指定ssh连接时的用户名,-A参数要求输入密码。
[root@node_116 src]# pssh -i -h address.txt -A -l linuxtime hostname
Warning: do not enter your password if anyone else has superuser
privileges or access to your account.
Password:
5、-x指定传递给ssh命令的额外参数
[root@node_116 src]# pssh -i -h address.txt -x "-o VisualHostKey=yes" hostname
6、-p参数限制pssh最大并发数
[root@node_116 src]# pssh -i -h address.txt -p 1 hostname
1、pssh命令收录在epel源里,配置好epel源后执行下面命令安装。
yum -y install pssh
2、如果要处理更复杂的任务推荐使用ansible。