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 "写你需要执行的命令即可"
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通