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
と、なります。