Вывести в роли переменной каждую строку

Программирование на sh, быть может немного про альтернативные языки
Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
levantuev
сержант
Сообщения: 168
Зарегистрирован: 2008-11-05 6:15:43
Контактная информация:

Вывести в роли переменной каждую строку

Непрочитанное сообщение levantuev » 2012-10-22 18:08:00

Здравствуйте! У меня две задачи. Помогите люди умный и добрые их решить.

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].....

?????

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/


levantuev
сержант
Сообщения: 168
Зарегистрирован: 2008-11-05 6:15:43
Контактная информация:

Re: Вывести в роли переменной каждую строку

Непрочитанное сообщение levantuev » 2012-10-22 19:24:34

mak_v_ писал(а):man tail
надеюсь вы не имеете ввиду tail -n !!!!! Изъясните поконкретнее ваше предложение...

levantuev
сержант
Сообщения: 168
Зарегистрирован: 2008-11-05 6:15:43
Контактная информация:

Re: Вывести в роли переменной каждую строку

Непрочитанное сообщение levantuev » 2012-10-22 19:51:52

С первой проблемой разобрался путем использование logtail , теперь нужно понять как сделать пермеменной каждую строку.

mak_v_
проходил мимо

Re: Вывести в роли переменной каждую строку

Непрочитанное сообщение mak_v_ » 2012-10-22 20:14:41

levantuev писал(а):
mak_v_ писал(а):man tail
надеюсь вы не имеете ввиду tail -n !!!!! Изъясните поконкретнее ваше предложение...
За Вас писать скрипт? Нет уж, извольте читать маны. Я Вам направление подбрасываю где почитать.

levantuev
сержант
Сообщения: 168
Зарегистрирован: 2008-11-05 6:15:43
Контактная информация:

Re: Вывести в роли переменной каждую строку

Непрочитанное сообщение levantuev » 2012-10-22 20:18:21

mak_v_ писал(а):
levantuev писал(а):
mak_v_ писал(а):man tail
надеюсь вы не имеете ввиду tail -n !!!!! Изъясните поконкретнее ваше предложение...
За Вас писать скрипт? Нет уж, извольте читать маны. Я Вам направление подбрасываю где почитать.
не вижу направление "где" вижу направление "что" :smile:

mak_v_
проходил мимо

Re: Вывести в роли переменной каждую строку

Непрочитанное сообщение mak_v_ » 2012-10-22 20:19:41

Попробуйте почитать умные книги, сходить на курсы, сдать экзамены и практика..практика...глядишь и прозреете

levantuev
сержант
Сообщения: 168
Зарегистрирован: 2008-11-05 6:15:43
Контактная информация:

Re: Вывести в роли переменной каждую строку

Непрочитанное сообщение levantuev » 2012-10-22 20:25:34

mak_v_ писал(а):Попробуйте почитать умные книги, сходить на курсы, сдать экзамены и практика..практика...глядишь и прозреете
зачем?

levantuev
сержант
Сообщения: 168
Зарегистрирован: 2008-11-05 6:15:43
Контактная информация:

Re: Вывести в роли переменной каждую строку

Непрочитанное сообщение levantuev » 2012-10-22 20:33:00

Вопрос почти решен:

Код: Выделить всё

#!/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 читает по словам а не по строкам. Как сделать что-бы по строкам считал? а так все отлично работает...


levantuev
сержант
Сообщения: 168
Зарегистрирован: 2008-11-05 6:15:43
Контактная информация:

Re: Вывести в роли переменной каждую строку

Непрочитанное сообщение levantuev » 2012-10-22 22:45:00

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
РЕШЕНО!

kpp
лейтенант
Сообщения: 613
Зарегистрирован: 2009-08-05 16:10:46
Откуда: Украина Днепропетровск-Киев
Контактная информация:

Re: Вывести в роли переменной каждую строку

Непрочитанное сообщение kpp » 2012-10-23 10:03:15

Гм..
А где отслеживание
строки появились за последние 10 секунд в файле
?
Нет, ребята, я не гордый. Не загадывая вдаль, так скажу: зачем мне орден? Я согласен на медаль.

levantuev
сержант
Сообщения: 168
Зарегистрирован: 2008-11-05 6:15:43
Контактная информация:

Re: Вывести в роли переменной каждую строку

Непрочитанное сообщение levantuev » 2012-10-23 11:04:52

kpp писал(а):Гм..
А где отслеживание
строки появились за последние 10 секунд в файле
?
Решит это: Как тут писал очень умный человек :ROFL:

kpp
лейтенант
Сообщения: 613
Зарегистрирован: 2009-08-05 16:10:46
Откуда: Украина Днепропетровск-Киев
Контактная информация:

Re: Вывести в роли переменной каждую строку

Непрочитанное сообщение kpp » 2012-10-23 11:21:55

levantuev писал(а):
kpp писал(а):Гм..
А где отслеживание
строки появились за последние 10 секунд в файле
?
Решит это: Как тут писал очень умный человек :ROFL:
"Это" отобразит последние n строк из файла.
В Вашем, levantuev, решении я тоже не наблюдаю выборку именно за последние 10 секунд.
Поэтому что именно решено, и почему именно logtail (которой нет по дефолту во FreeBSD), а не просто tail, не понятно.
Нет, ребята, я не гордый. Не загадывая вдаль, так скажу: зачем мне орден? Я согласен на медаль.

FiL
ст. лейтенант
Сообщения: 1374
Зарегистрирован: 2010-02-05 0:21:40

Re: Вывести в роли переменной каждую строку

Непрочитанное сообщение FiL » 2012-10-23 16:28:59

kpp писал(а):Гм..
А где отслеживание
строки появились за последние 10 секунд в файле
?
-s 10

Собственно, как я понимаю, это единственное преимущество перед tail -f. Позволяет задать интервал проверки.

mak_v_
проходил мимо

Re: Вывести в роли переменной каждую строку

Непрочитанное сообщение mak_v_ » 2012-10-23 16:51:16

на сколько я понял, человек пишет с нуля анализатор логов для сквида...так сказать "злобно парсит логи и мозг".
tail как и sarg, free-sa, ligtsquid, squidpb, stc и многие другие просто и иронично тупо не подходят очень умным.