监测mysql错误日志,有错误自动邮件报警

#检查错误日志里是否有ERROR,有的话,邮件报警
#每分钟监控一次
#*/1 * * * *  /download/dandan/shell_script/monitor_errlog.sh > /download/dandan/shell_script/monitor_errlog.log 2>&1


#每个机器生成一个错误日志文件
#由于公司数据库服务器的错误日志都是基于主机名的,所以还得注意hostname。
LogDir='/download/dandan/shell_script/err_logs/'


#由于每分钟都要监控一次,而定时任务会在每一分钟开始就监控,而当前分钟的错误尚未记录下来,故监控上一分钟的错误
AnalyzeDate=`date -d "1 minutes ago" "+%y%m%d %H:%M"`
ErrorLogDir1='/data/server/mysql_3307/'
HostGroup1=('10.192.200.100' '10.192.200.202')
source='……'
target='……'
MailUser='……'
MailPassword='……'


mkdir -p $LogDir


echo $AnalyzeDate
for host1 in ${HostGroup1[@]}
do
    hostname1=`ssh $host1 hostname`
    ssh $host1 cat $ErrorLogDir1$hostname1'.err' | grep "$AnalyzeDate" | grep '\[ERROR\]' > $LogDir$host1.err
    #ssh $host1 cat $ErrorLogDir1$hostname1'.err' | grep "$AnalyzeDate" | grep '\[Warning\]' > $LogDir$host1.err
    if test -s $LogDir$host1.err;
    then
        echo $(cat $LogDir$host1.err)
title1=$host1' errlog alert'
        content1=$(cat $LogDir$host1.err)
/usr/local/bin/sendEmail -f $source -t $target  -s hq.smtp.chinaunicom.cn -u $title1 -xu $MailUser -xp $MailPassword -m $content1
    else
        echo 'there are no errors in the '$host1\''errlog.'
    fi


done


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值