пятница, 15 октября 2010 г.

Переполнение /var/spool/clientmqueue во FreeBSD

Во FreeBSD система генерирует достаточно много сообщений по работе системы,
которые складываются в /var/spool/clientmqueue.
Если у Вас не настроена отсылка данных уведомлений, то постепенно раздел /var заполнятся, в результате чего могут быть такие неприятные вещи, как прекращение нормальной работы mysql и перестают вестись остальные логи.
Если Вам не интересно получать кучу сообщений (либо настраивать их получение),
то можно сделать это следующим образом...

1. Отключить sendmail в /etc/rc.conf

sendmail_enable="NONE"
что эквивалентно

sendmail_enable="NO"
sendmail_submit_enable="NO"
sendmail_outbound_enable="NO"
sendmail_msp_queue_enable="NO"
2. Очищаем очередь сообщений.
Есть два варианта, можно использовать любой.
а) Грубое удаление содержимого очереди. Добавляем в /etc/crontab

# Удаление очереди писем для sendmail
10 1 * * * root /usr/bin/find /var/spool/clientmqueue -type f -delete
b) Отключаем генерацию сообщений.
Эти сообщения генерируются при выполнении задач periodic(man periodic), запускаемых через cron.
Их создание можно переопределить в /etc/periodic.conf (по умолчанию его нет и используется /etc/defaults/periodic.conf)

#cp /etc/defaults/periodic.conf /etc/periodic.conf
Меняем значение следующих опций с root на /dev/null

# cat /etc/periodic.conf|grep _output
daily_output="root"      # user or /file
daily_status_security_output="root"  # user or /file
weekly_output="root"     # user or /file
monthly_output="root"    # user or /file

Все :)

4 комментария:

  1. Спасибо, а то из за переполнения /var у меня база MySQL умерла, правда потом восстановил норм =)

    ОтветитьУдалить
  2. Спасибо большое! squid отвалился... но очисти папку clientmqueue за много лет её существования, прокся больше не падает ))

    если я правильно понял, то вместо "root" нужно написать "/dev/null" ?

    ОтветитьУдалить