zoukankan      html  css  js  c++  java
  • 监控mysql主从同步状态脚本

                          监控mysql主从同步状态脚本                      

    示例一:
    cat check_mysql_health
    
    #!/bin/sh
    slave_is=($(mysql -S /tmp/mysql3307.sock -uroot -e "show slave statusG"|grep "Slave_.*_Running" |awk '{print $2}')) 
    if [ "${slave_is[0]}" = "Yes" -a "${slave_is[1]}" = "Yes" ]
         then
         echo "OK SDK-slave3307 connect master3306 is running"
         exit 0
    else
         echo "Critical SDK-slave3307 connect master3306 is not running"
         exit 2
    fi 
    示例二:
    [root@slavedb test]# cat Check_Mysql_Synchronization.sh 
    #!/bin/bash
    MYUSER=root
    MYSOCKET=/tmp/mysql3306.sock
    MYPASSWD=
    MYLOGIN="mysql -S $MYSOCKET -u$MYUSER "
    ERROR=(1158 1159 1008 1007 1062 1050)
    check_status(){
    STATUS=($($MYLOGIN -e "show slave statusG"|egrep "Slave_SQL_Running|Slave_IO_Running|Seconds_Behind_Master|Last_SQL_Errno"|awk '{print $NF}'))
    if [ "${STATUS[0]}" = "Yes" -a "${STATUS[1]}" = "Yes" -a "${STATUS[2]} = 0" ];then
            echo "Mysql Slave is Ok!"
            CHECK_NUM=0
            return $CHECK_NUM
    else
            CHECK_NUM=1
            return $CHECK_NUM
    fi
    }
    
    check_error(){
            check_status
            if [ $? -eq 1 ];then
                    for ((i=0;i<${#ERROR[*]};i++));do
                            if [ "${ERROR[i]}" == "${STATUS[3]}" ];then
                                    $MYLOGIN -e "stop slave;"
                                    $MYLOGIN -e "set global sql_slave_skip_counter=1"
                                    $MYLOGIN -e "start slave;"
                            fi
                    done
            fi
    }
    
    check_again(){
            STATUS=($($MYLOGIN -e "show slave statusG"|egrep "Slave_SQL_Running|Slave_IO_Running|Seconds_Behind_Master|Last_SQL_Errno"|awk '{print $NF}'))
            check_status >/dev/null 2&>1
            if [ $? -eq 1 ];then
                    echo "Mysql slave is fail $(date +%F)"
            fi
    }
    main(){
            while true;do
                    check_error
                    check_again
                    sleep 10
            done
    }
    main

    作者:唐胜伟
    出处:http://www.cnblogs.com/tangshengwei/
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接。

  • 相关阅读:
    Eclipse快捷键大全(转载)
    为什么你应该(从现在开始就)写博客 via刘未鹏
    Hadoop琐记
    详解MANIFEST.MF文件
    脚本语言琐记
    因为此版本的应用程序不支持其项目类型(.csproj) .
    求助:关于Activator.CreateInstance
    打印网页指定区域
    CSS中的行为——expression
    ASP.NET使用mysql数据库
  • 原文地址:https://www.cnblogs.com/tangshengwei/p/5502010.html
Copyright © 2011-2022 走看看