本篇文章给大家分享的是有关如何使用shell脚本监控mysql主从同步状态,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。
#!/bin/bash #monitor_mysql_slave status USERNAME=xx #如果密码中包含特殊字符,可以加引号,避免转义 PASSWORD='xx' SLAVE_HOST=ip SLAVE_PORT=port MYSQL="mysql -u$USERNAME -p$PASSWORD" SLAVE="$MYSQL -h $SLAVE_HOST -P $SLAVE_PORT" EMAIL_ADDR=zhangsan@qq.com datetime=`date +"%Y-%m-%d %H:%M:%S"` #查看从服务器状态 MySQL_Status=`$SLAVE -e "SHOW SLAVE STATUS\G" | grep -E "Running|Seconds_Behind_Master"|head -n3 ` #从服务器的二个进程信息 Slave_IO_Running=`echo $MySQL_Status | grep Slave_IO_Running |awk '{print $2}'` Slave_SQL_Running=`echo $MySQL_Status |grep Slave_SQL_Running |awk '{print $4}'` Seconds_Behind_Master=`echo $MySQL_Status |grep Seconds_Behind_Master |awk '{print $6}'` if [ "$Slave_IO_Running" = "Yes" -a "$Slave_SQL_Running" = "Yes" -a "$Seconds_Behind_Master" -lt "10"] then echo "Replication OK" else SUBJECT="ERRORS in replication" BODY="$datetime $SLAVE_HOST MySQL slave replication error" echo $SUBJECT echo $BODY #发送报警邮件 echo $BODY | mail -s "$SUBJECT" -t $EMAIL_ADDR fi
编写好了之后,保存。授予可执行权限 chmod +x 文件名 ,然后执行即可。如果有错误,可使用sh -x 文件名 进行调试。
也可将该脚本加入到定时任务中,定时执行
使用crontab -e 命令,将下方的命令加入到定时任务中
定时任务每15分钟执行一次
*/15 * * * * /usr/local/xx.sh
重启crontab
以上就是如何使用shell脚本监控mysql主从同步状态,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注亿速云行业资讯频道。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。