привет.
есть программа, которая как не странно пишет лог :)
есть перловый скрипт, который его парсит.задача:
получать последние строки из лога по
ssh login@server "tail -f" и передавать на STDIN перловому скрипту.что посоветуете? через простой пайп не работает, sleep очень не хочется ставить.
пока поставил перенаправление в файл, а уже оттуда беру, но это не вариант =(
>привет.
>есть программа, которая как не странно пишет лог :)
>есть перловый скрипт, который его парсит.
>
>задача:
>получать последние строки из лога по
>ssh login@server "tail -f" и передавать на STDIN перловому скрипту.
>
>что посоветуете? через простой пайп не работает, sleep очень не хочется ставить.
>
>пока поставил перенаправление в файл, а уже оттуда беру, но это не
>вариант =(
open (TAIL,"ssh login\@server tail -f |");
while (<TAIL>) {
...или так?
while(<>) {
...ssh login@server tail -f | ./prog.pl
>>привет.
>>есть программа, которая как не странно пишет лог :)
>>есть перловый скрипт, который его парсит.
>>
>>задача:
>>получать последние строки из лога по
>>ssh login@server "tail -f" и передавать на STDIN перловому скрипту.
>>
>>что посоветуете? через простой пайп не работает, sleep очень не хочется ставить.
>>
>>пока поставил перенаправление в файл, а уже оттуда беру, но это не
>>вариант =(
>
>
>open (TAIL,"ssh login\@server tail -f |");
>while (<TAIL>) {
>...
>
>или так?
>while(<>) {
>...
>
>ssh login@server tail -f | ./prog.plне работает не так, не так =(
win/cygwin
>привет.
>есть программа, которая как не странно пишет лог :)
>есть перловый скрипт, который его парсит.
>
>задача:
>получать последние строки из лога по
>ssh login@server "tail -f" и передавать на STDIN перловому скрипту.
>
>что посоветуете? через простой пайп не работает, sleep очень не хочется ставить.
>
>пока поставил перенаправление в файл, а уже оттуда беру, но это не
>вариант =(use File::Tail;
http://search.cpan.org/~mgrabnar/File-Tail-0.99.3/Tail.pm
>>привет.
>>есть программа, которая как не странно пишет лог :)
>>есть перловый скрипт, который его парсит.
>>
>>задача:
>>получать последние строки из лога по
>>ssh login@server "tail -f" и передавать на STDIN перловому скрипту.
>>
>>что посоветуете? через простой пайп не работает, sleep очень не хочется ставить.
>>
>>пока поставил перенаправление в файл, а уже оттуда беру, но это не
>>вариант =(
>
>use File::Tail;
>http://search.cpan.org/~mgrabnar/File-Tail-0.99.3/Tail.pmспасибо. буду знать...
попытался разобраться с модулем - но с оптимальными параметрами проблемы (задал все интрервалы=0|1 - всё равно задержки вывода порядка 10 секунд)...
нашёл решение на одном форуме
use IO::File;
use strict;
my $tail = new IO::File;
$tail->open("<operations.log");
while(1){
my @lines=$tail->getlines();
if(0==scalar(@lines)){
sleep 1;
}else{
my $line;
foreach $line(@lines){
chomp $line;
print "$line\n";
}
}
}