sendmail ログから Relay=hostname.com をインポートする必要があります。

sendmail ログから Relay=hostname.com をインポートする必要があります。

得る必要がある

relay=sender.hostname.com

以下のSendmailログの例。

sendmail[0000]: 03O7cddddddd:  from=<[email protected]>, size=782, class=0, nrcpts=1, msgid=<[email protected]>, proto=ESMTP, daemon=MTA, relay=sender.hostname.com [10.0.0.73]

答え1

次のコマンドを使用してこれを実行できます。

grep "from=" mail.log | sed 's/.*relay=//'

次のcmdを使用して上位10個を並べ替えて選択します。

grep "from=" mail.log | sed 's/.*relay=//' | sort | uniq -c |sort -nr -k 1 | head -10

答え2

出力がどのくらいの「選択的」であるか(つまり、[ ... ]テールIPアドレスも含むかどうか)、行にさらにテキストがあるかどうかに応じて、GNUにawk3引数match()関数があると仮定すると、次のことも機能します。

awk '/from=/ {if (match($0,/.*(relay=[^[:space:]]+).*/,a)) printf("%s\n",a[1])}' mail.log

提供された入力例の場合、出力は次のようになります。

relay=sender.hostname.com

関連情報