EatSmartシステム部ブログ

ウェブサイトの開発や運営に関する情報です。

Postfixにたまった不要なメッセージの削除

MTAのPostfixに不正なサーバーから大量にメールを送られ、それに対して自動で返信しようとしてできなかった場合に、MAILER-DAEMONが再送しようとして輻輳することがありました。

それらを一度に削除することを試みました。

各コマンド

1. キューにたまったメッセージの一覧

postqueue -p

2. MAILER-DAEMONの抽出

grep 'MAILER-DAEMON'

3. 先頭の文字列(MessgeID)の抽出

awk '{print $1}'

4. activeキューのマーク削除

postqueue -p では、activeキューにあるメッセージのIDに*が付くようです。

* The message is in the active queue, i.e. the message is selected for delivery.

sed s/*// 

5. ID指定でメッセージ削除

postsuper -d

まとめると

全体をパイプでつないで、最後のpostsuperはxargsで引数を渡すと

postqueue -p | grep 'MAILER-DAEMON' | awk '{print $1}' | sed s/*// | xargs -L 1 postsuper -d

と、なります。