Команда sendmail отслеживает работу почтовой подсистемы с помощью демона syslogd. Для этого необходимо, чтобы демон syslogd был настроен и запущен. В частности, файл /etc/syslog.conf может содержать следующую строку:
mail.debug /var/spool/mqueue/log
Если она отсутствует, добавьте эту строку в любом текстовом редакторе; убедитесь в правильности указанного пути. Если вы изменили файл /etc/syslog.conf когда демон syslogd был уже запущен, обновите демон syslogd с помощью следующей команды:
refresh -s syslogd
Если файл /var/spool/mqueue/log отсутствует, необходимо создать его с помощью следующей команды:
touch /var/spool/mqueue/log
Сообщения в файле протокола хранятся в следующем формате:
Каждая строка системного протокола включает системное время, имя системы (для создания общих протоколов локальной сети), слово sendmail: и, собственно, сообщение. Большинство сообщений представляют собой последовательность пар имя=значение.
При обработке каждого сообщения в
протокол обычно заносятся строки receipt и delivery
attempt. Строка receipt регистрирует получение
сообщения; для каждого сообщения будет создана одна такая запись.
Некоторые поля могут отсутствовать. К таким полям относятся:
Кроме того, в протокол заносится
строка delivery attempt для каждой попытки доставки (таким образом,
в случае задержки доставки или нескольких получателей на одно сообщение может
приходиться несколько таких строк). К таким полям относятся
следующие:
Ввиду большого объема регистрируемой информации, данные в файле протокола распределены в виде последовательности уровней. На низшем уровне в протокол заносятся лишь наиболее нестандартные ситуации. Высший уровень регистрирует даже самые незначительные события. Уровни ведения протокола до 10 включительно полезны для отслеживания обычной работы почтовой системы. Протоколы уровня 64 и выше предназначены для задач отладки. Уровни от 11 до 64 зарезервированы для подробных данных.
Типы действий, информацию о которых будет заносить в протокол команда sendmail, задаются опцией L в файле /etc/mail/sendmail.cf. (В предыдущих версиях до AIX 5.1, имя файла - /etc/sendmail.cf.)
К файлу протокола непрерывно добавляются новые данные, и поэтому он может стать очень большим. Кроме того, в случае ошибок в почтовую очередь могут заноситься самые неожиданные записи. Избежать ненужного разрастания почтовой очереди и файла протокола можно, запустив макрокоманду /usr/lib/smdemon.cleanu. Данный макрос вынуждает команду sendmail обрабатывать очередь и поддерживает четыре копии файла протокола, каждая последующая из которых старше предыдущей: log.0, log.1, log.2 и log.3. При каждом запуске макрокоманды происходит перемещение:
Таким образом, текущий протокол всегда записывается в только что созданный файл. Запускать эту макрокоманду можно вручную или через заданные промежутки времени с помощью демона cron.
Многие реализации Простого протокола передачи почты (SMTP) являются неполными. Например, некоторые протоколы SMTP для PC не поддерживают строки продолжения в кодах ответа. Поэтому их очень сложно отслеживать. Если у вас возникли подобные затруднения, рекомендуется включить ведение протокола загрузки (с помощью флага -X). Например:
/usr/sbin/sendmail -X /tmp/traffic -bd
Выполнение этой команды приведет к сохранению протокола обмена в файле /tmp/traffic.
При этом в протокол очень быстро заносится огромное количество информации. В стандартных условиях эту команду использовать не следует. После запуска этой команды отправьте с помощью неполной версии почтового протокола сообщение на главный компьютер. В файле будет зарегистрирован весь входящий и исходящий поток данных, обрабатываемых командой sendmail, включая и данные, передаваемые по протоколу SMTP.
С помощью флага SIGUSR1 команды sendmail можно заносить в протокол дамп открываемых файлов и кэша соединений. Приоритет записи этих результатов - LOG_DEBUG.
Команда sendmail отслеживает объем почты, обрабатываемой каждой из почтовых программ, с которыми она взаимодействует. Определения почтовых программ находятся в файле /etc/mail/sendmail.cf. (В предыдущих версиях до AIX 5.1, имя файла - /etc/sendmail.cf.)
Рис. 2-1. Почтовые программы, применяемые командой Sendmail. На иллюстрации представлена организационная диаграмма перевернутого типа. Наверху расположены Mail и MH. От них ответвляются bellmail, BNU и SMTP. Под предыдущим уровнем расположены локальный почтовый ящик, соединение UUCP и соединение TCP/IP, соответственно. Под соединениями UUCP и TCP/IP расположены удаленные почтовые ящики.
Для сбора статистических данных создайте файл /etc/mail/statistics. Введите следующую команду:
touch /etc/mail/statistics
Если во время записи статистических данных команда sendmail сталкивается с ошибкой, она записывает сообщение с помощью подпрограммы syslog. Эти ошибки никак не влияют на остальные операции команды sendmail.
Команда sendmail обновляет информацию каждый раз, когда она обрабатывает почту. При этом увеличивается не размер файла, а число файлов. Файл содержит данные об объеме обработанной почты со времени создания или очистки файла /etc/mail/statistics.
Примечание: В предыдущих версиях до AIX 5.1, статистические данные хранились в файле /var/tmp/sendmail.st.
Статистические данные хранятся в файле /etc/mail/statistics в формате базы данных, и их невозможно просмотреть с помощью средств работы с текстовыми файлами. Для просмотра статистических данных почтовой программы введите в командной строке следующую команду:
/usr/sbin/mailstats
Эта команда считывает данные из файла /etc/mail/statistics.st, форматирует их и выводит в следующем стандартном формате: Информация о выводе команды /usr/sbin/mailstats приведена в ее описании в книге AIX 5L Version 5.1 Commands Reference.