Статья будет совсем маленькой. Сегодня понадобилось клиенту предоставить список всех почтовых ящиков, с которых ему на сервер отправлялись письма за текущие сутки.
Решение в общем то нашлось достаточно быстро (точнее оно витало в голове), но в назидание новичкам и потомках я его всё же запишу здесь.
Не забывайте про типографские кавычки wordpress, заменяйте их на обычные, когда вводите команды.
Собственно.
host1# cat /var/log/maillog | grep «from=<*" | grep -v "from=<>» | awk ‘{print $7}’ | sed ‘s/from=/' | sed 's/>,//’ > /root/short_log
В файле /root/short_log вы увидите записи вида «reject:» Собственно, в тех строках были те письма, на которые не нужно обращать внимание. Либо на несуществующий ящик слались… либо ещё что-то. Исключим их из файла:
host1# cat /var/log/maillog | grep «from=<*" | grep -v "from=<>» | awk ‘{print $7}’ | sed ‘s/from=/' | sed 's/>,//’ | 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=/' | sed 's/>,//’ | grep -v «reject:» | uniq > /root/short_log1
Ну и напоследок, я вам напомню про статью .bz2 и .gz логи. Как с ними работать. — для /var/log/maillogX.bz cat заменяем на bzcat, для /var/log/maillog.gz cat заменяем на zcat в начале команды.
Комментариев пока нет.