mysql主从关系监控,故障报警和恢复

#!/bin/shmysql

#check_mysql_slave statussql


ip=eth1  #网卡名称数据库


mysql_binfile=/usr/local/mysql/bin/mysqlide


mysql_user=root  #MySQL数据库帐号日志


mysql_pass=123456  #密码ip


mysql_sockfile=/tmp/mysql.sockit


datetime=`date +"%Y-%m-%d/%H:%M:%S"`   #获取当前时间class


mysql_slave_logfile=/opt/slave.log   #日志文件路径,必须提早建立好awk


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


status=$($mysql_binfile -u$mysql_user -p$mysql_pass -S $mysql_sockfile -e "show slave status\G" | grep -i "running")


Slave_IO_Running=`echo $status | grep Slave_IO_Running | awk ' {print $2}'`


Slave_SQL_Running=`echo $status | grep Slave_SQL_Running | awk '{print $2}'`


if [ "$Slave_IO_Running" = "Yes" -a "$Slave_SQL_Running" = "Yes" ]


then echo "Slave is Running!"   >>  /opt/s.log

#mail -s "$ip  Slave is  running!(主从关系正常,放心使用啦。)"   243652136\@qq.com  <  /opt/s.log

else


echo " $datetime $slave_ip Slave is not running!" >> $mysql_slave_logfile

mail -s " Slave is  not running!(主从关系宕机啦,赶忙去修复吧。)"   243652136\@qq.com  <  $mysql_slave_logfile

$mysql_binfile -u$mysql_user -p$mysql_pass -S $mysql_sockfile -e "stop  slave;"


$mysql_binfile -u$mysql_user -p$mysql_pass -S $mysql_sockfile -e "set global sql_slave_skip_counter=1;"


$mysql_binfile -u$mysql_user -p$mysql_pass -S $mysql_sockfile -e "start   slave;"


$mysql_binfile -u$mysql_user -p$mysql_pass -S $mysql_sockfile -e "exit"


fi

相关文章
相关标签/搜索