shell脚本监控mysql主从状态
此脚本首先判断mysql服务器是否运行,如果正常,继续判断主从,否则发邮件告警,只发一次。
判断主从状态是判断IO和SQL线程是否都为yes,如果不是则发邮件通知,只发一次。
#!/bin/bash
#definemysqlvariable
mysql_user="root"
mysql_pass="123456"
email_addr="slave@jb51.net"
mysql_status=`netstat-nl|awk'NR>2{if($4~/.*:3306/){print"Yes";exit0}}'`
if["$mysql_status"=="Yes"];then
slave_status=`mysql-u${mysql_user}-p${mysql_pass}-e"showslavestatus\G"|grep"Running"|awk'{if($2!="Yes"){print"No";exit1}}'`
if["$slave_status"=="No"];then
echo"slaveisnotworking!"
[!-f"/tmp/slave"]&&echo"Slaveisnotworking!"|mail-s"Warn!MySQLSlaveisnotworking"${email_addr}
touch/tmp/slave
else
echo"slaveisworking."
[-f"/tmp/slave"]&&rm-f/tmp/slave
fi
[-f"/tmp/mysql_down"]&&rm-f/tmp/mysql_down
else
[!-f"/tmp/mysql_down"]&&echo"MysqlServerisdown!"|mail-s"Warn!MySQLserverisdown!"${email_addr}
touch/tmp/mysql_down
fi