[root@server11 ~]# vim lvscheck.sh
[root@server11 ~]# cat lvscheck.sh
#!/bin/bash
VIP=172.25.0.100
PORT=80
RS=(172.25.0.12 172.25.0.13)
LOG=checklvs.log
addrs() {
ipvsadm -a -t $VIP:$PORT -r $1:$PORT -g
echo "add $1 to ipvs" >> $LOG
}
delrs() {
ipvsadm -d -t $VIP:$PORT -r $1
echo "del $1 to ipvs" >> $LOG
}
checkrs() {
for i in ${RS[*]}
do
num=`curl -I -s -o /dev/null -w %{http_code} http://$i`
if [ $num -eq 200 -a $(ipvsadm -ln|grep $i|wc -l) -eq 0 ];then
addrs $i
elif [ $num -ne 200 -a $(ipvsadm -ln|grep $i|wc -l) -ne 0 ];then
delrs $i
fi
done
}
while true
do
checkrs
sleep 5
done
也可以利用crontab实现自动的检测:
crontab -e 编辑
crontab -l 查看定时任务
crontab -r 删除定时任务
service crond restart ##不进行重启,一般任务会在脚本写完后2分钟执行,而重启服务会直接将脚本执行。