【问题标题】:Monitor log and send Alert mail using shell script in Linux在 Linux 中使用 shell 脚本监控日志并发送警报邮件
【发布时间】:2017-02-19 16:35:33
【问题描述】:

我创建了 .sh 文件来 grep 日志中的特定单词,并将邮件发送到特定的 emailID(设置 Cronjob 以每 1 小时运行一次此脚本)。它按预期工作,但问题是如果没有错误,我也会收到空邮件。

需要获取邮件,如果我们发现错误并且 DBError 文件有内容。请帮我解决这个问题。

    #!/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

谢谢 贾亚拉姆

【问题讨论】:

  • 您的意思是需要在if 块或else 块中发送电子邮件?

标签: linux shell email


【解决方案1】:

你能试试这个吗?

#!/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 

【讨论】:

  • 很抱歉仍然收到空邮件
  • @JayaramPonnusamy :我更新了ans。你能试试这个吗?
  • 嗨 Mustafa,仍然收到相同的“空体消息”
猜你喜欢
  • 2017-11-16
  • 2011-07-06
  • 1970-01-01
  • 2017-06-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-12-29
  • 2012-04-14
相关资源
最近更新 更多