LINUX.ORG.RU

парсинг лога и более


0

2

Подскажите как можно парсить лог, желательно в режиме реального времени или с периодом и выполнять определенное действие, например при нахождении в логе «error 8»

если «error 8» выполнить скрипт 8.sh

и как не парсить его полностью, заного после этого, а продолжать дальше.

Спасибо.


> и как не парсить его полностью, заного после этого, а продолжать дальше.

logtail

uspen ★★★★★
()
tail -f <logfile | while read line; do \
if echo $line | grep 'error 8'; then \
    ./8.sh \
elif echo $line | grep 'some other error'; then \
    ./some_other_script.sh \
fi;
schizoid ★★★
()
Ответ на: комментарий от arsi

спасибо, я понял, что мне этого мало, а как код ошибки занести в переменную? например ожидать errorN где N может быть от 001 до 650, вот надо это N занести в переменную.

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

Ну awk вроде подходит.

anonymous
()
Ответ на: комментарий от Averus

>спасибо, я понял, что мне этого мало, а как код ошибки занести в переменную? например ожидать errorN где N может быть от 001 до 650, вот надо это N занести в переменную.

ERROR_CODE=`sed -rn 's/^error([0-9]+)$/\1/p'`[[/code]]
drBatty ★★
()
Ответ на: комментарий от drBatty

+ и (, ) маскировать \ надо, не?

И строка из лога это не только «error<some digits>». Для сислога больше характерно «<timestamp>: error<errcode>: error description»

Я бы написал так:

ERROR_CODE=`sed -ne 's/error\([0-9]\+\)/\1/gp'`;
if [[-n ${ERROR_CODE}]]; then
...
fi
Delirium_veritas
()
Ответ на: комментарий от Delirium_veritas

>+ и (, ) маскировать \ надо, не?

не. читаем ман на предмет опции -r.

И строка из лога это не только «error<some digits>».

мне не дали не только денег за работу, но и формат исходного файла. :)

Я бы написал так...

А так?

ERROR_CODE=`sed -rn 's/^error([0-9]+)$/\1/p;t;i 74'`

ведь дальнейший скрипт полагает, что ERROR_CODE это число.

ЗЫЖ буква 'g' у вас лишняя, да и вообще работать такое не будет

echo «10-10-10 : error666: error description» | sed -ne 's/error\([0-9]\+\)/\1/gp'

10-10-10 : 666: error description

и опция -e тоже не нужна.

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