需求:监控server服务器的vip状态,如果vip存在,则判断容器是否启动,如果没有启动,则启动容器。如果vip不存在则关闭容器。
方法一:
查看代码
#!/bin/bash
ip add | grep eth0 > /data/keepalived
cat /data/keepalived | grep ${yunguan_svc_vip.ip} &> /dev/null
if [ $? -eq 0 ]; then
docker ps -a | grep beat | grep Up &> /dev/null
if [ $? -ne 0 ]; then
docker restart beat &> /dev/null
else
echo "beat is running" &> /dev/null
fi
else
docker stop beat &> /dev/null
fi
方法二:
查看代码
#!/bin/bash
vip=`ip a|grep ${yunguan_svc_vip.ip}|awk -F "/" '{print\$1}'|awk '{print\$2}'`
VALUE=`docker ps|grep beat`
if [ ! -z "$vip" ]; then
if [ -z "$VALUE" ];
then
docker start beat && sleep 10
fi
else
docker stop beat
fi
验证:
在svc1机器上测试;
1、keepalived启动状态,vip存在,停止beat容器,执行脚本。
结果:beat容器重新启动。
2、keepalived关闭状态,启动beat容器,执行脚本。
结果:beat容器停止。
加入计划任务:
####将keepalived.sh脚本放到/data/目录
####每小时执行一次脚本
echo "0 * * * * sh /data/keepalived.sh" >> /var/spool/cron/root
手机扫一扫
移动阅读更方便
你可能感兴趣的文章