Страница 1 из 1
Вывести в роли переменной каждую строку
Добавлено: 2012-10-22 18:08:00
levantuev
Здравствуйте! У меня две задачи. Помогите люди умный и добрые их решить.
1. Мне необходимо как-то понять какие НОВЫЕ строки появились за последние 10 секунд в файле,
2. Получится многострочный результат и этот результат вывести в роли переменной каждую строку.
Привожу пример:
В /var/log/messages постоянно пишется информация.
1. Нужно как-то вычислить что за 10 секунд появились новые строки такого вида:
Код: Выделить всё
Server kernel: pid 71863 (httpd), uid 0: exited on signal 10 (core dumped)
Server last message repeated 2 times
Server last message repeated 2 times
Server last message repeated 2 times
2. Каждую строку объявить в роли переменной, допустим $str[1], $str[2], $str[3], $str[4].....
?????
Re: Вывести в роли переменной каждую строку
Добавлено: 2012-10-22 18:40:04
mak_v_
man tail
Re: Вывести в роли переменной каждую строку
Добавлено: 2012-10-22 19:24:34
levantuev
mak_v_ писал(а):man tail
надеюсь вы не имеете ввиду tail -n !!!!! Изъясните поконкретнее ваше предложение...
Re: Вывести в роли переменной каждую строку
Добавлено: 2012-10-22 19:51:52
levantuev
С первой проблемой разобрался путем использование logtail , теперь нужно понять как сделать пермеменной каждую строку.
Re: Вывести в роли переменной каждую строку
Добавлено: 2012-10-22 20:14:41
mak_v_
levantuev писал(а):mak_v_ писал(а):man tail
надеюсь вы не имеете ввиду tail -n !!!!! Изъясните поконкретнее ваше предложение...
За Вас писать скрипт? Нет уж, извольте читать маны. Я Вам направление подбрасываю где почитать.
Re: Вывести в роли переменной каждую строку
Добавлено: 2012-10-22 20:18:21
levantuev
mak_v_ писал(а):levantuev писал(а):mak_v_ писал(а):man tail
надеюсь вы не имеете ввиду tail -n !!!!! Изъясните поконкретнее ваше предложение...
За Вас писать скрипт? Нет уж, извольте читать маны. Я Вам направление подбрасываю где почитать.
не вижу направление "где" вижу направление "что"

Re: Вывести в роли переменной каждую строку
Добавлено: 2012-10-22 20:19:41
mak_v_
Попробуйте почитать умные книги, сходить на курсы, сдать экзамены и практика..практика...глядишь и прозреете
Re: Вывести в роли переменной каждую строку
Добавлено: 2012-10-22 20:25:34
levantuev
mak_v_ писал(а):Попробуйте почитать умные книги, сходить на курсы, сдать экзамены и практика..практика...глядишь и прозреете
зачем?
Re: Вывести в роли переменной каждую строку
Добавлено: 2012-10-22 20:33:00
levantuev
Вопрос почти решен:
Код: Выделить всё
#!/bin/sh
vars=`/usr/local/bin/logtail /var/log/messages`
for i in $vars; do fetch "http://127.0.0.1/?res=$i" >/dev/null 2>&1; done
Только вот for читает по словам а не по строкам. Как сделать что-бы по строкам считал? а так все отлично работает...
Re: Вывести в роли переменной каждую строку
Добавлено: 2012-10-22 22:10:49
FiL
read
Re: Вывести в роли переменной каждую строку
Добавлено: 2012-10-22 22:45:00
levantuev
FiL писал(а):read
Код: Выделить всё
vars=`/usr/local/bin/logtail /var/squid/logs/access.log | awk '{print $8 " | " $3 " | " $7}' > file`
while read LINE; do
fetch "http://127.0.0.1/?res=$LINE" >/dev/null 2>&1
done < file
РЕШЕНО!
Re: Вывести в роли переменной каждую строку
Добавлено: 2012-10-23 10:03:15
kpp
Гм..
А где отслеживание
строки появились за последние 10 секунд в файле
?
Re: Вывести в роли переменной каждую строку
Добавлено: 2012-10-23 11:04:52
levantuev
kpp писал(а):Гм..
А где отслеживание
строки появились за последние 10 секунд в файле
?
Решит это:
Как тут писал очень умный человек

Re: Вывести в роли переменной каждую строку
Добавлено: 2012-10-23 11:21:55
kpp
levantuev писал(а):kpp писал(а):Гм..
А где отслеживание
строки появились за последние 10 секунд в файле
?
Решит это:
Как тут писал очень умный человек

"Это" отобразит последние n строк из файла.
В Вашем,
levantuev, решении я тоже не наблюдаю выборку именно за последние 10 секунд.
Поэтому что именно решено, и почему именно logtail (которой нет по дефолту во FreeBSD), а не просто tail, не понятно.
Re: Вывести в роли переменной каждую строку
Добавлено: 2012-10-23 16:28:59
FiL
kpp писал(а):Гм..
А где отслеживание
строки появились за последние 10 секунд в файле
?
-s 10
Собственно, как я понимаю, это единственное преимущество перед tail -f. Позволяет задать интервал проверки.
Re: Вывести в роли переменной каждую строку
Добавлено: 2012-10-23 16:51:16
mak_v_
на сколько я понял, человек пишет с нуля анализатор логов для сквида...так сказать "злобно парсит логи и мозг".
tail как и sarg, free-sa, ligtsquid, squidpb, stc и многие другие просто и иронично тупо не подходят очень умным.
Re: Вывести в роли переменной каждую строку
Добавлено: 2012-11-20 16:09:57
mak_v_
иПАТЬ.....БЕЙТЕ ИХ