維護keepalived與mysql漂移腳本


環境拓撲

 

 

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.搶占成功.

完畢.

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM