powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Unix-системы [игнор отключен] [закрыт для гостей] / Лог с пАрными сообщениями: как найти фрагменты, где нарушается пАрность ?
6 сообщений из 6, страница 1 из 1
Лог с пАрными сообщениями: как найти фрагменты, где нарушается пАрность ?
    #37596077
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hi all

Есть некий лог, состоящий из таких примерно блоков:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
Tue Dec 27 06:28:13 2011: ******************* start monitor ********************

Handle schema01
Tue Dec 27 06:28:13 2011: Connected to: 192.168.0.1:/var/db/some/file01
Tue Dec 27 06:28:13 2011: Connected to: 192.168.0.2:/var/db/some/file02
Conflicts:        0
Errors   :        0

Handle schema02
Tue Dec 27 06:28:14 2011: Connected to: 192.168.0.3:/var/db/some/file03
Conflicts:        0
Errors   :        0

TOTAL STATISTICS:
Conflicts:        0
Errors   :        0

Tue Dec 27 06:28:14 2011: Disconnected from: 192.168.0.2:/var/db/some/file02
Tue Dec 27 06:28:14 2011: Disconnected from: 192.168.0.3:/var/db/some/file03
Tue Dec 27 06:28:14 2011: Disconnected from: 192.168.0.1:/var/db/some/file01

Tue Dec 27 06:28:14 2011: ***************** monitor finished *******************
Tue Dec 27 06:28:44 2011: ******************* start monitor ********************
...
Tue Dec 27 06:28:46 2011: ***************** monitor finished *******************
и т.п.

Лог очень большой, сотни мегов.
В нём в результате некорректного срубания монитора есть блоки, в которых присутствует фраза "start monitor", а финиша - нет. То есть, должны быть блоки с двумя строками "start monitor" (разделенные текстом с информацией).

Кол-во строк между start и finished - РАЗНОЕ, там может быть очень много инфы.

ВОПРОС. Как выловить такие блоки, в которых есть 'start' но нет соотв-щего ему 'finish'a ?
...
Рейтинг: 0 / 0
Лог с пАрными сообщениями: как найти фрагменты, где нарушается пАрность ?
    #37596101
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Таблоид,

ИМХО на awk должно довольно просто получится. Вариант в лоб: по старту пишем строки в буфер, по финишу очищаем буфер, но если все же встретился старт - печатаем буфер и очищаем. Так как то.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Лог с пАрными сообщениями: как найти фрагменты, где нарушается пАрность ?
    #37596561
Ivan_Pisarevsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
можно грепом выкусить строки с контекстом "monitor", потом то что получилось прицепить обратно к файрберду в виде экстернал тэйбл, ну а дальше не мне тебе объяснять как select-ом отобрать то, что нужно.
...
Рейтинг: 0 / 0
Лог с пАрными сообщениями: как найти фрагменты, где нарушается пАрность ?
    #37596622
--null--
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
можно ещё uniq-ом отобрать только повторяющиеся строки из шаблона и сразу для удобства выводить номер строки в файле
например

Код: php
1.
2.
3.
4.
5.
6.
#!/bin/sh

start="monitor finished"
finish="start monitor"

nl -b a  log.txt | egrep  'start|finish' |  sed -e 's/ *//' -e "s/\([0-9]*\).*\($start\).*/\1 \2/" -e 's/ *//' -e 's/\([0-9]*\).*\($finish\).*/\1 \2/' | uniq -f 1 -D



правда, три конвейра, может на сотнях метров было бы долго и лучше написать скриптик на awk или perl
...
Рейтинг: 0 / 0
Лог с пАрными сообщениями: как найти фрагменты, где нарушается пАрность ?
    #37596637
--null--
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
иль awk

Код: php
1.
awk 'BEGIN{st="start monitor";fn="monitor finished";flag=0}{if($0~st){if(flag==1){print "error at line "NR};flag=1}; if($0~fn){flag=0} }' < log.txt
...
Рейтинг: 0 / 0
Лог с пАрными сообщениями: как найти фрагменты, где нарушается пАрность ?
    #37596708
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
--null--иль awkработает, спасибо! :-)
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Unix-системы [игнор отключен] [закрыт для гостей] / Лог с пАрными сообщениями: как найти фрагменты, где нарушается пАрность ?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]