1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
#!/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脚本
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
#!/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
|
运行结果如下

本文转自 bbotte 51CTO博客,原文链接:http://blog.51cto.com/bbotte/1410008,如需转载请自行联系原作者