五九盾
首页 / 新闻公告
业内
怎么批量ssh登录并执行命令
2021-11-18 09:50:05

维护集群时,常常需要在大量服务器上执行相同的命令,虽然可以自己写循环执行脚本,但是不仅麻烦而且执行效率不高。此时我们通常会使用pssh工具来并发执行SSH指令。

- 控制机以centos7系统为例

- 安装 pssh和 sshpass

`yum -y install pssh`

`yum -y install sshpass`

 

 

- 批量获取机器名:

`sshpass -p 'password' pssh -O StrictHostKeyChecking=no -h ip.txt -l root -A -i "hostname"`

 

- 批量重启:

`sshpass -p 'password' pssh -O StrictHostKeyChecking=no -h ip.txt -l root -A -i "reboot"`

`password` 是root密码

 

ip.txt 内容格式如下:

172.18.0.11

172.18.0.12:2222

172.18.0.13:3333

如果SSH默认22端口可以不用加端口。如果SSH端口不同,可在ip后面加上端口号。

成功返回 **SUCCESS**

失败返回 **FAILURE**

 

 

pssh 常用参数

-h 主机名列表文件

-l 登陆用户名,例如 -l root

-A 提供统一的登陆密码

-i 交互模式,远程服务器的命令执行结果会输出

-O ssh参数

 

- sshpass  常用参数

-f 指定密码文件

-p 指定密码