获取日志文件中的某个字符串并发送邮件通知

项目需求:

    监测Tomcat运行日志,一旦日志中出现Exception关键字就发出邮件报警


项目分析:

    以单台服务器的多个Tomcat为例。

#!/bin/bash
# -*-coding:utf-8-*-
keywords=Exception
IPAddress=`ip add|grep eth0 |grep inet| awk '{print $2}'|awk -F"/" '{print $1}'`
#列出在线的Tomcat
ps -ef |grep tomcat |grep -v grep|awk '{print $9}'|awk -F"/" '{print $4}'|awk -F"-" '{print $2}' |sort >/tmp/Tomcat_Online.log

echo "" >/tmp/Tomcat_Online_$IPAddress.log

cat /tmp/Tomcat_Online.log | while read line
do
        grep -n $keywords /usr/local/tomcat-$line/logs/catalina.out >/dev/null
        if [ $? -eq '0' ]; then
                printf "$IPAddress的tomcat-$line日志发生异常 \n"|sort >>/tmp/Tomcat_Online_$IPAddress.log
                #echo "当前服务器$IPAddress的tomcat-$line日志发生异常" |mail -s "$IPAddress的tomcat-$line日志发生异常" [email protected] 
        else
                continue;
        fi
done


猜你喜欢

转载自blog.51cto.com/hbgslz/2309355