LINUX.ORG.RU

Удаленная обработка лога


0

0

Посоветуйте, пожалуйста, как лучше обрабатывать последние записи регулярно обновляемого лога. По последовательному порту я периодически прохожу авторизацию на устройстве типа DIGI-порта, который далее туннелирует мне канал на консоль сервера SOLARIS, где я перехожу в необходимый каталог и работаю с файлом лога.

Я думал делать так:

сначала опеределяю текущее число строк: export set newLineCount=`wc -L log.txt | awk '{print $1}'`

затем вывожу на консоль или в файл содержимое следующих команд: echo $newLineCount tail log.txt -n $newLineCount-$oldLuneCount

Переменная newLineCount в следующем сеансе будет играть роль oldLuneCount, а результат работы команды tail обрабатываю далее с помощью Python

На счет всего этого сомневаюсь, т.к. если во время выаолнения этого конвейера произойдет очередная записб в лог, я потреяю строку(-и).


Ответ на: комментарий от birdie

Так и думал, что будет предложен именно такой вариант. Но как я из MAN-а понял - это вариант для ONLINE. Но он мне не подходит, т.к. я периодически "прикладываюсь" к хосту и не держу соединение постоянно открытым.

gtyrin
() автор топика

наверное, так лучше:

tail -L=+$oldLineCount

Если я правильно все понял из MAN-а, то она будет копать от заданной позиции и до обеда (до конца файла) :-)

gtyrin
() автор топика

Самый правильный способ -- это перед обработкой лога, сказать программе начать писать лог в новый файл, а старый спокойно обработать.

Иначе прочитать man nohup или поставить screen и прочитать man screen.

$ nohup ./log_parser.sh
$ cat log_parser.sh
#!/bin/sh
tail -f file.log | python_parser >> ./results.log

И при каждом заходе рассматривать results.log

sdio ★★★★★
()
Ответ на: комментарий от sdio

у меня не будет доступа на изменение к этому серверу и ресурсу

gtyrin
() автор топика
Ответ на: комментарий от gtyrin

А не пошли бы вы со своими вечно меняющимися условиями?
Сразу надо писать в вопросе все граничные условия, съэкономил бы всем время.

sdio ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.