Имеется ряд вещей, которые Вы можете использовать, чтобы сделать
управление sendmail более эффективным. Ряд
инструментальных средств управления обеспечивается пакетом
sendmail.
Почтовая очередь хранится в каталоге
/var/spool/mqueue. Программа
sendmail обеспечивает средства показа форматируемого
списка всех помещенных в очередь сообщений почты и их состояния.
Команда /usr/bin/mailq ведет себя идентично:
# sendmail -bp
Вывод отображает message ID, размер, время помещения в очередь, кто послал
письмо и сообщение, указывающее текущее состояние. Следующий пример
показывает сообщение почты, увязшее в очереди с проблемой:
Если Вы используете временное подключение к Internet по модему с
фиксированным (fixed) IP-адресом и полагаетесь на
MX-хост для сбора почты в то время, когда соединение не установлено, Вы
найдете очень полезной возможность вынудить MX-хост обрабатывать очередь
почты после того, как Вы устанавливаете связь.
Маленькая программа на языке perl включена в пакет
sendmail именно для этого. Скрипт
etrn имеет тот же эффект на удаленном хосте, какой
команда runq имеет на Вашем. Если мы вызываем команду
etrn, как показано в этом примере:
# etrn vstout.vbrew.com
то хост vstout.vbrew.com будет обрабатывать любую
почту, поставленную в очередь для нашей локальной машины.
Обычно стоит добавить эту команду к скрипту PPP
ip-up, чтобы она была выполнена сразу после того,
как сетевое подключение будет установлено.
Пакет sendmail собирает данные относительно объемов
передачи почты и некоторую информацию относительно хостов, которым она была
доставлена. Там есть две команды, чтобы отображать эту информацию:
mailstats и hoststat.
Команда mailstats отображает статистику по объему
почты, обработанной sendmail. Время, за которое была
собрана информация, печатается в начале, за ним следует таблица с одной
строкой для каждого конфигурированного транспорта и одной, показывающей общее
количество всей почты. Каждая строка представляет восемь элементов:
Поле
Значение
M
Транспортный протокол
msgsfr
Число принятых сообщений
bytes_from
Объем принятой почты в килобайтах
msgsto
Число переданных сообщений
bytes_to
Объем передаиной почты в килобайтах
msgsreg
Сколько сообщений отклонено
msgsdis
Сколько сообщений пропущено
Mailer
Имя транспортного агента
Образец вывода команды mailstats показан в
примере 18-5.
Пример 18-5. Образец вывода команды mailstats
#/usr/sbin/mailstats
Statistics from Sun Dec 20 22:47:02 1998
M msgsfr bytes_from msgsto bytes_to msgsrej msgsdis Mailer
0 0 0K 19 515K 0 0 prog
3 33 545K 0 0K 0 0 local
5 88 972K 139 1018K 0 0 esmtp
=============================================================
T 121 1517K 158 1533K 0 0
Эти данные будут собраны, если опция StatusFile в
sendmail.cf включена и файл состояния существует.
Обычно Вы добавили бы следующее к sendmail.cf:
# status file
O StatusFile=/var/log/sendmail.st
Для перезапуска сбора статистики, Вы должны обнулить файл статистики:
Команда hoststat отображает информацию относительно
состояния хостов, которым sendmail попытался доставить
почту. Вызов hoststat эквивалентен вызову:
sendmail -bh
Вывод представляет каждый хост на своей строке, и для каждого указывается
время доставки почты и ее состояние.
Пример 18-6 показывает
образец вывода команды hoststat. Обратите внимание на
то, что большинство результатов указывают на успешную доставку. Результат для
earthlink.net, с другой стороны, указывает на то, что
доставка была неудачна. Сообщение состояния может иногда помочь определить
причину сбоя. В этом случае, подключение было закрыто по окончании тайм-аута
потому, что хост был выключен или недоступен.
Пример 18-6. Образец вывода команды hoststat
#hoststat
-------------- Hostname ---------- How long ago ---------Results---------
mail.telstra.com.au 04:05:41 250 Message accepted for
scooter.eye-net.com.au 81+08:32:42 250 OK id=0zTGai-0008S9-0
yarrina.connect.com.a 53+10:46:03 250 LAA09163 Message acce
happy.optus.com.au 55+03:34:40 250 Mail accepted
mail.zip.com.au 04:05:33 250 RAA23904 Message acce
kwanon.research.canon.com.au 44+04:39:10 250 ok 911542267 qp 21186
linux.org.au 83+10:04:11 250 IAA31139 Message acce
albert.aapra.org.au 00:00:12 250 VAA21968 Message acce
field.medicine.adelaide.edu.au 53+10:46:03 250 ok 910742814 qp 721
copper.fuller.net 65+12:38:00 250 OAA14470 Message acce
amsat.org 5+06:49:21 250 UAA07526 Message acce
mail.acm.org 53+10:46:17 250 TAA25012 Message acce
extmail.bigpond.com 11+04:06:20 250 ok
earthlink.net 45+05:41:09 Deferred: Connection time
Команда purgestat сбрасывает собранные
статистические данные и является эквивалентной вызову:
# sendmail -bH
Статистика продолжит расти, пока Вы не очистите (сбросите) ее. Вы могли бы
периодически выполнять команду purgestat, чтобы искать
недавние записи, особенно, если Вы имеете сильно загруженный сайт. Вы могли
бы поместить команду в файл crontab, чтобы очистка
статистики выполнялась автоматически, или делать это только непосредственно.