如何为 Nginx access.log 中的某些字符串设置电子邮件通知?

如何为 Nginx access.log 中的某些字符串设置电子邮件通知?

我希望每次 Nginx 的 access.log 中出现包含特定字符串的行时都收到通知。

我想象连续运行的 tail + + 发送电子邮件命令(我在远程服务器上有一个 SMTP)的某种组合grep -w 'foobar' /var/log/nginx/access.log可以给我我想要的结果,但我完全不确定具体细节。

有没有好心人可以提供建议?

非常感谢!

答案1

事实证明这是可行的:

    #! /bin/sh
tail -f /var/log/nginx/access.log |
grep --line-buffered 'foobar' |
while read line
do
    echo "$line" | mail -s "Subject" -aFrom:username\<[email protected]\> [email protected]
done

相关内容