我在 CENTOS 5.x 上使用 Sendmail,我希望这是一个简单的问题。 =) 我需要生成触发特定 DSN 代码的消息的报告摘要。例如:
Jan 11 07:43:34 server-example sendmail[12732]: p937blksdh3: to=<[email protected]>, delay=00:00:00, xdelay=00:00:00, mailer=esmtp, pri=102537, relay=mta.recipientdomain.com. [12.34.56.78], dsn=5.7.1, stat=Service unavailable
通常,我只会 grep 获取此信息(例如:)grep -i "dsn=5.7.1" /var/log/maillog
。但问题是,这只会返回上面这样的一行,并且不会告诉我消息的发件人。
理想情况下,我正在寻找一种可以执行以下操作的单行代码:
- 在 sendmail 邮件日志中搜索特定的 DSN。
- 识别电子邮件的消息 ID。 (我猜
awk '{print $}'
会被使用?) - 返回每个消息的详细信息(可能是 grep 查找从步骤 2 中检索到的消息 ID)。
答案1
在bash中
dsn=5.7.1
$ grep $dsn /var/log/maillog | awk '{print $6}' | awk -F: '{print $1}'
返回:
p937blksdh3
在你发布的行中,我猜这就是消息 ID?
好吧,这不是一根线。那么grep
对于消息详细信息来说,消息详细信息保存在哪里呢?