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