shell脚本执行linux主机批量检测登录状态以及批量执行命令

#!/bin/bash
INTO_PRINT(){
        echo -e  "\033[1;34m$(date "+%Y-%m-%d_%H:%M:%S") INFO:$1\033[0m"
}
ERR_PRINT(){
        echo -e  "\033[1;31m$(date "+%Y-%m-%d_%H:%M:%S") ERROR:$1\033[0m"

}

SUCCESS_PRINT(){
        echo -e  "\033[1;35m$(date "+%Y-%m-%d_%H:%M:%S") INFO:$1\033[0m"
}

#ip_list=` cat ./ceshi_ip_list.txt | awk '{print $1}'`
#该脚本的作用是进行批量登录或者批量执行命令

ip_list=(
192.168.1.174
192.168.1.195
192.168.1.156
192.168.1.30
192.168.1.161
192.168.1.64
192.168.1.66
)



if [ -z $1 ]
then
        echo "脚本没有参数传入,开始批量登录主机测试"
        for ip in ${ip_list[@]}
        do
                ssh-keygen -R $ip
                timeout 5  sshpass -p "root@123" ssh -o StrictHostKeyChecking=no root@${ip} "pwd"
                if [ $? -eq 0 ];then
                        SUCCESS_PRINT "$ip机器登录成功"
                else
                        ERR_PRINT  "$ip机器登录失败"
                fi
        done

else
        echo "脚本有参数传入:$1 执行该命令"
        for ip in ${ip_list[@]}
        do
                ssh-keygen -R $ip >>/dev/null 2>&1
                INTO_PRINT "-----------$ip 开始执行 $1 命令 ---------------\n"
                timeout 5  sshpass -p "root@123" ssh -o StrictHostKeyChecking=no root@${ip} "$1"
                INTO_PRINT  "-----------$ip 执行 $1 命令 结束 ---------------\n\n\n"
        done
fi

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值