监控端口是否开放,端口未开放关闭虚拟ip,端口开放启动虚拟IP
#!/bin/bash
#该脚本监控本机的一个端口,当端口异常时,停止lvs的本地ip直到恢复。该脚本依托于lvs.sh启动脚本
#目前只支持监控1个vip
#定义常用变量
#配置检查的ip以及端口
check_ip=127.0.0.1
port=8081
vip=10.0.0.52
#脚本目录
path=/web/lvs52.sh
#判断文件是否存在,不存在则退出
if [ ! -e $path ];then
echo "$path is not exist"
exit
fi
#检查nc命令是否存在,不存在提示退出
which nc >& /dev/null
if [ $? != 0 ];
then
echo "on nc command"
exit
fi
#判断虚拟ip状态,运行中返回0,停止返回1,其它返回2
vip_status(){
path=$1
#检查vip运行状态,通过lvs.sh脚本反馈结果判断
state=`/bin/bash $path status`
if [[ $state == 'LVS-DR Running.' ]];
then
echo "$vip is ok"
return 0
elif [[ $state == 'LVS-DR real server Stopped.' ]]
then
echo "$vip is stop"
return 1
else
echo "It is error"
return 2
fi
}
#检查ip、端口是否可达, 可达返回0,不可返回1
port_check(){
ip=$1
port=$2
`nc -v -z $ip $port >& /dev/null`
if [[ $? = "0" ]];then
echo "$ip的$port可以连通"
return 0
else
echo "$ip的$port未开放,error"
return 1
fi
}
#检查端口,如端口正常检查vip,端口异常,停止vip
while true;
do
port_check $check_ip $port
if [[ $? = "0" ]];then
vip_status $path
if [[ $? != 0 ]];then
/bin/sh $path start
fi
else
vip_status $path
if [[ $? == 0 ]];then
`/bin/bash $path stop`
fi
fi
sleep 3
done
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· 百万级群聊的设计实践
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
· 永远不要相信用户的输入:从 SQL 注入攻防看输入验证的重要性