postfixのキューをフィルタリングするやつ
たくさんメールサーバを管理してると、様々な理由でダメな感じの滞留キューを調べたり消したりしたくなることがあるわけですよ。
postfixだとmailqってコマンドでキューのサマリが取得できるんだけど、こいつは1レコード複数行なので、特定FromであったりToであったりでフィルタリングするのが結構きつい。
例えばawkで特定ToなキューIDを得ようとするとこんな事になってしまう。
mailq | awk 'BEGIN{FS="\n"; RS=""} /\n *todokanai@gmail.com\n?/{print $1}'| awk '{print $1}' | sed 's/\*//'
こんなもん覚えてられないし、覚えたとしても毎回こんなにタイプしたくない。
というわけで、perlでちゃちゃっと作ったのがこれ。
https://github.com/lamanotrama/mailq-filter
例えば上のawkでやってる例だと
mailq-filter -t todokanai@gmail.com
でいけるし、パイプで続けて
mailq-filter -t todokanai@gmail.com | postsuper -d -
とかやると、とても晴れやかな気分になると思います。なりました。