企业面试题1:监控MySQL主从同步是否异常,如果异常,则发送短信或者邮件给管理员。
  阶段1:开发一个守护进程脚本每30秒实现检测一次。
  阶段2:如果同步出现如下错误号(1158,1159,1008,1007,1062)发送邮件,否则跳过错误。
  阶段3:请使用数组技术实现上述脚本(获取主从判断及错误号部分)

提示:如果没主从同步环境,可以用下面文本放到文件里读取来模拟:

#!/bin/sh
. /etc/init.d/functions
# Defined variables
MysqlUser=root
MysqlPass=root
MysqlPort=
Mysqlsock=/var/mysql/mysql.sock /*在/etc/my.cnf中找到*/
ErrorNo=( )
errorlog=/tmp/error_skip.log
MysqlCmd="mysql-u$MysqlUser -p$MysqlPass -S $Mysqlsock"
# Judge mysql server is ok?
[ -S $Mysqlsock ] ||{ /*-S文件是否未0*/
echo "Maybe MySQL have sometingwrong"
exit
}
# Defined skip error Functions
function error_skip(){
local flag
flag=
for num in ${ErrorNo[@]}
do
if [ "$1" == "$num"];then
$MysqlCmd -e'stop slave;set globalsql_slave_skip_counter=1;start slave;'
echo "$(date +%F_%R) $1">>$errorlog
else
echo "$(date +%F_%R) $1">>$errorlog
((flag++))
fi
done
[ "$flag" =="${#ErrorNo[@]}" ] &&{
action "MySQL Slave"/bin/false
uniq $errorlog|mail -s "MySQLSlave is error" @qq.com
}
}
# Defined check slave Functions
function check_slave(){
MyResult=`$MysqlCmd -e'show slavestatus\G'|egrep '_Running|Behind_Master|SQL_Errno' |awk '{print $NF}'`
array=($MyResult)
if [ "${array[0]}" =="Yes" -a "${array[1]}" == "Yes" -a"${array[2]}" == "" ]
then
action "MySQL Slave"/bin/true
else
error_skip ${array[]}
fi
}
# Defined main Functions
function main(){
while true
do
check_slave
sleep
done
}
main

文件内容:

*************************** .row ***************************
Slave_IO_State:Waiting formaster to send event
Master_Host:10.0.0.179 #当前的mysql master服务器主机
Master_User: rep
Master_Port:
Connect_Retry:
Master_Log_File:mysql-bin.
Read_Master_Log_Pos:
Relay_Log_File:relay-bin.
Relay_Log_Pos:
Relay_Master_Log_File:mysql-bin.
Slave_IO_Running:Yes
Slave_SQL_Running: Yes
Replicate_Do_DB:
Replicate_Ignore_DB: mysql
Replicate_Do_Table:
Replicate_Ignore_Table:
Replicate_Wild_Do_Table:
Replicate_Wild_Ignore_Table:
Last_Errno:
Last_Error:
Skip_Counter:
Exec_Master_Log_Pos:
Relay_Log_Space:
Until_Condition:None
Until_Log_File:
Until_Log_Pos:
Master_SSL_Allowed: No
Master_SSL_CA_File:
Master_SSL_CA_Path:
Master_SSL_Cert:
Master_SSL_Cipher:
Master_SSL_Key:
Seconds_Behind_Master: #和主库比同步延迟的秒数,这个参数很重要
Master_SSL_Verify_Server_Cert: No
Last_IO_Errno:
Last_IO_Error:
Last_SQL_Errno:
Last_SQL_Error:

