Вперед Return Содержание

11. Администрирование

11.1 Как мне сказать qmail перечитать locals и virtualdomains?

Я только изменил эти файлы; qmail-send продолжает работать со старыми файлами.

Ответ:

Найдите процесс qmail-send и пошлите ему сигнал HUP. Альтернативный способ, если qmail под управлением supervise ---смотрите вопрос Как мне запустить qmail под управлением supervise?:

svc -h /service/qmail

Вы можете также перестартовать qmail ---смотрите ответ на Как мне безопасно остановить qmail-send?. qmail-send прочтет новые файлы когда стартует.

11.2 Как мне безопасно остановить qmail-send?

Когда мы работали с sendmail, всегда было трудно остановить sendmail без риска потерять текущие доставки; что мне нужно сделать с qmail-send?

Ответ:

Найдите процесс qmail-send, пошлите ему сигнал TERM. Он прекратит работу после полной остановки текущих доставок. Подождите появления в логе слова exiting (завершение). Чтобы перестартовать qmail, запустите /var/qmail/rc также, как он запускается из скрипта загрузки системы с правильно прописанным PATH, лимитами ресурсов, и т.п.

Альтернативный способ, если qmail под управлением supervise ---смотрите вопрос Как мне запустить qmail под управлением supervise?:

svc -t /service/qmail

Процесс supervise пошлет qmail сигнал останова, дождется его остановки, и перезапустит его. Используйте -d вместо -t, если Вы не хотите, чтобы qmail автоматически перезапустился; чтобы загрузить его потом, используйте -u.

11.3 Как мне вручную управлять очередью сообщений?

Мне хотелось бы, чтобы qmail попытался доставить все сообщения для удаленных получателей прямо сейчас.

Ответ:

Найдите процесс qmail-send и пошлите ему сигнал ALRM. Альтернативный способ, если qmail под управлением supervise ---смотрите Как мне запустить qmail под управлением supervise?:

svc -a /service/qmail

Вы можете запустить сперва qmail-tcpok, чтобы убедиться, что qmail-remote свяжется со всеми получателями. Обычно, если несколько раз происходит сбой передачи какого-либо сообщения, qmail-remote откладывает его доставку на час.

11.4 Как мне запустить qmail под управлением supervise?

svc выглядит полезным.

Ответ:

Установите пакет daemontools версии 0.60 или выше ( http://pobox.com/~djb/daemontools.html ) Убедитесь, что путь до supervise прописан в PATH при загрузке системы. Создайте каталог /service/qmail:

mkdir /service/qmail
ln -s /var/qmail/rc /service/qmail/run

Измените строку

/var/qmail/rc

на

supervise /service/qmail

в скрипте загрузки. Теперь Вы можете использовать svc для управления qmail, и svstat для проверки, загружен ли qmail.

11.5 Как мне отказаться от использования syslog?

Он "съедает" много процессорного времени и пропускает регистрационные данные при высоких загрузках.

Ответ:

Установите daemontools 0.60 или выше ( http://pobox.com/~djb/daemontools.html ) Создайте каталог /var/log/qmail, принадлежащий qmaill, с правами 2700. Замените строку

splogger qmail

в /var/qmail/rc на

 
multilog t /var/log/qmail

Убедитесь, что путь до multilog есть в PATH при загрузке системы.

По умолчанию, multilog сохраняет 10 автоматически заменяемых (rotated) лог-файлов, каждый до 100KB. Для сохранения 20 файлов по 1MB, используйте multilog t s1000000 n20 /var/log/qmail.

Если Вы записываете соединения tcpserver, создайте каталог /var/log/smtpd, и используйте multilog /var/log/smtpd для tcpserver. Не запускайте одновременно два процесса multilog с одним и тем же каталогом логов.

11.6 Как мне "омолодить" сообщение?

Кто-то снова сломал компьютер Эрика; он будет выключен, как минимум, еще два дня. Я знаю, что Эрик ждет важное сообщение. Фактически, оно уже пришло, я вижу его в очереди в /var/qmail/queue/mess/15/26902. Оно было в очереди шесть дней; что я могу сделать, чтобы завтра оно не было отослано обратно?

Ответ:

Просто выполните

touch /var/qmail/queue/info/15/26902.

Это единственный безопасный способ модификации очереди при работающем qmail.

11.7 Как мне сохранять копии всех входящих и исходящих сообщений?

Установите QUEUE_EXTRA в "Tlog\0" и QUEUE_EXTRALEN в 5 в extra.h. Пересоберите qmail. Поместите строку ./msg-log в ~alias/.qmail-log.

Вы можете также использовать QUEUE_EXTRA, например, записывать Message-ID каждого сообщения: поместите строку

| awk '/^$/ { exit } /^[mM][eE][sS][sS][aA][gG][eE]-/ { print }'

в ~alias/.qmail-log.


Вперед Return Содержание