Linux多台主机批量命令脚本
一、准备工作
1、机器准备
192.168.255.180 此台是信任机器
192.168.255.150 这些都是批量操作机器
.....
2、免密ssh登录
vim /etc/hosts 192.168.255.150 node1 ... ssh-keygen #3个回车 生成密钥 ssh-copy-id -i .ssh/id_rsa.pub root@192.168.255.150 #复制密钥 ssh root@192.168.255.200 #测试免密结果
二、脚本测试
1、准备ip列表

2、脚本编写
vim test.sh #!/bin/sh cmdexec() { hosts=`sed -n '/^[^#]/p' macs` #macs是ip列表 for host in $hosts do echo "" echo HOST $host ssh -i /root/testpair.pem root@$host "$@" #这里是ssh注意用户名 done return 0 } if [ $# -lt 1 ] then echo "$0 cmd" exit fi cmdexec "$@" echo "return from cmdexec"
备注:这个脚本的大概意思就是函数for循环调用ip列表里的ip,然后if判断是否连接所有的ip,直到$#小于1为止,代表连接所有
3、测试脚本
chmod +x test.sh #加执行权限
./test.sh "写你需要执行的命令即可"



浙公网安备 33010602011771号