#!/bin/bash
#2011-09-07 zhaoyun write
while [ 1 ]
do
NULL=/dev/null
status=`cat /etc/keepalived/keepalived.conf |grep state |awk '{print $2}'`
echo $status > .status
VIP=`cat /etc/keepalived/keepalived.conf |sed -n '15p' | awk -F/.* '{print $1}'`
INTERFACE=`cat /etc/keepalived/keepalived.conf |grep interface |awk '{print $2}'`
RUNTIME=3
TRUSTRUN=`nc -vv -z localhost 6443 2>$NULL ; echo $?`
LOADFILE=/ssl/bin/LoadBalance.config
FPAT=/ssl/bin/LoadBalance.config.bak
LOADFILEOK=`cat /etc/rc.local |grep /ssl/bin/LoadBalance.config >$NULL ; echo $?`
if [ $LOADFILEOK -eq 1 ] ; then
sed -i '/touch/a\cp -rf /ssl/bin/LoadBalance.config.bak /ssl/bin/LoadBalance.config' /etc/rc.local
fi
if [ $TRUSTRUN -eq 0 ] ; then
if [ -e $LOADFILE ] ; then
mv $LOADFILE $FPAT
ipvsadm -C
fi
time=`date +"%Y-%m-%d %H:%M:%S"`
status=`cat /etc/keepalived/keepalived.conf |grep state |awk '{print $2}'`
echo $status > .status
INTERFACE=`cat /etc/keepalived/keepalived.conf |grep interface |awk '{print $2}'`
NULL=/dev/null
LOG=/var/log/keepalived.log
BACKUP=`cat /ssl/bin/Vrrpd.config |grep PeerHost |awk -F'<PeerHost>' '{print $2}' |awk -F'</PeerHost>' '{print $1}'`
MASTER=`cat /ssl/bin/Vrrpd.config |grep PeerHost |awk -F'<PeerHost>' '{print $2}' |awk -F'</PeerHost>' '{print $1}'`
VIP=`cat /etc/keepalived/keepalived.conf |sed -n '15p' | awk -F/.* '{print $1}'`
STATA=`grep MASTER .status > $NULL ; echo $?`
STATB=`grep BACKUP .status > $NULL ; echo $?`
PID=`ps aux |grep "keepalived -D" | grep -v grep > $NULL ; echo $?`
touch .STA
A=`cat .STA`
PING="ping -c 3 -i 0.00000001 -w 1"
NC="nc -n -vv -z -w 1"
if [ $PID -eq 0 ] ; then
echo \ ; echo \ >>$LOG
echo $time keepalived - - - is - - - running @*****@>>$LOG
if [ $STATA -eq 0 ] ; then
IP=`ip add list |grep $VIP >$NULL ; echo $?`
SPORT=`nc -vv -z -w 1 localhost 443 2>$NULL ; echo $?`
if [ $IP -eq 0 ] && [ $SPORT -eq 0 ]; then
time=`date +"%Y-%m-%d %H:%M:%S"`
echo \ ; echo \ >>$LOG
echo $time vip - - - is - - - OK !@!@!@! >> $LOG
echo \ ; echo \ >>$LOG
echo $time status - - - is - - - MASTER >> $LOG
else
echo $INTERFACE |xargs ip addr add $VIP dev
echo \ ; echo \ >>$LOG
echo $time add $VIP for $INTERFACE to master ok ! >>$LOG
service keepalived restart
echo \ ; echo \ >>$LOG
echo $time Sending gratuitous ARPs on $INTERFACE for $VIP >>$LOG
sleep 3
date +%s >.timea
fi
STA=`$PING $BACKUP >$NULL ; echo $? `
echo $STA > .STA
if [ $STA -eq 0 ] ; then
echo \ ; echo \ >>$LOG
echo $time BACKUP - - - is - - - alive >> $LOG
if [ $SPORT -eq 1 ] ; then
echo $INTERFACE |xargs ip addr del $VIP dev
echo \ ; echo \ >>$LOG
echo $time remove $VIP for $INTERFACE in master ok ! >>$LOG
echo \ ; echo \ >>$LOG
echo $time ssl_port --- is --- closed >> $LOG
echo \ ; echo \ >>$LOG
fi
fi
if [ $A -gt 0 ] ; then
service keepalived restart >$NULL
echo \ ; echo \ >>$LOG
echo $time Sending gratuitous ARPs on $INTERFACE for $VIP >>$LOG
sleep 3
date +%s >.timea
fi
OLDTIME=`cat .timea`
NOWTIME=`date +%s`
RTIME=`echo "$NOWTIME-$OLDTIME" | bc`
RETIME=115
if [ $IP -eq 0 ] && [ $SPORT -eq 0 ]; then
if [ $RTIME -gt $RETIME ] ; then
service keepalived restart
echo \ ; echo \ >>$LOG
echo $time Sending gratuitous ARPs on $INTERFACE for $VIP >>$LOG
sleep 3
date +%s >.timea
fi
fi
fi
if [ $STATB -eq 0 ] ; then
ROUTEID=`grep 51 /etc/keepalived/keepalived.conf >/dev/null ; echo $?`
if [ $ROUTEID -eq 0 ] ; then
sed -i '5s/51/52/' /etc/keepalived/keepalived.conf
fi
STB=`$PING $MASTER > $NULL ; echo $? `
IP=`ip add list |grep $VIP >$NULL ; echo $?`
SSLPORT=`$NC $MASTER 443 2>$NULL ; echo $?`
if [ $STB -eq 0 ] && [ $SSLPORT -eq 0 ] ; then
time=`date +"%Y-%m-%d %H:%M:%S"`
echo \ ; echo \ >>$LOG
echo $time MASTER - - - is - - - alived >> $LOG
echo \ ; echo \ >>$LOG
echo $time status - - - is - - - BACKUP >> $LOG
echo 1 >.sta
if [ $IP -eq 0 ] ; then
IPSTAT=`ip addr list |grep $VIP | wc -l `
if [ $IPSTAT -eq 2 ] ; then
echo $INTERFACE |xargs ip addr del $VIP dev 2>>$NULL
echo \ ; echo \ >>$LOG
echo $time Remove $VIP for $INTERFACE in backup ok ! >>$LOG
fi
fi
else
ST=`cat .sta`
if [ $ST -eq 1 ] ; then
service keepalived restart
echo \ ; echo \ >>$LOG
echo $time Sending gratuitous ARPs on $INTERFACE for $VIP from backup 1 >>$LOG
echo 0 >.sta
fi
if [ $IP -eq 0 ] ; then
echo \ ; echo \ >>$LOG
echo $time master - - - is - - - shutdown >> $LOG
echo $time vip - - - is - - - ok >>$LOG
echo $time now -- status -- is -- MASTER >> $LOG
else
time=`date +"%Y-%m-%d %H:%M:%S"`
echo \ ; echo \ >>$LOG
echo $time "status is -------->>>>>>> MASTER" >>$LOG
echo $INTERFACE |xargs ip addr add $VIP dev
echo $time Add $VIP for $INTERFACE to backup ok 1 ! ! >>$LOG
service keepalived restart >$NULL
echo \ ; echo \ >>$LOG
echo $time Sending gratuitous ARPs on $INTERFACE for $VIP from backup 2 >>$LOG
echo 0 >.sta
sleep 10
fi
fi
fi
else
time=`date +"%Y-%m-%d %H:%M:%S"`
IP=`ip add list |grep $VIP >$NULL ; echo $?`
if [ $IP -eq 0 ] ; then
LINE=`wc -l $FPAT |awk '{print $1}'`
if [ $LINE -gt 3 ] ; then
echo \ ; echo \ >>$LOG
echo $time Load balance - is - running 1 >$NULL
echo $time keepalived - - - not - - - running 1 >>$LOG
else
echo \ ; echo \ >>$LOG
echo $INTERFACE |xargs ip addr del $VIP dev 2> $NULL
echo $time keepalived - - - not - - - running 2 >>$LOG
fi
else
echo $INTERFACE |xargs ip addr del $VIP dev 2> $NULL
echo \ ; echo \ >>$LOG
echo $time keepalived - - - not - - - running 3 >>$LOG
fi
fi
LINE=`wc -l $FPAT |awk '{print $1}'`
if [ $LINE -gt 3 ] ; then
time=`date +"%Y-%m-%d %H:%M:%S"`
echo \ ; echo \ >>$LOG
echo $time Load balance - - - is - - - running @*****@ >>$LOG
if [ $STATA -eq 0 ] ; then
if [ $PID -eq 0 ] ; then
echo keepalived running >$NULL
else
IP=`ip add list |grep $VIP >$NULL ; echo $?`
if [ $IP -eq 0 ] ; then
echo vip is ok >$NULL
else
echo $INTERFACE |xargs ip addr add $VIP dev 2> $NULL
fi
fi
PIDLINE=`ipvsadm -L -n | wc -l`
OUTPUTIP1=`cat $FPAT | sed -n '6p' | awk -F'<Addr_Out>' '{print $2}' |awk -F'</Addr_Out>' '{print $1}'`
INPUTIP1=`cat $FPAT |sed -n '9p' | awk -F'<Addr_In>' '{print $2}' |awk -F'</Addr_In>' '{print $1}'`
OUTPUTIP2=`cat $FPAT | sed -n '15p' | awk -F '<Addr_Out>' '{print $2}' |awk -F'</Addr_Out>' '{print $1}'`
INPUTIP2=`cat $FPAT | sed -n '18p' | awk -F'<Addr_In>' '{print $2}' |awk -F'</Addr_In>' '{print $1}'`
OUTPUTPORT1=`cat $FPAT | sed -n '7p' |awk -F'<Port_Out_Uni>' '{print $2}'|awk -F'</Port_Out_Uni>' '{print $1}'`
OUTPUTPORT2=`cat $FPAT | sed -n '8p' |awk -F'<Port_Out_Bi>' '{print $2}'|awk -F'</Port_Out_Bi>' '{print $1}'`
OUTVIP=`cat /etc/keepalived/keepalived.conf |sed -n '15p' | awk -F/.* '{print $1}'`
INVIP=192.168.0.99
INFACE=eth3
LINE=`wc -l $FPAT |awk '{print $1}'`
LINEB=`wc -l $FPAT |awk '{print $1}'`
if [ $LINEB -gt 22 ] ; then
OUTPUTIP3=`cat $FPAT |sed -n '24p'| awk -F '<Addr_Out>' '{print $2}' |awk -F'</Addr_Out>' '{print $1}'`
INPUTIP3=`cat $FPAT |sed -n '27p'| awk -F'<Addr_In>' '{print $2}' |awk -F'</Addr_In>' '{print $1}'`
if [ $PIDLINE -eq 3 ] ; then
echo \ ; echo \ >>$LOG
echo $time ipvsadm - not - set - ok ! >>$LOG
if [ "$OUTPUTIP1" == "$INPUTIP1" ] ; then
ipvsadm -C
ipvsadm -A -t $OUTVIP:$OUTPUTPORT1 -s wlc -p 900
ipvsadm -a -t $OUTVIP:$OUTPUTPORT1 -r $OUTPUTIP1:$OUTPUTPORT1 -g
ipvsadm -a -t $OUTVIP:$OUTPUTPORT1 -r $OUTPUTIP2:$OUTPUTPORT1 -g
ipvsadm -a -t $OUTVIP:$OUTPUTPORT1 -r $OUTPUTIP3:$OUTPUTPORT1 -g
ipvsadm -A -t $OUTVIP:$OUTPUTPORT2 -s wlc -p 900
ipvsadm -a -t $OUTVIP:$OUTPUTPORT2 -r $OUTPUTIP1:$OUTPUTPORT2 -g
ipvsadm -a -t $OUTVIP:$OUTPUTPORT2 -r $OUTPUTIP2:$OUTPUTPORT2 -g
ipvsadm -a -t $OUTVIP:$OUTPUTPORT2 -r $OUTPUTIP3:$OUTPUTPORT2 -g
echo \ ; echo \ >>$LOG
echo $time set - - - ipvsadm - - - ok >> $LOG
else
ipvsadm -C
ipvsadm -A -t $OUTVIP:$OUTPUTPORT1 -s wlc -p 900
ipvsadm -a -t $OUTVIP:$OUTPUTPORT1 -r $OUTPUTIP1:$OUTPUTPORT1 -g
ipvsadm -a -t $OUTVIP:$OUTPUTPORT1 -r $OUTPUTIP2:$OUTPUTPORT1 -g
ipvsadm -a -t $OUTVIP:$OUTPUTPORT1 -r $OUTPUTIP3:$OUTPUTPORT1 -g
ipvsadm -A -t $OUTVIP:$OUTPUTPORT2 -s wlc -p 900
ipvsadm -a -t $OUTVIP:$OUTPUTPORT2 -r $OUTPUTIP1:$OUTPUTPORT2 -g
ipvsadm -a -t $OUTVIP:$OUTPUTPORT2 -r $OUTPUTIP2:$OUTPUTPORT2 -g
ipvsadm -a -t $OUTVIP:$OUTPUTPORT2 -r $OUTPUTIP3:$OUTPUTPORT2 -g
ipvsadm -A -t $INVIP:$OUTPUTPORT1 -s wlc -p 900
ipvsadm -a -t $INVIP:$OUTPUTPORT1 -r $INPUTIP1:$OUTPUTPORT1 -g
ipvsadm -a -t $INVIP:$OUTPUTPORT1 -r $INPUTIP2:$OUTPUTPORT1 -g
ipvsadm -a -t $INVIP:$OUTPUTPORT1 -r $INPUTIP3:$OUTPUTPORT1 -g
ipvsadm -A -t $INVIP:$OUTPUTPORT2 -s wlc -p 900
ipvsadm -a -t $INVIP:$OUTPUTPORT2 -r $INPUTIP1:$OUTPUTPORT2 -g
ipvsadm -a -t $INVIP:$OUTPUTPORT2 -r $INPUTIP2:$OUTPUTPORT2 -g
ipvsadm -a -t $INVIP:$OUTPUTPORT2 -r $INPUTIP3:$OUTPUTPORT2 -g
echo \ ; echo \ >>$LOG
echo $time set - - - ipvsadm - - - ok >> $LOG
fi
else
echo $time ipvsadm - - - is - - - alived >> $LOG
fi
else
if [ $PIDLINE -eq 3 ] ; then
echo \ ; echo \ >>$LOG
echo $time ipvsadm - not - set - ok ! >>$LOG
if [ "$OUTPUTIP1" == "$INPUTIP1" ] ; then
ipvsadm -C
ipvsadm -A -t $OUTVIP:$OUTPUTPORT1 -s wlc -p 900
ipvsadm -a -t $OUTVIP:$OUTPUTPORT1 -r $OUTPUTIP1:$OUTPUTPORT1 -g
ipvsadm -a -t $OUTVIP:$OUTPUTPORT1 -r $OUTPUTIP2:$OUTPUTPORT1 -g
ipvsadm -A -t $OUTVIP:$OUTPUTPORT2 -s wlc -p 900
ipvsadm -a -t $OUTVIP:$OUTPUTPORT2 -r $OUTPUTIP1:$OUTPUTPORT2 -g
ipvsadm -a -t $OUTVIP:$OUTPUTPORT2 -r $OUTPUTIP2:$OUTPUTPORT2 -g
echo \ ; echo \ >>$LOG
echo $time set - - - ipvsadm - - - ok >> $LOG
else
time=`date +"%Y-%m-%d %H:%M:%S"`
ipvsadm -C
ipvsadm -A -t $OUTVIP:$OUTPUTPORT1 -s wlc -p 900
ipvsadm -a -t $OUTVIP:$OUTPUTPORT1 -r $OUTPUTIP1:$OUTPUTPORT1 -g
ipvsadm -a -t $OUTVIP:$OUTPUTPORT1 -r $OUTPUTIP2:$OUTPUTPORT1 -g
ipvsadm -A -t $OUTVIP:$OUTPUTPORT2 -s wlc -p 900
ipvsadm -a -t $OUTVIP:$OUTPUTPORT2 -r $OUTPUTIP1:$OUTPUTPORT2 -g
ipvsadm -a -t $OUTVIP:$OUTPUTPORT2 -r $OUTPUTIP2:$OUTPUTPORT2 -g
ipvsadm -A -t $INVIP:$OUTPUTPORT1 -s wlc -p 900
ipvsadm -a -t $INVIP:$OUTPUTPORT1 -r $INPUTIP1:$OUTPUTPORT1 -g
ipvsadm -a -t $INVIP:$OUTPUTPORT1 -r $INPUTIP2:$OUTPUTPORT1 -g
ipvsadm -A -t $INVIP:$OUTPUTPORT2 -s wlc -p 900
ipvsadm -a -t $INVIP:$OUTPUTPORT2 -r $INPUTIP1:$OUTPUTPORT2 -g
ipvsadm -a -t $INVIP:$OUTPUTPORT2 -r $INPUTIP2:$OUTPUTPORT2 -g
echo \ ; echo \ >>$LOG
echo $time set - - - ipvsadm - - - ok >> $LOG
fi
else
echo \ ; echo \ >>$LOG
echo $time ipvsadm - - - is - - - alived >> $LOG
fi
if [ $LINE -gt 3 ] ; then
STD=`$PING $OUTPUTIP1 >$NULL ; echo $?`
STE=`$PING $OUTPUTIP2 >$NULL ; echo $?`
fi
PORTA=`$NC $OUTPUTIP1 $OUTPUTPORT1 2> $NULL ; echo $?`
PORTB=`$NC $OUTPUTIP2 $OUTPUTPORT1 2> $NULL ; echo $?`
if [ $PORTA -eq 1 ] ; then
echo $OUTPUTIP1 > .ipaddSTD
ipvsadm -d -t $OUTVIP:$OUTPUTPORT1 -r $OUTPUTIP1 2>$NULL
ipvsadm -d -t $OUTVIP:$OUTPUTPORT2 -r $OUTPUTIP1 2>$NULL
echo 1 >.A
AS=`cat .A`
if [ $AS -eq 1 ] ; then
echo \ ; echo \ >>$LOG
echo $time ipvsadm remove $OUTPUTIP1 server 1 >>$LOG
else
echo log ok >$NULL
fi
else
VALUEIP=`wc -l .ipaddSTD |awk '{print $1}'`
if [ $VALUEIP -gt 0 ] ; then
STD1=`$PING $OUTPUTIP1 >$NULL ; echo $?`
PORTA=`$NC $OUTPUTIP1 $OUTPUTPORT1 2>$NULL ; echo $?`
if [ $STD1 -eq 0 ] && [ $PORTA -eq 0 ] ; then
ipvsadm -a -t $OUTVIP:$OUTPUTPORT1 -r $OUTPUTIP1:$OUTPUTPORT1 -g
ipvsadm -a -t $OUTVIP:$OUTPUTPORT2 -r $OUTPUTIP1:$OUTPUTPORT2 -g
echo \ ; echo \ >>$LOG
echo $time $OUTPUTIP1 is alived add to ipvsadm >>$LOG
>.ipaddSTD
else
echo status ok >$NULL
fi
fi
fi
if [ $PORTB -eq 1 ] ; then
echo $OUTPUTIP2 > .ipaddSTE
ipvsadm -d -t $OUTVIP:$OUTPUTPORT1 -r $OUTPUTIP2 2>$NULL
ipvsadm -d -t $OUTVIP:$OUTPUTPORT2 -r $OUTPUTIP2 2>$NULL
echo 1 >.B
BS=`cat .B`
if [ $BS -eq 1 ] ; then
echo \ ; echo \ >>$LOG
echo $time ipvsadm remove $OUTPUTIP2 server 2 >>$LOG
else
echo log ok > $NULL
fi
else
VALUEIP=`wc -l .ipaddSTE |awk '{print $1}'`
if [ $VALUEIP -gt 0 ] ; then
STD1=`$PING $OUTPUTIP2 >$NULL ; echo $?`
PORTA=`$NC $OUTPUTIP2 $OUTPUTPORT1 2>$NULL ; echo $?`
if [ $STD1 -eq 0 ] && [ $PORTA -eq 0 ] ; then
ipvsadm -a -t $OUTVIP:$OUTPUTPORT1 -r $OUTPUTIP2:$OUTPUTPORT1 -g
ipvsadm -a -t $OUTVIP:$OUTPUTPORT2 -r $OUTPUTIP2:$OUTPUTPORT2 -g
echo \ ; echo \ >>$LOG
echo $time $OUTPUTIP2 is alived add to ipvsadm >>$LOG
>.ipaddSTE
else
echo status ok > $NULL
fi
fi
fi
if [ $LINEB -gt 22 ] ; then
PORTC=`$NC $OUTPUTIP3 $OUTPUTPORT1 2>$NULL ; echo $?`
STF=`$PING $OUTPUTIP3 >$NULL ; echo $?`
if [ $PORTC -eq 1 ] ; then
ipvsadm -d -t $OUTVIP:$OUTPUTPORT1 -r $OUTPUTIP3 2>$NULL
ipvsadm -d -t $OUTVIP:$OUTPUTPORT2 -r $OUTPUTIP3 2>$NULL
echo $OUTPUTIP3 > .ipaddSTF
echo 1 >.C
CS=`cat .C`
if [ $CS -eq 1 ] ; then
echo \ ; echo \ >>$LOG
echo $time ipvsadm remove $OUTPUTIP3 server 3 >>$LOG
else
echo log ok >$NULL
fi
else
VALUEIP=`wc -l .ipaddSTF |awk '{print $1}'`
if [ $VALUEIP -gt 0 ] ; then
STD1=`$PING $OUTPUTIP3 >$NULL ; echo $?`
PORTA=`$NC $OUTPUTIP3 $OUTPUTPORT1 2>$NULL ; echo $?`
if [ $STD1 -eq 0 ] && [ $PORTA -eq 0 ] ; then
ipvsadm -a -t $OUTVIP:$OUTPUTPORT1 -r $OUTPUTIP3:$OUTPUTPORT1 -g
ipvsadm -a -t $OUTVIP:$OUTPUTPORT2 -r $OUTPUTIP3:$OUTPUTPORT2 -g
echo \ ; echo \ >>$LOG
echo $time $OUTPUTIP3 is alived add to ipvsadm >>$LOG
>.ipaddSTF
else
echo status ok > $NULL
fi
fi
fi
fi
##
fi
else
echo \ ; echo \ >>$LOG
echo "$time status is backup Can't use LVS !~!~! " >> $LOG
echo \; echo\; echo
OUTVIP=`cat /etc/keepalived/keepalived.conf |sed -n '15p' | awk -F/.* '{print $1}'`
IP=`ip add list |grep $OUTVIP >$NULL ; echo $?`
ROUTE=`route -n |grep $OUTVIP |grep lo >$NULL; echo $?`
if [ "$OUTPUTIP1" == "$INPUTIP1" ] ; then
if [ $IP -eq 0 ] && [ $ROUTE -eq 0 ] ; then
echo \ ; echo \ >>$LOG
echo $time VIP - - IS - - Set - - Up - - Ok
else
ifconfig lo:2 $OUTVIP netmask 255.255.255.255 up
echo "1" > /proc/sys/net/ipv4/conf/all/arp_ignore
echo "2" > /proc/sys/net/ipv4/conf/all/arp_announce
echo "1" > /proc/sys/net/ipv4/conf/lo/arp_ignore
echo "2" > /proc/sys/net/ipv4/conf/lo/arp_announce
echo \ ; echo \ >>$LOG
echo $time add $OUTVIP for lo:2 to backup server ok 1! >>$LOG
route add -host $OUTVIP dev lo:2
fi
else
IPA=`ip add list |grep $OUTVIP >$NULL ; echo $?`
IPB=`ip add list |grep $INVIP >$NULL ; echo $?`
ROUTEA=`route -n |grep $OUTVIP |grep lo >$NULL; echo $?`
ROUTEB=`route -n |grep $INVIP |grep lo >$NULL; echo $?`
if [ "$IPA" == "$IPB" ] && [ "$ROUTEA" == "$ROUTEB" ] ; then
echo \ ; echo \ >>$LOG
echo $time VIP - - Set - - UP - -ok >>$LOG
else
echo "1" > /proc/sys/net/ipv4/conf/lo/arp_ignore
echo "2" > /proc/sys/net/ipv4/conf/lo/arp_announce
echo "1" > /proc/sys/net/ipv4/conf/all/arp_ignore
echo "2" > /proc/sys/net/ipv4/conf/all/arp_announce
ifconfig lo:2 $OUTVIP netmask 255.255.255.255 up
echo \ ; echo \ >>$LOG
echo $time add $OUTVIP for lo:2 to backup server ok 2! >>$LOG
route add -host $OUTVIP dev lo:2
ifconfig lo:3 $INVIP netmask 255.255.255.255 up
route add -host $INVIP dev lo:3
echo \ ; echo \ >>$LOG
echo $time add $INVIP for lo:3 to backup server ok ! >>$LOG
fi
fi
fi
else
ipvsadm -C
if [ $STATB -eq 0 ] ; then
echo "0" > /proc/sys/net/ipv4/conf/lo/arp_ignore
echo "0" > /proc/sys/net/ipv4/conf/lo/arp_announce
echo "0" > /proc/sys/net/ipv4/conf/all/arp_ignore
echo "0" > /proc/sys/net/ipv4/conf/all/arp_ignore
ip addr del $OUTVIP dev lo 2>$NULL
ip addr del $INVIP dev lo 2>$NULL
route del -host $OUTVIP dev lo 2>$NULL
route del -host $INVIP dev lo 2>$NULL
echo \ ; echo \ >>$LOG
echo $time Load balance - is - closed >>$LOG
fi
echo $time Load balance - is - closed >>$LOG
fi
else
LOG=/var/log/keepalived.log
ipvsadm -C
echo $INTERFACE |xargs ip addr del $VIP dev 2>>$NULL
echo \ ; echo \ >>$LOG
echo $time TrustMore Gateway Server Not Running >> $LOG
fi
FILE=`grep "nohup /ssl/bin/k.sh &" /etc/rc.local > $NULL ; echo $?`
if [ $FILE -eq 0 ] ; then
echo file ok >$NULL
else
echo "nohup /ssl/bin/k.sh & " >>/etc/rc.local
fi
ls -l $LOG |awk '{print $5}' | awk '$1 > 107374182 {print$1}' >.size
SIZE=`wc -l .size | awk '{print $1}'`
if [ $SIZE -gt 0 ] ; then
rm -rf $LOG
fi
本文转自zhaoyun00 51CTO博客,原文链接:http://blog.51cto.com/zhaoyun/666226