Как удалить все сообщения в очередях Zimbra 8.8
Статья из разряда "Себе на заметку"
Так вышло, что на сервере, который я обслуживаю взломали один аккаунт и рассылали с него спам, при чем за пару часов успели отправить тысячи писем. Когда заметили, что идет ненормальная нагрузка - с влогах сразу нашли виновника, аккаунт временно заблокировали, поменяли пароли, установили дополнительные ограничения. Но статья не об этом, в очереди Zimbra накопились тысячи писем ожидающих отправку и тысячи, которые были отклонены и ждали следующей отправки. И так, задача была удалить все письма из Активной и Отклоненной очереди.
Из админки такое количество сообщений просто нереально, по этому нужно удалять через консоль. Для этого логинимся по ssh на сервер, заходим под рутом и вот список команд, которые нам могут понадобится:
Показать текущее количество сообщений в очередях
/opt/zimbra/libexec/zmqstat
Показать id сообщений в очередях
/opt/zimbra/common/sbin/postqueue -p
Показать текущие сообщения в очереди HOLD
/opt/zimbra/common/sbin/postsuper -h ALL
Удалить все сообщения из очереди DEFFERED
/opt/zimbra/common/sbin/postsuper -d ALL deferred
Удалить все сообщения из очереди HOLD
/opt/zimbra/common/sbin/postsuper -d ALL hold
Удалить все сообщения из очереди ACTIVE
/opt/zimbra/common/sbin/postsuper -d ALL active
Удалить сообщения из всех очередей
/opt/zimbra/common/sbin/postsuper -d ALL
Удалить конкретное сообщение из очередей по его id
/opt/zimbra/common/sbin/postsuper -d [MSGID из команды postqueue -p]