免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1023 | 回复: 0

自动监控从MySQL同步的脚本 [复制链接]

论坛徽章:
0
发表于 2011-12-23 03:26 |显示全部楼层
脚本设计思路:

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

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

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

脚本内容:

#!/bin/bash
#check MySQL_Slave Status
#crontab time 00:10
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 zhaoyuefei -pzhaoyuefei1*0*1 -S /tmp/mysql.sock -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" ]
then
  echo "mysql is running"
else
  /bin/mail -s "warn!server: $MYSQLIP mysql is down" zalifei@126.com
fi

if [ "$IO_env" = "Yes" -a "$SQL_env" = "Yes" ]
then
  echo "Slave is running!"
else
  echo "#######  $date  #########" >> /tmp/check_mysql_slave.log
  echo "Slave is not running!" >> /tmp/check_mysql_slave.log
  echo "Slave is not running!"
  #mail -s "warn! $MySQLIP_replicate_error" zalifei@126.com << /tmp/check_mysql_slave.log
  echo "`cat /tmp/check_mysql_slave.log`" |mail -s "Warning...slave is not running!!" zalifei@126.com
fi


使用方式:

用crontab设置定期运行,建议每十分钟运行一次
*/10 * * * * /root/mysql-slave-status.sh


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

grant all privileges on *.* to "zhaoyuefei"@"127.0.0.1" identified by "zhaoyuefei1*0*1";
grant all privileges on *.* to "zhaoyuefei"@"localhost" identified by "zhaoyuefei1*0*1";
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP