在Linux中持续监控日志,并在发现错误时发送电子邮件?

时间:2018-06-07 03:21:56

标签: linux bash shell command-line

我正在尝试监控Linux中的交易日志以及任何“错误”错误。检测到,它应该发送一封电子邮件给我,这个监控过程应该永远持续下去。我目前的解决方案如下:

tail -f trade.log | grep -iE 'error' | mail -s 'Error Detected' XXX@XXX.com

但似乎这不起作用。因为它可能会发送电子邮件,但电子邮件正文是空的,只发送一封电子邮件。我该怎么办?欢迎任何其他好的解决方案。谢谢!!

1 个答案:

答案 0 :(得分:1)

您可以运行两个进程。一个进程尾递-f trade.log并将所有输出发送到具有时间戳[https://www.commandlinefu.com/commands/view/7151/monitor-a-file-with-tail-with-timestamps-added]的文件。另一个过程在每个单位时间运行。它会导致“错误”错误。并在名为&#34; report。&#34;的新文件中添加行。然后使用类似mail -s "Subject" address@someisp.com < textfile_with_mail_contents.txt之类的内容发送报告内容的电子邮件。哦,你应该删除每个文件,因为你已经完成了它们的使用。当你运行第二个过程时就是如此,所以它不会意外地捕获重复过程。