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 statusG" 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 statusG" | 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
原文地址:https://www.cnblogs.com/dingzp/p/10992110.html