sed обработка логов. (обработка большого кол-ва лог файлов.)

На самом деле это единственный раздел про unix на этом форуме

Модератор: /dev/random

Аватара пользователя
Voler
Сообщения: 498
ОС: Fedora

sed обработка логов.

Сообщение Voler » 20.10.2019 20:43

Добрый день

Есть больше 2000 папок, в которых есть txt файлов.
Подскажите:
1. нужно обработать все файлы старше 1 дня,
2. удалить не нужные строки,
3. Повторяющиеся строки, нужно подсчитать и удалить дубли.

1. Файлы старше -type f -mtime +1 найти можно так
2. sed -i '/BPDU/d;/username/d' удалить строки содержащие слова.
3. Как обработать дублирующие строки, тут решение не нашел.

Скажу, дополнительно логи собираются syslog-ng, в нем есть параметр отвечающий за подсчет дублирующих сообщений, но выставлять большое значение побоялся сейчас стоит 600 сек.
Спасибо сказали:

Аватара пользователя
Bizdelnick
Модератор
Сообщения: 16052
Статус: grammatikführer
ОС: Debian GNU/Linux

Re: sed обработка логов.

Сообщение Bizdelnick » 20.10.2019 20:54

Voler писал(а):
20.10.2019 20:43
Повторяющиеся строки, нужно подсчитать и удалить дубли.
Дубли, идущие подряд, или вообще все? Я так понимаю, сортировка строк в файле недопустима?
Пишите правильно:
в консоли
вкупе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:

