亚洲免费乱码视频,日韩 欧美 国产 动漫 一区,97在线观看免费视频播国产,中文字幕亚洲图片

      1. <legend id="ppnor"></legend>

      2. 
        
        <sup id="ppnor"><input id="ppnor"></input></sup>
        <s id="ppnor"></s>

        Shell腳本實現監(jiān)控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、此腳本應該能適應各種各樣不同的內外網環(huán)境,即IP不同的環(huán)境;
            2、讓腳本也順便監(jiān)控下MySQL是否正常運行;
            3、Slave機器的IO和SQL狀態(tài)都必須為YES,缺一不可,這里用到了多重條件判斷-a。
            腳本產生的背景環(huán)境:
            我有不少基于公網類型的網站(沒有硬件防火墻,直接置于IDC機房)做的都是MySQL主從架構,從機主要起備份數據庫和冷備份的作用,雖然從機宕機了問題不大,但也影響數據的備份工作;這樣的網站有數十個,如果一個一個手動的檢查,每天都要浪費不少時間,所以玩了下腳本控,設計了如上腳本。
            腳本實踐:
            此腳本我已用于了生產環(huán)境,大家可以放在我們的從MySQL機器上,用來監(jiān)控;另外建議有時也手動檢查下,有次發(fā)現rsync --delete 自動刪除了/data/data里面的數據,即從數據庫的位置,腳本沒有報警。
            后期應用:
            后期公司的MySQL數據庫準備由一主一從架色升級成一主多從,讀寫分離的架構,LVS作從數據庫的負載均衡器,此腳本自動監(jiān)控從MySQL的replication狀態(tài),如果不能同步則自動關閉本機的MySQL服務,免得影響整個網站的正常業(yè)務訪問。當然了,到時腳本的運行周期肯定也需要更改,由10分鐘變成秒級的,這個可以通過while循環(huán)來實現。