Cлучилась ситуация когда надо почистить почтовую очередь postfix. Оставлю на память заметку.
Просмотреть текущую очередь:
# mailq
1FD9D42E5B 6499 Tue Oct 21 12:41:19
(connect to mail.meil.ru[188.212.201.14]:25: Connection timed out)
CF60C42E4F 6531 Tue Oct 21 13:32:30
(connect to yandeks.ru[195.161.119.224]:25: Connection timed out)
0141B42E4E 6519 Tue Oct 21 11:50:34
(connect to eandex.ru[79.174.72.151]:25: Connection timed out)
A71F842E3C 6471 Tue Oct 21 13:16:57
(connect to 148.240.4.32[148.240.4.32]:25: Connection refused)
A248C42E5E 6503 Tue Oct 21 12:41:19
(connect to 148.240.4.32[148.240.4.32]:25: Connection refused)
Для того что бы форсировать отправку сообщений, висящих в очереди можно выполнить:
# postfix flush
Приведенная команда отправляет сообщения из очереди на доставку, но кроме этого можно инициировать постановку сообщений в очередь доставки заново:
# postsuper -r ALL
Если нужно очистить очередь сообщений достаточно выполнить:
# postsuper -d ALL
Кроме того, можно удалить все сообщения из определенной очереди, например:
# postsuper -d [hold|incoming|active|deferred]
А так же удалить определенное сообщение из очереди:
# postuser -d A71F842E3C
Отсюда вытекает возможность удалить из очереди сообщения от определенного отправителя:
# mailq | awk ' /^[0-9A-F][0-9A-F]*.*$/ {print $1}'|tr -d '*'| xargs -rn1 postsuper -d
По аналогии по получателю тоже можно очистить:
# mailq | grep -B 2 " *$" | awk ' /^[0-9A-F][0-9A-F].*$/ {print $1}' | tr -d '*'| xargs -rn1 postsuper -d