天天看點

linux 監控mysql腳本_shell腳本監控mysql主從狀态

此腳本首先判斷mysql伺服器是否運作,如果正常,繼續判斷主從,否則發郵件告警,隻發一次。

判斷主從狀态是判斷io和sql線程是否都為yes,如果不是則發郵件通知,隻發一次。

#!/bin/bash

#define mysql variable

mysql_user="root"

mysql_pass="123456"

email_addr="[email protected]"

mysql_status=`netstat -nl | awk 'nr>2{if ($4 ~ /.*:3306/) {print "yes";exit 0}}'`

if [ "$mysql_status" == "yes" ];then

slave_status=`mysql -u${mysql_user} -p${mysql_pass} -e"show slave status\g" | grep "running" | awk '{if ($2 != "yes") {print "no";exit 1}}'`

if [ "$slave_status" == "no" ];then

echo "slave is not working!"

[ ! -f "/tmp/slave" ] && echo "slave is not working!" | mail -s "warn!mysql slave is not working" ${email_addr}

touch /tmp/slave

else

echo "slave is working."

[ -f "/tmp/slave" ] && rm -f /tmp/slave

fi

[ -f "/tmp/mysql_down" ] && rm -f /tmp/mysql_down

else

[ ! -f "/tmp/mysql_down" ] && echo "mysql server is down!" | mail -s "warn!mysql server is down!" ${email_addr}

touch /tmp/mysql_down

fi

希望與廣大網友互動??

點此進行留言吧!