特定のDSNタグをトリガーするメッセージのレポート要約を生成する方法

特定のDSNタグをトリガーするメッセージのレポート要約を生成する方法

私は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。しかし、問題は上記の行だけを返し、メッセージの送信者を知らせないことです。

理想的には、次のことを行う1行のコードを探しています。

  1. 特定のDSNのsendmailメールログを取得します。
  2. 電子メールを識別するメッセージID。 (awk '{print $}'使用になりそうですが?)
  3. 各メッセージの詳細を返します(手順2で取得したメッセージIDのgrepかもしれません)。

答え1

バッシュから

dsn=5.7.1
$ grep $dsn /var/log/maillog | awk '{print $6}' | awk -F: '{print $1}'

返品:

p937blksdh3

あなたが投稿した行にあるメッセージIDのようです。

まあ、それはスレッドではありません。では、grepメッセージの詳細はどこに保存されますか?

関連情報