Shell腳本100例:46 MySQL主從監控郵件報警腳本

  • 此腳本應該能適應各種各樣不同的內外網環境。
  • 讓腳本也順便監控下MySQL是否正常運行。
  • Slave機器的IO和SQL狀態都必須為YES,缺一不可,這裡用到了多重條件判斷-a。
  • Shell腳本100例:46 MySQL主從監控郵件報警腳本

    <code>shell> check_mysql_slave.sh
    #!/bin/bash
    #check MySQL_Slave Status

    MYSQLPORT='netstat -na|grep "LISTEN"|grep "3306"|awk -F[:" "]+ '{print $4}''
    MYSQLIP='ifconfig eth0|grep "inet addr" | awk -F[:" "]+ '{print $4}''
    STATUS=$(/usr/local/mysql/bin/mysql -u dbuser -dbpwd123 -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}''

    if [ "$MYSQLPORT" == "3306" ]
    then
     echo "mysql is running"
    else
     mail -s "warn!server: $MYSQLIP mysql is down" [email protected]
    fi


    if [ "$IO_env" = "Yes" -a "$SQL_env" = "Yes" ]
    then
     echo "Slave is running!"
    else
     echo "####### $date #########">> /data/log/check_mysql_slave.log
     echo "Slave is not running!" >> /data/log/check_mysql_slave.log
     mail -s "warn! $MySQLIP_replicate_error" [email protected] << /data/log/check_mysql_slave.log
    fi

    # 建議每10分鐘運行一次:
    shell> crontab -e
    */10 * * * * root /bin/sh /root/check_mysql_slave.sh/<code>

    查看更多


    分享到:


    相關文章: