CENTOS 5.x | 发送邮件
大家好,
我希望这是一个简单的问题。 =)我需要生成触发特定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 )。 但问题是,这只会返回上面的一行,不告诉我的消息的发件人。
理想情况下,我正在寻找一个可以做到以下几点的单线程:
我是脚本/单行的n00b,所以我相信可能有一个更简单的方法来做到这一点。 有什么想法吗?
谢谢,
-M
以下将search你的dsn,如果它匹配dsn = 5.7.1它将打印msg-id和发件人:
awk '{if($13 ~ /dsn\=5\.7\.1/)print $11 $7}' < /var/log/maillog
我不确定你想要提取什么样的特定数据,而不是msg-id和发送者,但是你可以通过手动计算由空格分隔的字段来切换print $11 $7字段($ 11 $ 7)来select你想。
这是你以后?
埃里克
效率不高(2次扫描日志文件),但应该做的伎俩:
awk'/dsn=5.7.1/ {print $ 6}'/ var / log / maillog | while read ID; 做awk“/$ID.*from=/ {print \ $ 7}”/ var / log / maillig; DONE