Jak usunąć niepotrzebne maile z kolejki Postfixa
 Czasami zaistnieje potrzeba aby wyrzucić mniejszą lub większą ilość maili z kolejki. Dla doświadczonych adminów zwykle nie jest to problem, ale zdecydowałem się, że napiszę kilka użytecznych komend lub skryptów powłoki dla mniej doświadczonych użytkowników.
Czasami zaistnieje potrzeba aby wyrzucić mniejszą lub większą ilość maili z kolejki. Dla doświadczonych adminów zwykle nie jest to problem, ale zdecydowałem się, że napiszę kilka użytecznych komend lub skryptów powłoki dla mniej doświadczonych użytkowników.
Oto kilka komend aby wyrzucić maile z kolejki postfixa. Nie pytajcie mnie dlaczego – tak dla przykładu. Tym razem opiszę to krok po kroku. Oto kolejka poczty:
# mailq -Queue ID- --Size-- ----Arrival Time---- -Sender/Recipient------- 571AAC45 48204 Tue Dec 21 07:52:39 MAILER-DAEMON (connect to example.com[221.X.X.70]:25: Connection refused) datadm@example.com ... 
Wybierzmy tylko wiadomości od MAILER-DAEMON:
# mailq|grep MAILER-DAEMON
571AAC45      48204 Tue Dec 21 07:52:39  MAILER-DAEMON
5C0671838      4528 Mon Dec 20 15:19:35  MAILER-DAEMON
806BF1FB0     12469 Mon Dec 20 00:38:55  MAILER-DAEMON
2CDC81BDE     47643 Mon Dec 20 12:05:33  MAILER-DAEMON
623E21AFE      4096 Mon Dec 20 13:16:59  MAILER-DAEMON
682491647     11799 Wed Dec 22 06:18:43  MAILER-DAEMON
...
Operacje wykonuje się na Queue-ID, zatem musimy wybrać tylko pierwszą kolumnę:
# mailq|grep MAILER-DAEMON|cut -d" " -f1
571AAC45
5C0671838
806BF1FB0
2CDC81BDE
623E21AFE
682491647
...
Teraz wyślijmy to do polecenia postsuper:
# mailq|grep MAILER-DAEMON|grep ^5|cut -d" " -f1|postsuper -d -
postsuper: 571AAC45: removed
postsuper: 5C0671838: removed
postsuper: Deleted: 2 messages
Ograniczyłem tu zakres do tych, które zaczynają się od cyfry 5 (grep ^5), aby móc pokazać, że grep i cut może być zastąpione pojedynczą komendą gawk (GNU awk):
# mailq|gawk '/MAILER-DAEMON/ { print $1 }'|postsuper -d -
postsuper: 806BF1FB0: removed
postsuper: 2CDC81BDE: removed
postsuper: 623E21AFE: removed
postsuper: 682491647: removed
...
Jeśli się zdarzy, że kolejka jest duża i lista argumentów jest zbyt długa, wtedy należy użyć polecenia  xargs przed postsuper.
# mailq|gawk '/MAILER-DAEMON/ { print $1 }'|xargs|postsuper -d 
 
																											 
																											 
																											