The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"Вывести в роли переменной каждую строку"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Программирование под UNIX (Shell скрипты)
Изначальное сообщение [ Отслеживать ]

"Вывести в роли переменной каждую строку"  +/
Сообщение от levantuev email(??) on 22-Окт-12, 19:13 
Здравствуйте! У меня две задачи. Помогите люди умный и добрые их решить.

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

?????

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "Вывести в роли переменной каждую строку"  +/
Сообщение от Дядя_Федор on 22-Окт-12, 20:30 
Утилитка есть такая - logsentry. :) Вот она делает то, что Вы описали. Будучи запущенной в кроне. http://etutorials.org/Linux+systems/red+hat+linux+bible+fedo.../

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

2. "Вывести в роли переменной каждую строку"  +/
Сообщение от levantuev email(??) on 22-Окт-12, 20:50 
> Утилитка есть такая - logsentry. :) Вот она делает то, что Вы
> описали. Будучи запущенной в кроне. http://etutorials.org/Linux+systems/red+hat+linux+bible+fedo.../

Отлично, с первой проблемой разобрался, а теперь как каждой строку вывести как переменную?

Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

3. "Вывести в роли переменной каждую строку"  +/
Сообщение от levantuev email(??) on 22-Окт-12, 21:59 
#!/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 читает по словам а не по строкам. Как сделать что-бы по строкам считал? а так все отлично работает...

Ответить | Правка | ^ к родителю #2 | Наверх | Cообщить модератору

4. "Вывести в роли переменной каждую строку"  +/
Сообщение от pavlinux (ok) on 23-Окт-12, 03:04 
> Как сделать что-бы по строкам считал?


oldIFS=$IFS;
for (;;)
    do
      cp /var/log/messages /tmp/;
      TIME=$(date +%s);
      sleep $(10-$((sTIME-TIME)));
      sTIME=$(date +%s);
      IFS=$'\n';
      LINES=($(diff -u /var/log/messages /tmp/messages));
          while i < LINES[@]
              do
                 echo $LINES[i];
          done
done
IFS=$oldIFS;
...
  
Ответить | Правка | ^ к родителю #3 | Наверх | Cообщить модератору

5. "Вывести в роли переменной каждую строку"  +/
Сообщение от Andrey Mitrofanov on 23-Окт-12, 09:34 
> for i in $vars; do fetch "http://127.0.0.1/?res=$i" >/dev/null 2>&1; done
> строкам. Как сделать что-бы по строкам считал?

while read i; do fetch "http://127.0.0.1/?res=$i" >/dev/null 2>&1; done <<<"$vars"

Ответить | Правка | ^ к родителю #3 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру