扫描日志以查找错误并发送电子邮件

时间:2017-03-14 08:20:43

标签: shell

我正在尝试编写一个sh脚本来扫描日志cont以查找OOM错误并发送邮件。任何人都可以帮我把它变得更强大。另外,我只想扫描最新的书面日志而不是旧日志。

#!/bin/sh
str1=""
str2=""
strcmtxt="OutOfMemory"
startscroom:
tail -50 /FMW/Middleware11gR2/user_projects/domains/LabDomain/servers/WLS_FORMS/logs/WLS_FORMS.log > chkoom.log
if [ "$str1" = "$(tail -c 30 chkoom.log)" ] && [ "$str2" = "$(head -1 chkoom.log|cut -c 6-28)" ]; then
sleep 5m
goto startscroom:;
else
grep -i $strcmtxt chkoom.log
if [ $? = 0 ]
(
echo "To: abc@abc.com"
echo "cc: abc@abc.com"
echo "From: abc@abc.com.com"
echo "Subject: OOM logged in Server :: ${host} at ${dt}"
echo "Content-Type: text/html"
echo "$string found on $HOSTNAME"
) | /usr/sbin/sendmail -t
str1=$(tail -c 30 chkoom.log)
str2=$(head -1 chkoom.log|cut -c 6-28)
sleep 15m
goto startscroom:;
else 
str1=$(tail -c 30 chkoom.log)
str2=$(head -1 chkoom.log|cut -c 6-28)
sleep 5m
goto startscroom:;
fi
fi

下面是示例日志文件

  

2017年2月27日上午9:26:45 IST<> [ACTIVE]   ExecuteThread:' 2' for queue:' weblogic.kernel.Default(自我调整)'> <> <> < 0000LbUUvyX5yW ^ 5xVs1yW1OYi0b000002> < 1488167805172>   

0 个答案:

没有答案