Аватара пользователя
SLEDopit
Модератор
Сообщения: 4678
Статус: фанат консоли (=
ОС: GNU/Debian, RHEL

Re: sed обработка логов.

Сообщение SLEDopit » 20.10.2019 21:32

Без сортировки sed'ом сложно. На awk существенно проще (заодно и посчитать можно). Но это если файлы не очень большие.
UNIX is basically a simple operating system, but you have to be a genius to understand the simplicity. © Dennis Ritchie
The more you believe you don't do mistakes, the more bugs are in your code.
Спасибо сказали:

Аватара пользователя
Voler
Сообщения: 498
ОС: Fedora

Re: sed обработка логов.

Сообщение Voler » 20.10.2019 22:16

в логах есть поле дата. Можно до последнего повтора объединять.
Спасибо сказали:

Аватара пользователя
Bizdelnick
Модератор
Сообщения: 16052
Статус: grammatikführer
ОС: Debian GNU/Linux

Re: sed обработка логов.

Сообщение Bizdelnick » 20.10.2019 22:59

SLEDopit писал(а):
20.10.2019 21:32
Без сортировки sed'ом сложно. На awk существенно проще (заодно и посчитать можно).
Тогда уж perl лучше, фигли.
Voler писал(а):
20.10.2019 22:16
Можно до последнего повтора объединять.
Не понял. Можно пример?
Пишите правильно:
в консоли
вкупе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:

Аватара пользователя
Voler
Сообщения: 498
ОС: Fedora

Re: sed обработка логов.

Сообщение Voler » 21.10.2019 09:34

Во вложении кусок лога, если нужно могу в личку дать более объемный.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Спасибо сказали:

Аватара пользователя
Bizdelnick
Модератор
Сообщения: 16052
Статус: grammatikführer
ОС: Debian GNU/Linux

Re: sed обработка логов.

Сообщение Bizdelnick » 21.10.2019 10:07

Я имел в виду пример того, что нужно сделать. Что понимается под «объединением»?
Пишите правильно:
в консоли
вкупе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:

Аватара пользователя
Voler
Сообщения: 498
ОС: Fedora

Re: sed обработка логов.

Сообщение Voler » 21.10.2019 10:50

Oct 20 04:10:08 172.18.61.176 interface,info ether2 link down
Oct 20 04:10:14 172.18.61.176 interface,info ether2 link up (speed 100M, full duplex)
Oct 20 04:10:17 172.18.61.176 bridge,stp ether2 learning
Oct 20 04:10:17 172.18.61.176 bridge,stp ether2 forwarding
Oct 20 04:10:25 172.18.61.176 interface,info ether2 link down
Oct 20 04:10:27 172.18.61.176 interface,info ether2 link up (speed 100M, full duplex)
Oct 20 04:10:25 172.18.61.176 interface,info ether2 link down
Oct 20 04:10:27 172.18.61.176 interface,info ether2 link up (speed 100M, full duplex)
Oct 20 04:10:25 172.18.61.176 interface,info ether2 link down
Oct 20 04:10:27 172.18.61.176 interface,info ether2 link up (speed 100M, full duplex)

Это объединить, только если строки одинаковые рядом.
Oct 20 04:10:30 172.18.61.176 bridge,stp ether2 learning
Oct 20 04:10:30 172.18.61.176 bridge,stp ether2 forwarding
Спасибо сказали:

Аватара пользователя
Bizdelnick
Модератор
Сообщения: 16052
Статус: grammatikführer
ОС: Debian GNU/Linux

Re: sed обработка логов.

Сообщение Bizdelnick » 21.10.2019 11:13

Voler писал(а):
21.10.2019 10:50
Это объединить, только если строки одинаковые рядом.
Всё равно не понял, что значит «объединить». В результате-то что должно получиться?
Пишите правильно:
в консоли
вкупе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:

Аватара пользователя
Voler
Сообщения: 498
ОС: Fedora

Re: sed обработка логов.

Сообщение Voler » 21.10.2019 11:19

Oct 20 04:10:25 172.18.61.176 interface,info ether2 link down (message was repeated 3 times)
Oct 20 04:10:27 172.18.61.176 interface,info ether2 link up (speed 100M, full duplex) (message was repeated 3 times)
Спасибо сказали:

Аватара пользователя
Bizdelnick
Модератор
Сообщения: 16052
Статус: grammatikführer
ОС: Debian GNU/Linux

Re: sed обработка логов.

Сообщение Bizdelnick » 21.10.2019 13:20

Погдите, ерунда какая-то. Во-первых, получается повтор не одной, а двух строк. Во-вторых, то, что время тоже повторяется — это часть условия задачи, или Вы просто скопировали эти строки, а в реальности оно будет разным?
Ну и потом, с чисто практической точки зрения, если сеть постоянно отваливается, это повод для беспокойства, и негоже представлять это в логе как единичный отвал.
Пишите правильно:
в консоли
вкупе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:

Аватара пользователя
Voler
Сообщения: 498
ОС: Fedora

Re: sed обработка логов.

Сообщение Voler » 21.10.2019 14:13

Я согласен, что постоянный отвал не хорошо. Но при этом, я же не удалять хочу, а сократить кол-во записей.
Повтор двух строк, верно. Но я не прошу их рассматривать совместно.
Конечно скопировал, для примера.
Последний раз редактировалось Voler 21.10.2019 14:19, всего редактировалось 2 раза.
Спасибо сказали:

Аватара пользователя
Bizdelnick
Модератор
Сообщения: 16052
Статус: grammatikführer
ОС: Debian GNU/Linux

Re: sed обработка логов.

Сообщение Bizdelnick » 21.10.2019 14:16

На вопрос-то ответьте. Ну и если подразумевается удаление повтора неопределённого количества разных строк, то задача простого решения не имеет (а сложное будет крайне неэффективным).
Пишите правильно:
в консоли
вкупе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:

Аватара пользователя
Voler
Сообщения: 498
ОС: Fedora

Re: sed обработка логов.

Сообщение Voler » 21.10.2019 14:19

Ответил
Спасибо сказали:

Аватара пользователя
Bizdelnick
Модератор
Сообщения: 16052
Статус: grammatikführer
ОС: Debian GNU/Linux

Re: sed обработка логов.

Сообщение Bizdelnick » 21.10.2019 15:10

Voler писал(а):
21.10.2019 14:13
Повтор двух строк, верно. Но я не прошу их рассматривать совместно.
А каким образом их надо рассматривать? Опишите желаемый алгоритм словами (или псевдокодом).
Пишите правильно:
в консоли
вкупе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:

Аватара пользователя
SLEDopit
Модератор
Сообщения: 4678
Статус: фанат консоли (=
ОС: GNU/Debian, RHEL

Re: sed обработка логов.

Сообщение SLEDopit » 22.10.2019 21:50

Bizdelnick писал:
20.10.2019 22:59
Тогда уж perl лучше, фигли.
Питона на тебя нет :)
UNIX is basically a simple operating system, but you have to be a genius to understand the simplicity. © Dennis Ritchie
The more you believe you don't do mistakes, the more bugs are in your code.
Спасибо сказали:

Аватара пользователя
Voler
Сообщения: 498
ОС: Fedora

Re: sed обработка логов.

Сообщение Voler » 29.10.2019 22:39

пока оптимизирую syslog-ng, но вопрос обработки логов остался.
Спасибо сказали: