提取mariadb(mysql) 报错日志并自动邮件上报告警内容

  1. 前提安装mailx

  2. yum -y install mailx

2.初始值设为0

echo 0 >/tmp/mysqlerrorNB.log

3.每隔5分钟检测mysql日志

crontab -e

*/5 * * * * sh /scripts/mysqlerr.sh >/dev/null 2>&1



脚本如下:

#!/bin/shell


log=/home/DBdata/DB2.err

#原来error记录数

numA=`cat /tmp/mysqlerrorNB.log`


#当前error数

numB=`cat $log|grep "ERROR"|wc -l`


#增加的error条目

numC=$(($numB - $numA))


#从日志中过滤出error日志

errTotal=/tmp/mysqlerrTotal.log


#对新增的error日志提取,并上报告警

errIncrease=/tmp/errIncrease.log


if [[ $numC > 0 ]]

then

        `cat $log|grep "ERROR" >$errTotal`

        tail -n $numC $errTotal >$errIncrease

        mail -s "mysql10.0.0.111 error alert!" to [email protected]  <$errIncrease #上报告警功能

        echo $numB >/tmp/mysqlerrorNB.log

        exit 1

else 

        echo "it's ok" >/dev/null 2>&1

        exit 1

fi


你可能感兴趣的:(linux,shell,自动化)