我希望每次 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