需要帮助 grapping postfix 日志

需要帮助 grapping postfix 日志

我尝试根据已知字符串(收件人地址)在日志中搜索未知字符串(消息 ID),然后 grep 未知字符串以输出整个相关日志信息。我可以使用 grep 和 cut 来输出未知字符串,但之后我却无法将其传递给 grep。我使用管道到 xargs grep,但并没有产生我想要的输出。这是我用于 grep 和 cut 的命令:

grep 'to=<emailaddress' /var/log/maillog | cut -d ' ' -f 6

这将输出 Postfix 针对 emailaddress 处理的消息的所有未知字符串。当我通过管道传输到 xargs 时,我收到“grep: : 没有这样的文件或目录:

grep 'to=<emailaddress' /var/log/maillog | cut -d ' ' -f 6 | xargs grep /var/log/maillog

感谢您的帮助。

答案1

我一直在研究自己的邮件日志。尝试一下

grep 'to=<emailaddress' /var/log/maillog | cut -d ' ' -f 6 | grep -f - /var/log/maillog

将从标准输入读取-f -要搜索的字符串列表。

答案2

我编写了一个 perl 脚本,它允许您从日志中 grep 任何您想要的信息,并且它将打印具有相同队列 ID 的所有行(一次通过文件并且没有文件大小限制):

https://github.com/brablc/postfix-tools/blob/master/pflogrep

相关内容