Home
MTA log searcher.
$VERSION 0.4.1
Данный скрипт предназначен для поиска в логах MTA вхождения информации о обработке письма, заданного параметрами MESSAGE-ID|ADDRESS в временном промежутке START/END (любое время или оба опция) по идентификатору MTA ID.
Вызывается с аргументами – START]/[END MESSAGE-ID|ADDRESS FILELOG
./mtalog [START]/[END] MESSAGE-ID|ADDRESS FILELOG
./mtalog 0426T/0427T101231 ya@ya.ru maillog.log ./mtalog /0824T ya@ya.ru maillog.log ./mtalog ya@ya.ru maillog.log
Скрипт может отслеживать обработку определенного письма внутри MTA
по сообщениям в log файле. Скрипту передается временной интервал,
в котором надо искать сообщения, и, либо message-id сообщения,
либо адрес from или to сообщения. Скрипт должен определить
уникальный ID первого сообщения, присвоенный ему MTA и вывести ВСЕ
записи из лог файла в заданном временном промежутке, относящиеся к
данному ID. В случае, когда указан адрес from или to сообщения, и
в указанном промежутке времени есть несколько сообщений с
заданными адресами, нужно выводить записи из лог файла, только для
первого сообщения.
Скрипт может быть вызван как:
mtalog [START]/[END] MESSAGE-ID|ADDRESS FILELOG
START и END – это соотвественно начальное и конечное время, внутри
которого требуется производить обработку. Время задается в ISO
8601 restricted time format (см. прим. 1).
MESSAGE-ID – это ID сообщения.
ADDRESS – это from или to email адрес
FILE.LOG – имя файла, в котором осуществляем поиск
Последовательность перечисления аргументов вызова – любая, время – опционально, в этом случае поиск ведется от начала до завтрашней полночи.
Meettya <meettya@gmail.com>
1. Не учтен переход через Новый Год 1231T235959 -> 0101T000000 ни в логе ни при вызове скрипта
2. Не реализован интерфейс с ключами аргументов для однозначной интерпретации аргументов вызова, его заменяет синтаксический разбор.
Примечание 1.
ISO 8601 restricted time format
The lead-in character for a restricted ISO 8601 time is an `@'-sign. The particular format of the time in restricted ISO 8601 is: [[[[[cc]yy]mm]dd][T[hh[mm[ss]]]]]. Optional date fields default to the appropriate component of the current date; option- al time fields default to midnight; hence if today is January 22, 1999, the following date specifications are all equivalent:
`19990122T000000' `990122T000000' `0122T000000' `22T000000' `T000000' `T0000' `T00' `22T' `T' `'
Примечание 2.
Формат строки MTA LOG
Apr 26 04:23:40 hosting postfix/cleanup[23665]: C3F8C11770D: \ message-id=<20010426002334.C3F8C11770D@hosting.agava.ru>
VERSION 0.4.1 – добавлен парсер входных параметров, можно указывать БЕЗ даты вообще или только начало или только конец времени. Указание параметров – в любой последовательности.
VERSION 0.3.1 – добавлено автодополнение даты, дату можно указать пустым слешом ‘/’ что означает от начала файла до ЗАВТРА. Этого вполне хватит для поиска по всему файлу.
VERSION 0.2.1 – добавлен ``грязный’’ индекс для ускорения поиска начала временной границы
VERSION 0.1.1 – поиск возможных совпадений до момента определения MTA_ID вынесен в отдельный поток для ускорения процесса.
Moscow, fall 2009.