mysql主从检查从库同步状态通过邮件告警脚本

mysql主从架构检查slave端状态,如果发现问题则通过邮件告警,邮件告警设置可以参照之前的文章,将此脚本加入crontab定时任务,请根据实际情况调整 mysql的路径和socket,密码等的设置



smtp服务器配置:

Centos 配置mailx使用外部smtp服务器发送邮件



#!/bin/bash

#check MySQL_Slave Status

#crontab time 00:10

MYSQLPORT=`netstat -na|grep "LISTEN"|grep "3306"|awk -F[:" "]+ '{print $4}'`

MYSQLIP=`ifconfig eth0|grep "inet addr" | awk -F[:" "]+ '{print $4}'`

# 通过mysqladmin命令执行 show slave status,获取相应的信息

STATUS=$(/usr/local/webserver/mysql/bin/mysql -u root-ppasswd -S /tmp/mysql.sock -e "show slave status\G" | grep -i "running")

IO_env=`echo  $STATUS | grep IO | awk  ' {print $2}'`

SQL_env=`echo $STATUS | grep SQL | awk  '{print $2}'`

if [ "$MYSQLPORT" == "3306" ]

  then

   echo "mysql is running"

   else

    mail -s "warn!server: $MYSQLIP mysql is down" [email protected]

fi

if [ "$IO_env" = "Yes" -a "$SQL_env" = "Yes" ]

  then

   echo "Slave is running!"

  else

  echo "#######  $date  #########">> /data/data/check_mysql_slave.log

  echo "Slave is not running!" >> /data/data/check_mysql_slave.log

   mail -s "warn! $MySQLIP_replicate_error" [email protected] << /data/data/check_mysql_slave.log

fi

你可能感兴趣的:(mysql主从检查从库同步状态通过邮件告警脚本)