濮阳杆衣贸易有限公司

主頁 > 知識庫 > Shell腳本實(shí)現(xiàn)監(jiān)控MySQL主從同步

Shell腳本實(shí)現(xiàn)監(jiān)控MySQL主從同步

熱門標(biāo)簽:地圖標(biāo)注輻射圖案 奧維互動(dòng)地圖標(biāo)注參數(shù) 安裝外呼系統(tǒng)費(fèi)用 電銷機(jī)器人 劍魚 聯(lián)通電話機(jī)器人怎么接 衛(wèi)星地圖標(biāo)注地名 寧波智能外呼系統(tǒng)公司 申請公司400電話要注意什么 曲阜400電話辦理

代碼如下:

復(fù)制代碼 代碼如下:

#!/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" yuhongchun027@163.com
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" yuhongchun027@163.com
fi

建議每十分鐘運(yùn)行一次

復(fù)制代碼 代碼如下:

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

記得在每臺MySQL從機(jī)上分配一個(gè)yuhongchun的用戶,權(quán)限大些也沒關(guān)系,只限定在本地運(yùn)行,如下所示:

復(fù)制代碼 代碼如下:

grant all privileges on *.* to "yuhongchun"@"127.0.0.1" identified by "yuhongchun101";
grant all privileges on *.* to "yuhongchun"@"localhost" identified by "yuhongchun101";

腳本設(shè)計(jì)思路:

1、此腳本應(yīng)該能適應(yīng)各種各樣不同的內(nèi)外網(wǎng)環(huán)境,即IP不同的環(huán)境;
2、讓腳本也順便監(jiān)控下MySQL是否正常運(yùn)行;
3、Slave機(jī)器的IO和SQL狀態(tài)都必須為YES,缺一不可,這里用到了多重條件判斷-a。

腳本產(chǎn)生的背景環(huán)境:

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

腳本實(shí)踐:

此腳本我已用于了生產(chǎn)環(huán)境,大家可以放在我們的從MySQL機(jī)器上,用來監(jiān)控;另外建議有時(shí)也手動(dòng)檢查下,有次發(fā)現(xiàn)rsync --delete 自動(dòng)刪除了/data/data里面的數(shù)據(jù),即從數(shù)據(jù)庫的位置,腳本沒有報(bào)警。

后期應(yīng)用:

后期公司的MySQL數(shù)據(jù)庫準(zhǔn)備由一主一從架色升級成一主多從,讀寫分離的架構(gòu),LVS作從數(shù)據(jù)庫的負(fù)載均衡器,此腳本自動(dòng)監(jiān)控從MySQL的replication狀態(tài),如果不能同步則自動(dòng)關(guān)閉本機(jī)的MySQL服務(wù),免得影響整個(gè)網(wǎng)站的正常業(yè)務(wù)訪問。當(dāng)然了,到時(shí)腳本的運(yùn)行周期肯定也需要更改,由10分鐘變成秒級的,這個(gè)可以通過while循環(huán)來實(shí)現(xiàn)。

您可能感興趣的文章:
  • shell腳本監(jiān)控mysql主從狀態(tài)
  • 實(shí)戰(zhàn)模擬監(jiān)控MySQL服務(wù)shell腳本小結(jié)
  • CentOS下編寫shell腳本來監(jiān)控MySQL主從復(fù)制的教程
  • shell監(jiān)控腳本實(shí)例—監(jiān)控mysql主從復(fù)制
  • zabbix監(jiān)控MySQL主從狀態(tài)的方法詳解
  • 監(jiān)控MySQL主從狀態(tài)的shell腳本

標(biāo)簽:江西 遵義 上饒 仙桃 三門峽 大慶 大興安嶺 安康

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Shell腳本實(shí)現(xiàn)監(jiān)控MySQL主從同步》,本文關(guān)鍵詞  Shell,腳本,實(shí)現(xiàn),監(jiān)控,MySQL,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《Shell腳本實(shí)現(xiàn)監(jiān)控MySQL主從同步》相關(guān)的同類信息!
  • 本頁收集關(guān)于Shell腳本實(shí)現(xiàn)監(jiān)控MySQL主從同步的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    永春县| 门头沟区| 普陀区| 杂多县| 天镇县| 辉南县| 和龙市| 雷州市| 平谷区| 平武县| 尉氏县| 集安市| 罗平县| 舞阳县| 新乡县| 昌都县| 白城市| 屏边| 泰兴市| 尉犁县| 高阳县| 万载县| 永兴县| 鲁甸县| 专栏| 乌兰浩特市| 青海省| 无锡市| 横峰县| 荣昌县| 临湘市| 厦门市| 武平县| 罗田县| 中西区| 宝鸡市| 南靖县| 武夷山市| 云霄县| 定西市| 扶绥县|