实现LVS后端服务健康状态检查-创新互联
#!/bin/bash
目前成都创新互联公司已为近1000家的企业提供了网站建设、域名、网站空间、网站托管、服务器托管、企业网站设计、青岛网站维护等服务,公司将坚持客户导向、应用为本的策略,正道将秉承"和谐、参与、激情"的文化,与客户和合作伙伴齐心协力一起成长,共同发展。#
VIP=172.169.18.150
CPOPT=80 #集群端口
FALI_BACK=127.0.0.1 #备用
RS=("172.169.18.240" "172.169.18.232") #集群主机
declare -a RSSTATUS
#RSTATUS=("1" "1") #状态码
RW=("2" "1") #权重
RPORT=80 #RIP端口
TYPE=g
CHKLOOP=3 #检查次数
LOG=/var/log/ipvsadmlog.log
addrs() {
ipvsadm -a -t $VIP:$CPOPT -r $1:$RPORT -$TYPE -w $2
[ $? -eq 0 ] && return 0 || return 1
}
delrs() {
ipvsadm -d -t $VIP:$CPOPT -r $1:$RPORT
[ $? -eq 0 ] && return 0 || return 1
}
checkrs() {
local I=1
while [ $I -le $CHKLOOP ]; do
if curl --connect-timeout 1 http://$1 &> /dev/null; then
return 0
fi
let I++
done
return 1
}
inststatus() {
local I
local COUNT=0;
for I in ${RS[*]}; do
#if checkrs $I; then
if ipvsadm -L -n | grep "$I:$RPORT" && > /dev/null; then
RSSTATUS[$COUNT]=1
else
RSSTATUS[$COUNT]=0
fi
let COUNT++
done
}
inststatus
while :; do
let COUNT=0
for I in ${RS[*]}; do
if checkrs $I; then
if [ ${RSSTATUS[$COUNT]} -eq 0 ]; then
addrs $I ${RW[$COUNT]}
[ $? -eq 0 ] && RSSTATUS[$COUNT]=1 && echo "`date +'%F %H:%M:%S'`,$I is back." >> $LOG
fi
else
if [ ${RSSTATUS[$COUNT]} -eq 1 ]; then
delrs $I
[ $? -eq 0 ] && RSSTATUS[$COUNT]=0 && echo "`date +'%F %H:%M:%S'`,$I is gone." >> $LOG
fi
fi
let COUNT++
done
sleep 10
done
#检查测试服务
# bash -x ipvsadm.sh
另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。
文章名称:实现LVS后端服务健康状态检查-创新互联
转载来于:http://hbruida.cn/article/cssehi.html