Jul 4

mysql数据库同步检查监控脚本实现

xieyy , 20:54 , Linux系统与应用 , 评论(3) , 引用(0) , 阅读(5299) , Via 本站原创 | |
随着做mysql数据库同步的服务器的增多,目前已有十余台服务器做了数据库同步。这些数据库同步节点的检查也变得日益重要。

为了方便特别写了以下脚本。轮循对所有mysql从机进行检查是否有同步。

参考:自动检查mysql运行状态 http://www.diybl.com/course/7_databases/mysql/Mysqljs/2008729/134277.html
         检查MySQL的Slave是否正常 http://blog.chinaunix.net/u/29134/showart_1018377.html

我的代码如下:

#!/bin/sh
#
# Created by xieyy  QQ:5090235
# To determine whether slave is running or not.
TATUS_LOGS="/var/log/mysql_status.log"
USERNAME=mysql_user
PASSWD=mysql_password
ADMIN="Email@email.com"
DATA=`date '+%Y%m%d%k%M'`
IP="192.168.0.1 192.168.0.2 192.168.0.3 192.168.0.4"
#将所有想监控的从机的IP地址都放到IP表里。以空格为分隔。

cd /usr/bin/

for i in $IP
do
HOSTNAME=$i

RESULT=`./mysql -u$USERNAME -p$PASSWD -h$HOSTNAME -e 'show status like "Slave_running"' -ss | awk '{print $2}'`
if [ "$RESULT" == 'ON' ]
then
  echo -e "$HOSTNAME  $DATA  Slave is running!" >> $TATUS_LOGS
else
  echo -e "$HOSTNAME  $DATA  Slave is not running!">> $TATUS_LOGS
fi
sleep 1
done

cd /root/bin
/bin/mail $ADMIN -s "Status Report For DNS Server mysqld_slave status!!!!" < $TATUS_LOGS
>$TATUS_LOGS


设置一下定时检查。等着收邮件即可了~

邮件结果如下:


192.168.0.1   200907042055    Slave  is  running!
192.168.0.2   200907042055    Slave  is  running!
192.168.0.3   200907042055    Slave  is  running!
192.168.0.4    200907042055    Slave  is  not  running!
192.168.0.5   200907042055    Slave  is  running!


假设若没有mail 功能函数。可直接利用telnet发送。

终于解决了数据库同步的监控问题。再也不用手动去检查mysql数据库是否有同步了。目前检查一下了。共设制了近20IP,以这一项就可少去每天的手动检查。近40分钟了。若是每天需要检查的话。呵呵~
发表评论
表情
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
打开HTML
打开UBB
打开表情
隐藏
记住我
昵称   密码   游客无需密码
网址   电邮   [注册]