数据库从状态监控 ,原理就是show slave status \G ; 下的2个yes 看在不在
#!/bin/bash #check MySQL_Slave Status #crontab time 00:10 while : do MYSQLPORT=`netstat -na|grep "LISTEN"|grep "3306"|awk -F[:" "]+ '{print $5}'` STATUS=$(/usr//bin/mysql -u www -pwww -S /var/run/mysqld/mysqld.sock -e "show slave status\G" | grep -i "running") MYSQLIP=$(ifconfig eth0 |grep "inet "|awk '{print $2}'|cut -d: -f2 ) 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" sleep 10 else /usr/local/bin/sendEmail -f [UserQQ]@qq.com -t [email protected] -s 119.147.74.45 -u " Mysql Server waring" -xu [UserQQ] -xp passwd -m "Server:$MYSQLIP ,\n time: $DATA" fi if [ "$IO_env" = "Yes" -a "$SQL_env" = "Yes" ] then # echo "Slave is running!" sleep 10 else echo "####### $DATA #########">> /data/data/check_mysql_slave.log echo "Slave is not running!" >> /data/data/check_mysql_slave.log /usr/local/bin/sendEmail -f [USerQQ]@qq.com -t [email protected] -s 119.147.74.45 -u "Slave Mysql waring" -xu [UserQQ] -xp [Password] -m "Server:$MYSQLIP ,\n time: $DATA" fi sleep 60 done
sendmail 的 smtp服务器配置的QQmail IP