Debian.pro

Блог для пользователей и администраторов Debian


Debian, maillog, выводим список всех, кто отправлял письма на наш сервер сегодня (ну или раньше)

Статья будет совсем маленькой. Сегодня понадобилось клиенту предоставить список всех почтовых ящиков, с которых ему на сервер отправлялись письма за текущие сутки.
Решение в общем то нашлось достаточно быстро (точнее оно витало в голове), но в назидание новичкам и потомках я его всё же запишу здесь.
Не забывайте про типографские кавычки wordpress, заменяйте их на обычные, когда вводите команды.
Собственно.
host1# cat /var/log/maillog | grep «from=<*" | grep -v "from=<>» | awk ‘{print $7}’ | sed ‘s/from=,//’ > /root/short_log

В файле /root/short_log вы увидите записи вида «reject:» Собственно, в тех строках были те письма, на которые не нужно обращать внимание. Либо на несуществующий ящик слались… либо ещё что-то. Исключим их из файла:
host1# cat /var/log/maillog | grep «from=<*" | grep -v "from=<>» | awk ‘{print $7}’ | sed ‘s/from=,//’ | grep -v «reject:» > /root/short_log1

Всё, теперь в файлике /root/short_log1 мы имеем список ящиков, которые отправляли нам сегодня письма. Модифицируем немного команду, чтобы все ящики выводились только 1 раз (а не 1 раз на каждое письмо):
host1# cat /var/log/maillog | grep «from=<*" | grep -v "from=<>» | awk ‘{print $7}’ | sed ‘s/from=,//’ | grep -v «reject:» | uniq > /root/short_log1

Ну и напоследок, я вам напомню про статью .bz2 и .gz логи. Как с ними работать. — для /var/log/maillogX.bz cat заменяем на bzcat, для /var/log/maillog.gz cat заменяем на zcat в начале команды.


Комментариев пока нет.

Написать комментарий