每30分钟通过crontab运行的Linux脚本:[扫描文件的最后30分钟] + [值为/错误消息的greps] + [电子邮件结果]

时间:2018-04-04 09:53:21

标签: linux sed cron

我希望通过crontab条目执行以下操作,每30分钟运行一次:

  1. 使用sys time
  2. 扫描日志文件的最后30分钟
  3. grep for ERROR keyword,
  4. 通过电子邮件发送包含ERROR关键字行的字符串,以及关键字上方3行和关键字下方3行。
  5. 我使用以下命令扫描ERROR关键字:

    sed -n '/2018-03-08 11:58/,/2018-03-08 12:03/p' debug.log | grep -A 3 -B 3 "ERROR"
    

    所有帮助表示赞赏!非常感谢提前!!

1 个答案:

答案 0 :(得分:0)

我认为第1点和第2点已经解决。

对于最后一个,您只需要将grep命令的输出重定向到错误输出;因此 cron 系统将通过电子邮件发送它。

例如:

sed -n '/2018-03-08 11:58/,/2018-03-08 12:03/p' debug.log | grep -A 3 -B 3 "ERROR" >&2

要求:

  • 必须定义MAILTO变量(例如,在cron定义文件的开头)
  • 必须在您的操作系统上安装可操作的SMTP服务器