GithubHelp home page GithubHelp logo

maillog's Introduction

Анализатор логов postfix`а maillog

Введение.

Когда почтовый сервер обрабатывает письмо, он записывает в файл лога несколько строк. При большом почтовом трафике строки относящиеся к разным письмам перемешиваются, иногда записи относящиеся к одному письму отстоят друг от друга на несколько десятков строк. Это сильно мешает чтению логов. Чтобы решить эту проблему, в стародавние времена я написал скрипт на перле оригинальным названием maillog. Со временем в него добавлялся функционал, исправлялись ошибки. И теперь при возникновении вопросов с почтой, первое что мы делаем это запускаем этот скрипт.

Возможности.

Скрипт сканирует файлы логов, группирует строки по письмам. Записи выделяются цветом в зависимости от успешности доставки, подсвечиваются адреса.

Есть возможность фильтрации писем по отправителю и/или отправителю, ключи -f и -t соответственно.

Использую ключ -d можно задать дату или диапазон дат на которые выводить письма. Даты можно задавать в разных вариантах, например:

12.1.2010-15.1.2010 - показать письма с 12-го по 15-е включительно. 10.01.2010- - письма прошедшие с 10-го и позже. -12.01 - обратное предыдущему варианту, 12-го и ранее. Если опущен год или месяц, то подставляется текущие. - - вообще, всё что было 1.1.2010 - за 1-е января 2010 года. По умолчанию показываются письма за сегодняшний день.

Если есть желание увидеть только письма с ошибками, т.е. которые не были доставлены, можно использовать опцию -e.

Все перечисленные ключи можно использовать в любых комбинациях.

Есть поддержка файлов логов, сжатых после ротации.

Настройка.

Настроек не много :) В начале скрипта есть строка "my $filePattern='/var/log/mail/mail*.log';" в ней задается шаблон имени для логов почтового сервера.

Ограничения.

В логах пишется только дата и месяц, поэтому невозможно фильтровать письма по году. Вы всегда можете опускать год в опции -d. Если у кого есть мысли, пишите мне.

У меня месяц в логе пишется по английски Jan, Feb и.т.д., если у кого-то они на русском, добавьте русские элементы в хеш %MONTHS.

Скрипт работает только с логами postfix`а. Я сейчас не помню сильно отличаются логи у других серверов, возможно реально добавить поддержку других программ.

Использование (help).

maillog [-d DATE] [-f FROM] [-t TO] [-e] [-h] [-V]

Показывает записи в почтовом логе для писем идущих с адреса FROM к адресу TO за период указаный в опции DATE.

    -f  FROM    почтовый адрес отправителя (или его часть).

    -t  TO      почтовый адрес получателя (или его часть).

    -d  DATE    выводить отчет за указанный период, если опция пропущена выводятся записи только за текущий день.

        DD/MM/YY-DD/MM/YY   Полный формат:

        -DD/MM/YY           Пропущена начальная дата:
                            будут показаны записи с 1 января 1970 года.

        DD/MM/YY-           Пропущена конечная дата:
                            будут показаны записи до текущей даты.

        -                   Пропущена как начальная, так и конечная даты:
                            будут показаны записи с 1 января 1970 года до
                            текущей даты.

    -e          показывать только недоставленные сообщения.

    -h          показать страницу помощи.

    -V          показать версию программы и лицензию.

Лицензия GPLv2.

This program is free software; you can redistribute it and/or modify t under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version.

maillog's People

Contributors

sokoloffa avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.