从库状态监控脚本

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

猜你喜欢

转载自permiss.iteye.com/blog/1481619
今日推荐