我试图监视Linux中的交易日志,并且每当检测到任何“错误”时,它都应该向我发送电子邮件,并且该监视过程应该永远持续下去。我当前的解决方案如下:
tail -f trade.log | grep -iE 'error' | mail -s 'Error Detected' XXX@XXX.com
但这似乎不起作用。由于它可能会发送一封电子邮件,但是电子邮件正文为空,因此仅发送一封电子邮件。我应该怎么办?并欢迎其他任何好的解决方案。谢谢!!
最佳答案
您可以运行两个进程。一个进程以-f trade.log结尾,并将所有输出发送到带有时间戳的文件[https://www.commandlinefu.com/commands/view/7151/monitor-a-file-with-tail-with-timestamps-added]。另一个过程在每个时间单位运行。它为“错误”而努力,并将行添加到名为“报告”的新文件中。然后使用类似于mail -s "Subject" address@someisp.com < textfile_with_mail_contents.txt
的电子邮件发送报告内容。哦,您应该在使用完每个文件后将其删除。这样,当您运行第二个进程时,就不会意外地捕获重复项。
关于linux - 在Linux中连续监视日志,并在发现错误时发送电子邮件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50732465/