#!/bin/bash # check mysql slave status while [ 1 ] do MAILTO=testwhocare@163.com USER="check" PSW="***" WAITTIME=1800 #ADDR=""192.168.*.*" "192.168.*.*"" ADDR="192.168.*.*" declare -a slave_is for IP in $ADDR do slave_is=($(/usr/local/mysql/bin/mysql -h$IP -u${USER} -p${PSW} -e "show slave status\G"|grep Running|awk '{print $2}')) if [ "${slave_is[0]}" = "Yes" -a "${slave_is[1]}" = "Yes" ] then echo -e "${IP} - Slave Status: \e[1;32m [ OK ] \e[0m" > /app/sqlstatus else echo "${IP} - Slave Status: \e[1;31m [ ERROR ] \e[0m" > /app/sqlstatus cat "/app/sqlstatus" |mutt -s "mysql slave" $MAILTO fi sleep $WAITTIME done done
先在从服务器创建一个可以检测的账户,这里用check,间隔一小时检查一次,如果出错,发送邮件 (yum install mytt 或者用sendmail)
只是查看mysql主从状态shell脚本
#!/bin/bash # check mysql slave status USER="check" PSW="FY@239" #ADDR=""192.168.*.*" "192.168.*.*"" ADDR="192.168.*.*" declare -a slave_is for IP in $ADDR do slave_is=($(/usr/local/mysql/bin/mysql -h$IP -u${USER} -p${PSW} -e "show slave status\G"|grep Running|awk '{print $2}')) echo ${slave_is[0]} ${slave_is[1]} if [ "${slave_is[0]}" = "Yes" -a "${slave_is[1]}" = "Yes" ] then echo -e "${IP} - Slave Status: \e[1;32m [ OK ] \e[0m" else echo "${IP} - Slave Status: \e[1;31m [ ERROR ] \e[0m" fi done
运行结果如下
转载于:https://blog.51cto.com/bbotte/1410008