shell脚本监控MySQL主从同步的更多相关文章

  1. 用shell脚本监控MySQL主从同步

    企业面试题1:(生产实战案例):监控MySQL主从同步是否异常,如果异常,则发送短信或者邮件给管理员.提示:如果没主从同步环境,可以用下面文本放到文件里读取来模拟:阶段1:开发一个守护进程脚本每30秒 ...

  2. shell脚本修复MySQL主从同步

    发布:thebaby   来源:net     [大 中 小] 分享一例shell脚本,用于修改mysql的主从同步问题,有需要的朋友参考下吧. 一个可以修改mysql主从同步的shell脚本. 例子 ...

  3. 监控mysql主从同步状态

    在高并发网站架构中,MySQL数据库主从同步是不可或缺的,不过经常会发生由于网络原因或者操作错误,MySQL主从经常会出现不同步的情况,那么如何监控MySQL主从同步,也变成网站正常运行的重要环节. ...

  4. nagios系列(七)nagios通过自定义脚本的方式监控mysql主从同步

    nagios监控mysql主从同步 起因:nagios可能监控到mysql服务的运行情况,但确不能监控mysql的主从复制是否正常:有时候,同步已经停止,但管理人员却不知道. 登陆mysql从服务器, ...

  5. 监控mysql主从同步状态脚本

    监控mysql主从同步状态脚本 示例一: cat check_mysql_health #!/bin/sh slave_is=($(mysql -S /tmp/mysql3307.sock -uroo ...

  6. 监控mysql主从同步

    1,昨天看到shell一道面试题,需求如下: 监控MySQL主从同步是否异常,如果异常,则发送短信或者邮件给管理员.提示:如果没主从同步环境,可以用下面文本放到文件里读取来模拟:阶段1:开发一个守护进 ...

  7. 监控mysql主从同步状态是否异常

    监控mysql主从同步状态是否异常,如果异常,则发生短信或邮寄给管理员 标签:监控mysql主从同步状态是否异常 阶段1:开发一个守护进程脚本每30秒实现检测一次. 阶段2:如果同步出现如下错误号(1 ...

  8. 运维派 企业面试题1 监控MySQL主从同步是否异常

    Linux运维必会的实战编程笔试题(19题) 企业面试题1:(生产实战案例):监控MySQL主从同步是否异常,如果异常,则发送短信或者邮件给管理员.提示:如果没主从同步环境,可以用下面文本放到文件里读 ...

  9. zabbix3.0.4监控mysql主从同步

    zabbix3.0.4监控mysql主从同步 1.监控mysql主从同步原理: 执行一个命令 mysql -u zabbix -pzabbix -e 'show slave status\G' 我们在 ...

随机推荐

  1. MySQL常用代码

    create database 数据库名 create table CeShi1( Uid varchar(50) primary key, Pwd varchar(50), Name varchar ...

  2. IE盒模型和标准盒模型

    标准盒模型和ie盒模型(怪异盒模型) w3c标准盒模型 width和height不包括padding和border ie盒模型 width和height包含padding和border ie8以上都是 ...

  3. 【转载】xtrabackup原理及实施

    转载于:http://www.baidu-ops.com/2013/05/26/xtrabackup/ xtrabackup是基于InnoDB存储引擎灾难恢复的.它复制InnoDB的数据文件,尽管数据 ...

  4. PHP操作MySQL事务处理

    PHP操作MySQL事务处理 /*************** 用begin,rollback,commit来实现 ***************/ /*方法二*/ $conn = mysqli_co ...

  5. java深入探究01

    经过前面基础部门的学习,希望大家都把基础打闹再继续深入探究java应用层面的知识,以后的日子我会继续更新java进阶知识,深入探究实际工作中的java应用,说的不好的地方还请见谅,如果能提出你宝贵的建 ...

  6. HDU 1255 覆盖的面积 (线段树扫描线+面积交)

    自己YY了一个的写法,不过时间复杂度太高了,网上的想法太6了  题意:给你一些矩阵,求出矩阵的面积并 首先按照x轴离散化线段到线段树上(因为是找连续区间,所以段建树更加好做). 然后我们可以想一下怎样 ...

  7. bootstrap0

    bootstrap模板为使IE6.7.8版本(IE9以下版本)浏览器兼容html5新增的标签,引入下面代码文件即可. <script src="https://oss.maxcdn.c ...

  8. MVC中Controller弹出提示框

    1.删除时查询是否有先关数据,有提示删除相关数据:成功刷新页面:失败提示删除失败 Controller: 有相关数据:return RedirectToAction("Index" ...

  9. 关于React前端构建的一般过程 - 理论篇

    概要 本文以个人阅读实践经验归纳前端架构构建过程,以Step by Step方式说明创建一个前端项目的过程.并会对每个阶段所使用的技术进行可替代分析,如Express替换Hapi或者Koa的优缺点分析 ...

  10. mq_学习_00_资源帖

    一.精选 二.参考资料-基础 JMS(Java消息服务)入门教程 Sun Java System Message Queue 3.7 UR1 技术概述 消息队列-推/拉模式学习 & Activ ...