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 "写你需要执行的命令即可"

 

 

 

posted @   随大刘  阅读(710)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
// 1.生成目录索引列表  
点击右上角即可分享
微信分享提示

目录导航