
drwxr-xr-x 2 smmsp smmsp 4.0K May 6 23:31 mqueue
drwxrws--- 2 smmsp smmsp 29M May 8 10:40 mqueue-client
Как вы видите, mqueue-client
заполнено 29 мегабайтами неотправленной почты. Похоже, это происходит из-за внутренней функции отправки почты на localhost, которая дает сбой.
Я пробовал многочисленные попытки очистить очередь, но ни одна из них не увенчалась успехом. Результатом является процесс, использующий значительные ресурсы ЦП:
16287 smmsp 20 0 50212 44m 2416 R 85 4.4 965:35.45 sendmail-msp
Я пробовал убивать процесс, останавливать службу sendmail, удалять содержимое mqueue-client и даже переключаться на пользователя smmsp. Но ничего не помогло. rm
зависает при попытке удалить почту.
Как мне очистить эту очередь?
Как только я это сделаю, я перенесу все в Postfix.
решение1
Как предположил Янне в комментариях, я просмотрел свои syslog
письма и обнаружил много ошибок, связанных с невозможностью отправки, из-за чего они задерживались и скапливались в mqueue-client
папке.
После некоторых раскопок выяснилось,кронтабнастроен на почтовый корень при завершении/уведомлениях/предупреждениях/ошибках. Выпуск crontab -e
и добавление MAILTO=""
в начало конфигурации, больше не отправляется почта, проблема устранена!
Теперь я удаляю около 1,5 миллиона плохих писем с mqueue-client
помощью этого скрипта Bash:
#!/usr/bin/env bash
cd mqueue-client
deleted=0
for i in `ls`
do
rm -f $i
percentage=$(bc <<< "scale=2; ($deleted / 1035435) * 100")
((deleted++))
echo "Deleted $i. Files deleted $deleted. $percentage% complete."
done
Запустить из /var/spool с помощью./filename
Обновлять
К сожалению, после запуска этого скрипта всю ночь очередь почты не уменьшилась значительно. Это произошло потому, что я не отключил минутный запуск CRON, который был настроен на очистку очереди, но приводил к росту отставания. Надеюсь, теперь, когда он отключен, все должно очиститься.