URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 19218
[ Назад ]

Исходное сообщение
"к знатокам перла"

Отправлено gvm , 31-Июл-02 17:44 
Подскажите, как реализовать следуещее: есть лог файл, обновляется в реальном времени: /var/log/logfile
Как мне его в риал-тайме пропускать через перловый скрипт, и результат этого фильтрования направлять в другой файл или файлы. Спасибо за помощь.

Содержание

Сообщения в этом обсуждении
"RE: к знатокам перла"
Отправлено Aleks , 01-Авг-02 00:23 
Ну если прога которая формирует лог твоя, то можно в неё вставить кусок кода который, будет слать юзерский сигнал при изменениии лога, или сама запускать нужный скрипт, или сама фильтровать лог.
Кстати что-то можно придумать с использованием команды tail -f <имя файла>, типа (на Си):
FILE p_tail = popen("tail -f <имя файла>", "r");
Потом читать из него и парсить это дело...
P.S. Может я бред какой прогнал, а?


"RE: к знатокам перла"
Отправлено nubi , 01-Авг-02 01:39 
>Ну если прога которая формирует лог твоя, то можно в неё вставить
>кусок кода который, будет слать юзерский сигнал при изменениии лога, или
>сама запускать нужный скрипт, или сама фильтровать лог.
>Кстати что-то можно придумать с использованием команды tail -f <имя файла>, типа (на Си):
>FILE p_tail = popen("tail -f <имя файла>", "r");
>Потом читать из него и парсить это дело...
>P.S. Может я бред какой прогнал, а?


С tail ты прав. Средствами перла (самое простое):

for(;;){
    while (<FH>) 
          { Тут читаешь файло ;
            }
    sleep $time; # ну пару секунд.
    seek(FH,0,1);  
}


"RE: к знатокам перла"
Отправлено uldus , 01-Авг-02 10:26 

use Event::File::tail

"RE: к знатокам перла"
Отправлено dawnshade , 01-Авг-02 10:38 
>Подскажите, как реализовать следуещее: есть лог файл, обновляется в реальном времени: /var/log/logfile
>
>Как мне его в риал-тайме пропускать через перловый скрипт, и результат этого
>фильтрования направлять в другой файл или файлы. Спасибо за помощь.


Можно сделать проще. В syslog.conf прописать перенаправление этого лога в скрипт. Скриптом из STDIN читать данные, записывать в этот файл и по фильтрам писать в другой файл....