Postfix. Очистка очереди

Удалить одно сообщения

postsuper -d <id> deferred

Удалить из очереди все сообщения

postsuper -d ALL

Удалить по критерию Sender

mailq | grep "sender@mail" | awk '{ print $1 }' | tr -d \* | postsuper -d -

Удалить по критерию Recipient

mailq | tail -n +2 | grep -v '^ *(' | gawk 'BEGIN {RS = ""} /recip@mail/ {print $1}' | tr -d '*!' | postsuper -d -

Склеить вывод строк mailq в одну строку и удалить по нужному критерию (в рамках одного письма)

mailq | grep -v "Queue ID" | while read line; do if [ "1" != `echo $line | wc -m` ]; then echo -n " "$line; else echo""; fi ; done | grep "нужный критерий" | awk '{ print $1 }' | postsuper -d -

Удалить группу писем от определенного адресата

mailq | grep ' test@test.ru ' | awk '{print $1}' | xargs -J{} -n1 postsuper -d {} deferred

Александр Черных
системный администратор

Статьи по теме