脚本 bash 尾部总是一个日志文件,当匹配特定单词时,发送邮件

Script bash that tail always a logfile and when match particular word, send mail

我搜索了所有线程,但我不知道如何解决我这个非常简单的问题..

我觉得很简单,但我不是bash专家..

我需要一个 bash 脚本,它在日志文件中执行连续尾巴,当 grep 单词 "fail" 时,执行另一个命令并向我发送邮件(但尾巴命令不能停止)

我想我需要 "for loop" 或 "while read" 或 "if then else" 命令。我尝试了不同的方法,但找不到有效的脚本..

非常感谢您的帮助!

最有可能的是,使用标准 Linux 实用程序比使用 bash:

实现此功能更简单、更好
tail -f log-file | stdbuf -oL grep fail | xargs -L1 send-mail-alert

您已经知道您需要tail/grep。您需要两个额外的成分:stdbuf 和 xargs

stdbuf 将强制 'line buffering',导致 'fail' 消息无(缓冲)延迟地发送到 'xargs' 程序。

'xargs' 命令将在每次出现 'fail' 时激活脚本 'send-mail-alert'。您可以内联邮件传递,并使用脚本