環境拓撲

chengAlived
#!/bin/bash
function checkModelone(){
echo "重新進行獲取"
wget 192.168.158.147:3306 -O mysql
echo "獲取成功"
echo "進行判斷..."
grep "5.7.17" mysql > /dev/null
if [ $? -eq 0 ]; then
echo "mysql正在運行..."
echo "檢查keepalived進程是否存在..."
ps aux|grep keepalived |grep -v grep
if [ $? -ne 0 ]
then
echo "keepalived進程丟失"
echo "准備重啟keepalived..."
/usr/local/keepalived/sbin/keepalived -f /etc/keepalived/keepalived.conf
echo "重啟成功"
else
echo "keepalived 正在運行..."
fi
else
echo "mysql端口異常..."
echo "准備殺除keepalived進程進行漂移"
chengkill keepalived
echo "漂移作業完畢"
fi
}
function checkModeltwo(){
checkModelone
}
while [ true ]; do
/bin/sleep 10
if [ -d "mysql" ];then
touch mysql
else
if [ -s ./mysql ]; then
echo "文件不為空"
checkModelone
du -sh mysql
else
echo "文件為空"
checkModeltwo
fi
fi
done
運行規則:nohup ./chengAlived.sh &
說明+:
運行后, 會判斷是否存在名字為"mysql"的文件, 否則新建, 把wget后的內容寫進這個文件, 通過3306端口使用grep判斷mysql版本號, 對keepalived漂移進行管理.
講解+
第一台機器mysql主機+vip

第二台機器keepalived+lvs

啟動腳本
nohup ./chengAlive.sh &
進程
ps aux | grep chengAlive.sh [root@localhost test]# ps aux | grep chengAlive.sh root 16407 0.0 0.1 113128 1412 pts/1 S 15:27 0:00 /bin/bash ./chengAlive.sh root 16410 0.0 0.1 112676 1008 pts/1 R+ 15:27 0:00 grep --color=auto chengAlive.sh
日志(mysql處於正常開啟狀態)

模擬宕機
假如mysql掛掉了(這是158.147)

然后keepalived查看腳本日志信息(158.149)

上面,,由於mysql已掛, kill掉keepalived, 實現漂移操作
搶占模擬
如果mysql重新啟動(158.147)

再看keepalive(158.149)腳本日志

重新自動啟動keepalive.搶占成功.
完畢.
