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 @ 2022-05-13 17:10  随大刘  阅读(754)  评论(0)    收藏  举报
// 1.生成目录索引列表