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

相關文章
相關標籤/搜索