监测MySQL主从同步shell脚本
admin2024-08-14 10:15:42Linux运维
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