自动检查MySQL主从同步状态的shell脚本
2016-01-29 08:30
816 查看
MySQL在做主从同步的时候,需要关注两个Yes,要时刻了解同步的状况,不可能每次都要登录到系统上查看,当然会想到使用到监控了,下面是收集的资料,然后经过自己的整理,供大家参考。
脚本是在Slave 的mysql数据库上运行,Mysql的安装目录是/usr/local/mysql/,监听的端口是TCP 3306,MySQL的版本是:5.6.27,操作系统是CentOS 6.7,没有关闭IPV6.
脚本是思路:同时也监控Slave机器的IO和SQL状态都必须为YES,缺一不可,这里用到了多重条件判断-a
参考资料:
/article/6916838.html
附加补充:
第八行的最后一个awk 应该是$2,而我这里的脚本是$4,因为我没有关闭ipv6,如果是关闭了ipv6,确实是$2,所以,还需要各位根据自己的实际情况修改和使用。
脚本是在Slave 的mysql数据库上运行,Mysql的安装目录是/usr/local/mysql/,监听的端口是TCP 3306,MySQL的版本是:5.6.27,操作系统是CentOS 6.7,没有关闭IPV6.
#!/bin/bash #Check MySQL_Slave Status #MySQL version: 5.6.27 # MySQL_PORT=`netstat -an|grep "LISTEN"|grep "3306"|awk -F ' ' '{print $4}'|awk -F ':' '{print $4}'` MySQL_IP=`ifconfig eth0 |grep "inet addr"|awk -F ':' '{print $2}'|awk -F ' ' '{print $1}'` MySQL_Status=$(/usr/local/mysql/bin/mysql -S /tmp/mysql.socket -uroot -pfgjh123. -e "show slave status\G" |grep -i "running"|head -n2) IO_env=`echo $MySQL_Status | grep Slave_IO_Running |awk '{print $2}'` SQL_env=`echo $MySQL_Status |grep Slave_SQL_Running |awk '{print $2}'` ToDay=`date +"%y-%m-%d %H:%M:%S"` if [ "$MySQL_PORT" == "3306" ] then echo "###### $ToDay ######" >> /data/check_mysql_slave_ok.log echo "MySQL Server is running !" >> /data/check_mysql_slave_ok.log else mail -s "Warn! Server:$MySQL_IP MySQL is Down" balich@qq.com fi if [ "$IO_env" = "Yes" -a "$SQL_env" = "Yes" ] then echo "###### $ToDay ######" >> /data/check_mysql_slave_ok.log echo "Slave MySQL Server Slave_IO and Slave_SQL is running !" >> /data/check_mysql_slave_ok.log else echo "###### $ToDay ######" >> /data/check_mysql_slave_warn.log echo "Slave is not running !" >> /data/check_mysql_slave_warn.log echo "Slave is not running !" | mail -s "Warn! $MySQL_IP MySQL Slave is not running " balich@qq.com fi使用任务计划crontab,每10分钟运行监测一次
*/10 * * * * root /bin/sh /root/shell/Check_MySQL_Slave_Status.sh
脚本是思路:同时也监控Slave机器的IO和SQL状态都必须为YES,缺一不可,这里用到了多重条件判断-a
参考资料:
/article/6916838.html
附加补充:
第八行的最后一个awk 应该是$2,而我这里的脚本是$4,因为我没有关闭ipv6,如果是关闭了ipv6,确实是$2,所以,还需要各位根据自己的实际情况修改和使用。
相关文章推荐
- shell bash ksh
- shell批量将文件从dos格式转为Unix
- 【转载】HBase基本概念和hbase shell常用命令用法
- 几个adb shell的命令,放到批处理文件里面,方便好用
- SecureCRT上传bash: rz: command not found
- Shell数组:shell数组的定义、数组长度
- Shell字符串
- Shell注释
- Shell运算符:Shell算数运算符、关系运算符、布尔运算符、字符串运算符等
- Shell替换:Shell变量替换,命令替换,转义字符
- Shell特殊变量:Shell $0, $#, $*, $@, $?, $$和命令行参数
- Shell变量:Shell变量的定义、删除变量、只读变量、变量类型
- 第一个Shell脚本
- 什么时候使用Shell
- 几种常见的Shell
- Shell简介:什么是Shell,Shell命令的两种执行方式
- Shell脚本语言与编译型语言的差异
- 【Linxu学习004】Bash Shell 相关
- adb shell下使用命令行删除android系统中指定文件和文件夹
- Linux下面运行shell脚本出现unexpected end of file错误