Jul
4
随着做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分钟了。若是每天需要检查的话。呵呵~
为了方便特别写了以下脚本。轮循对所有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分钟了。若是每天需要检查的话。呵呵~
网站PR值更新记录20090625
浅谈服务器代维的十点注意事项




