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,如需转载请自行联系原作者