IT

Selektivní vymazání fronty postfixu

13.8.2018

Občas se stane, že je třeba promazat forntu postfixu ale nechceme smazat vše, jen něco a ne postsuper -d ALL.

Frontu psotfixu si prohlédneme např. příkazem mailq a dostaneme např.:

CFADF346A7D    49569 Fri Aug 10 15:10:10  bounce@news-1etter.com
                                                (unknown mail transport error)
                                         uzivatel@vosa.cz

Nyní potřebujeme dostat ID zprávy do příkazu pro vymazání emailu z fronty a zároveň zkontrolovat kdo je odesílatelem – v tomto případě bounce@news-1etter.com. Proto použijeme příkaz:

mailq | tail -n +2 | head -n -2 | grep -v '^ *(' | awk 'BEGIN { RS = "" } { if ($7 == "bounce@news-1etter.com") print $1 }' | postsuper -d -

kde výstup mailq ořežeme pomocí tail a head na jednu řádku, pomocí awk řekneme, že oddělovač je prázdný znak a otestujeme řetězec na sedmý sloupec, zda obsahuje daný email a pokud jo, pošleme id zprávy (první sloupec) na vstup příkazu postsuper pro vymazání zprávy.

Jak snadné ….