数据库从状态监控 ,原理就是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 seala@live.com -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 seala@live.com -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