高防服务器-高防cdn防御-游戏服务器-香港服务器租用-五九盾云安全

安全守护
安全守护
无限抗服务(防御不设限,防不住退款)
重大活动安全保障
客户经理+抗D专家1V1服务
汇聚前沿技术多种模式清洗安全有兜底
完善的产品线和服务,助你安全合规上云
首页

怎么批量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 指定密码