[英]Monitor log and send Alert mail using shell script in Linux
I created .sh file to grep specific words in log and will send a mail to particular emailID (Set Cronjob to run this script every 1hour). 我创建了.sh文件来对日志中的特定单词进行grep,然后将邮件发送到特定的emailID(将Cronjob设置为每1小时运行一次此脚本)。 Its working as expected, But the Problem is if there is no error also I am getting Empty Mail.
它的工作正常,但是问题是如果没有错误,我也会收到空邮件。
Needs to get Mail, if we caught error and DBError file has content. 如果我们发现错误并且DBError文件包含内容,则需要获取Mail。 Kindly please help me on this to resolve this issue.
请对此提供帮助,以解决此问题。
#!/bin/bash
if [ ! -e DBErrors ] ; then
grep "sqlException" /opt/apps/cms/logs/cms-runtime.log > DBErrors
mail -s "ALERT: sqlException" Jayaram.Ponnusamy@gmail.com < DBErrors
else
comm -23 <(grep "sqlException" /opt/apps/cms/logs/cms-runtime.log) DBErrors | mail -s "ALERT: sqlException" Jayaram.Ponnusamy@gmail.com
grep "sqlException" /opt/apps/cms/logs/cms-runtime.log > DBErrors
fi
Thanks Jayaram 谢谢贾亚拉姆
Could you try this; 你可以尝试一下吗?
#!/bin/bash
dbErrors="/tmp/DBErrors"
if [ ! -e "$dbErrors" ]; then
grep "sqlException" /opt/apps/cms/logs/cms-runtime.log > $dbErrors
mailbody=$(grep "sqlException" /opt/apps/cms/logs/cms-runtime.log); [[ -n "$mailbody" ]] && mail -s "ALERT: sqlException" Jayaram.Ponnusamy@gmail.com
else
mailbody=$(comm -23 <(grep "sqlException" /opt/apps/cms/logs/cms-runtime.log| sort -n) <(sort -n "$dbErrors")); [[ -n "$mailbody" ]] && mail -s "ALERT: sqlException" Jayaram.Ponnusamy@gmail.com
grep "sqlException" /opt/apps/cms/logs/cms-runtime.log > $dbErrors
fi
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.