监测MySQL主从同步shell脚本
1. [root@shnne ~]# cat slave_check.sh #!/bin/sh while true do flag=0 array=($(egrep "_Running|Behind_Master" slave.log|awk '{print $NF}')) for stat in ${array[@]} do if [ "$stat" != "Yes" -a "$stat" != "0" ] then let flag=flag+1 fi done if [ $flag -ne 0 ] then echo "MySQL slave is not working." else echo "MySQL slave is working." fi sleep 3 done
2. #!/bin/sh while true do array=($(egrep "_Running|Behind_Master" slave.log|awk '{print $NF}')) i=`echo ${array[@]}|grep "Yes Yes 0"|wc -l` if [ $i -ne 1 ] then char="MySQL slave is not working." echo "$char" echo "$char"|mail -s "$char" test@shnne.com else char1="MySQL slave is working." echo "$char1" fi sleep 5 done
3. #!/bin/sh errorno=(1158 1159 1008 1007 1062) mysql_cmd="mysql -uroot -p123456 -S /data/3308/mysql.sock" while true do flag=0 array=($($mysql_cmd -e " show slave status\G;"|egrep "_Running|Behind_Master"|awk '{print $NF}')) arrerror=($($mysql_cmd -e " show slave status\G;"|egrep "Last_SQL_Errno"|awk '{print $NF}')) for stat in ${array[@]} do if [ "$stat" != "Yes" -a "$stat" != "0" ] then let flag=flag+1 fi done if [ $flag -ne 0 ] then for((i=0;i<=${#errorno[@]};i++)) do if [ ${arrerror[0]} -eq ${errorno[$i]} ] then $mysql_cmd -e "stop slave;set global sql_slave_skip_counter=1;start slave;" fi done echo "MySQL slave is not working." else echo "MySQL slave is working." fi sleep 3 done
<< 上一篇
下一篇 >>
网友留言(0 条)