shell习题第26题:监控mysql服务

Posted dingzp

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了shell习题第26题:监控mysql服务相关的知识,希望对你有一定的参考价值。

【题目要求】

假设mysql密码是123456. 写脚本监控mysql服务是否正常,比如是否可以执行show processlist,并检测一下当前的mysql服务是主还是从。如果是从,请判断他的主从服务是否正常。如果是主,则不需要做什么

【核心要点】

mysql -uroot -p123456 -e "show processlist"

show slave status

【脚本】

#!/bin/bash
mysql="/usr/local/mysql/bin/mysql -uroot -p123456"
if ! $mysql -e "show processlist" >/dev/null 2>/dev/null
then
    echo "Mysql service is down"
else 
    $mysql -e "show slave status\G" 2>/dev/null > /tmp/slave.stat
    n=`wc -l /tmp/slave.stat | awk print $1`
    if [ $n -eq 0 ]; then
        echo "This is master."
    else 
        echo "This is slave."
        $mysql -e "show slave status\G" | egrep Slave_IO_Running:|Slave_SQL_Running: | awk -F:  print $2 >/tmp/SQL.tmp
        if grep -qw "NO" /tmp/SQL.tmp
        then
            echo "The slave is down."
        fi
    fi
fi

 

以上是关于shell习题第26题:监控mysql服务的主要内容,如果未能解决你的问题,请参考以下文章

shell习题第25题:判断是否开启web服务

shell习题第22题:

shell习题第10题:打印每个单词的字数

shell习题第27题:带选项的增删用户脚本

shell习题第24题:杀进程

shell习题第2题:统计ip访问量