千家信息网

设计自动监控从MySQL同步的脚本方法

发表于:2025-11-08 作者:千家信息网编辑
千家信息网最后更新 2025年11月08日,下面讲讲关于设计自动监控从MySQL同步的脚本方法,文字的奥妙在于贴近主题相关。所以,闲话就不谈了,我们直接看下文吧,相信看完设计自动监控从MySQL同步的脚本方法这篇文章你一定会有所受益。脚本设计思
千家信息网最后更新 2025年11月08日设计自动监控从MySQL同步的脚本方法

下面讲讲关于设计自动监控从MySQL同步的脚本方法,文字的奥妙在于贴近主题相关。所以,闲话就不谈了,我们直接看下文吧,相信看完设计自动监控从MySQL同步的脚本方法这篇文章你一定会有所受益。

脚本设计思路:

1、此脚本应该能适应各种各样不同的内外网环境,即IP不同的环境;

2、让脚本也顺便监控下MySQL是否正常运行;

3、Slave机器的IO和SQL状态都必须为YES,缺一不可,这里用到了多重条件判断-a。

#!/bin/bash#check MySQL_Slave Status#crontab time 00:10Mail-list=MysqlUser=MysqlPass=MYSQLPORT=`netstat -na|grep "LISTEN"|grep "3306"|awk -F[:" "]+ '{print $5}'`MYSQLIP=`ifconfig eth0|grep "inet addr" | awk -F[:" "]+ '{print $4}'`STATUS=$(/usr/local/mysql/bin/mysql -u $MysqlUser -$MysqlPass -e "show slave status\G" | grep -i "running")IO_env=`echo $STATUS | grep IO | awk ' {print $2}'`SQL_env=`echo $STATUS | grep SQL | awk '{print $2}'`if [ "$MYSQLPORT" == "3306" ]thenecho "mysql is running"else/bin/mail -s "warning!server: $MYSQLIP mysql is down" $Mail-listfiif [ "$IO_env" = "Yes" -a "$SQL_env" = "Yes" ]thenecho "Slave is running!"elseecho "####### $date #########" >> /tmp/check_mysql_slave.logecho "Slave is not running!" >> /tmp/check_mysql_slave.logecho "Slave is not running!"#mail -s "warn! $MySQLIP_replicate_error" $Mail-list << /tmp/check_mysql_slave.logecho "`cat /tmp/check_mysql_slave.log`" |mail -s "Warning...slave is not running!!" $Mail-listfi

使用方式:

用crontab设置定期运行,建议每十分钟运行一次

*/10 * * * * /root/mysql-slave-status.sh

记得在每台MySQL从机上分配一个jiankong的用户,权限大些也没关系,只限定在本地运行,如下所示:

grant all privileges on *.* to "jiankong"@"127.0.0.1" identified by "jiankong1*0*1";

grant all privileges on *.* to "jiankong"@"localhost" identified by "jiankong1*0*1";

对于以上设计自动监控从MySQL同步的脚本方法相关内容,大家还有什么不明白的地方吗?或者想要了解更多相关,可以继续关注我们的行业资讯板块。

0