Shell腳本實現監控MySQL主從同步
來源:易賢網 閱讀:1006 次 日期:2015-01-30 14:33:14
溫馨提示:易賢網小編為您整理了“Shell腳本實現監控MySQL主從同步”,方便廣大網友查閱!

代碼如下:

#!/bin/bash

#check MySQL_Slave Status

#crontab time 00:10

MYSQLPORT=`netstat -na|grep "LISTEN"|grep "3306"|awk -F[:" "]+ '{print $4}'`

MYSQLIP=`ifconfig eth0|grep "inet addr" | awk -F[:" "]+ '{print $4}'`

STATUS=$(/usr/local/webserver/mysql/bin/mysql -u yuhongchun -pyuhongchun101 -S /tmp/mysql.sock -e "show slave status\G" | grep -i "running")

IO_env=`echo $STATUS | grep IO | awk ' {print $2}'`

SQL_env=`echo $STATUS | grep SQL | awk '{print $2}'`

DATA=`date +"%y-%m-%d %H:%M:%S"`

if [ "$MYSQLPORT" == "3306" ]

then

echo "mysql is running"

else

mail -s "warn!server: $MYSQLIP mysql is down"

fi

if [ "$IO_env" = "Yes" -a "$SQL_env" = "Yes" ]

then

echo "Slave is running!"

else

echo "####### $DATA #########">> /data/data/check_mysql_slave.log

echo "Slave is not running!" >> /data/data/check_mysql_slave.log

echo "Slave is not running!" | mail -s "warn! $MYSQLIP MySQL Slave is not running"

fi

建議每十分鐘運行一次

代碼如下:

*/10 * * * * root /bin/sh /root/mysql_slave.sh

記得在每臺MySQL從機上分配一個yuhongchun的用戶,權限大些也沒關系,只限定在本地運行,如下所示:

代碼如下:

grant all privileges on *.* to " identified by "yuhongchun101";

grant all privileges on *.* to " identified by "yuhongchun101";

腳本設計思路:

1、此腳本應該能適應各種各樣不同的內外網環境,即IP不同的環境;

2、讓腳本也順便監控下MySQL是否正常運行;

3、Slave機器的IO和SQL狀態都必須為YES,缺一不可,這里用到了多重條件判斷-a。

腳本產生的背景環境:

我有不少基于公網類型的網站(沒有硬件防火墻,直接置于IDC機房)做的都是MySQL主從架構,從機主要起備份數據庫和冷備份的作用,雖然從機宕機了問題不大,但也影響數據的備份工作;這樣的網站有數十個,如果一個一個手動的檢查,每天都要浪費不少時間,所以玩了下腳本控,設計了如上腳本。

腳本實踐:

此腳本我已用于了生產環境,大家可以放在我們的從MySQL機器上,用來監控;另外建議有時也手動檢查下,有次發現rsync --delete 自動刪除了/data/data里面的數據,即從數據庫的位置,腳本沒有報警。

后期應用:

后期公司的MySQL數據庫準備由一主一從架色升級成一主多從,讀寫分離的架構,LVS作從數據庫的負載均衡器,此腳本自動監控從MySQL的replication狀態,如果不能同步則自動關閉本機的MySQL服務,免得影響整個網站的正常業務訪問。當然了,到時腳本的運行周期肯定也需要更改,由10分鐘變成秒級的,這個可以通過while循環來實現。

更多信息請查看IT技術專欄

更多信息請查看腳本欄目
易賢網手機網站地址:Shell腳本實現監控MySQL主從同步
由于各方面情況的不斷調整與變化,易賢網提供的所有考試信息和咨詢回復僅供參考,敬請考生以權威部門公布的正式信息和咨詢為準!

2026國考·省考課程試聽報名

  • 報班類型
  • 姓名
  • 手機號
  • 驗證碼
關于我們 | 聯系我們 | 人才招聘 | 網站聲明 | 網站幫助 | 非正式的簡要咨詢 | 簡要咨詢須知 | 新媒體/短視頻平臺 | 手機站點 | 投訴建議
工業和信息化部備案號:滇ICP備2023014141號-1 云南省教育廳備案號:云教ICP備0901021 滇公網安備53010202001879號 人力資源服務許可證:(云)人服證字(2023)第0102001523號
云南網警備案專用圖標
聯系電話:0871-65099533/13759567129 獲取招聘考試信息及咨詢關注公眾號:hfpxwx
咨詢QQ:1093837350(9:00—18:00)版權所有:易賢網
云南網警報警專用圖標
未满十八18勿进黄网站免费看