Skip to content
This repository has been archived by the owner on Aug 8, 2021. It is now read-only.
Meettya edited this page Sep 13, 2010 · 5 revisions



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.

Clone this wiki locally