提取mariadb(mysql) 报错日志并自动邮件上报告警内容
2016-05-03 10:20
651 查看
前提安装mailx
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 test@163.com <$errIncrease #上报告警功能
echo $numB >/tmp/mysqlerrorNB.log
exit 1
else
echo "it's ok" >/dev/null 2>&1
exit 1
fi
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 test@163.com <$errIncrease #上报告警功能
echo $numB >/tmp/mysqlerrorNB.log
exit 1
else
echo "it's ok" >/dev/null 2>&1
exit 1
fi
相关文章推荐
- Linux socket 初步
- android wifi 无线调试
- Linux Kernel 4.0 RC5 发布!
- linux lsof详解
- linux 文件权限
- Linux 执行数学运算
- 10 篇对初学者和专家都有用的 Linux 命令教程
- Linux 与 Windows 对UNICODE 的处理方式
- Ubuntu12.04下QQ完美走起啊!走起啊!有木有啊!
- 解決Linux下Android开发真机调试设备不被识别问题
- 运维入门
- 运维提升
- Linux 自检和 SystemTap
- 动态清空 nohup 输出文件
- install scrapy with pip and easy_install
- Ubuntu Linux使用体验
- c语言实现hashmap(转载)