Почему этот Perl-скрипт, использующий модуль File :: Tail, не работает? - PullRequest
2 голосов
/ 21 декабря 2010

Я работаю над простым сценарием Perl для отслеживания файла журнала с помощью модуля File::Tail, но, похоже, не могу заставить модуль работать должным образом.IRC, но, похоже, это не сработало, поэтому после работы с интерактивным интерпретатором я сузил проблему до File :: Tail.Я сократил следующий базовый пример для мониторинга файла, и ничего не происходит, когда к нему добавляются новые записи:

#!/usr/bin/perl -w

use strict;

use File::Tail;

my $file = File::Tail->new("/var/log/apache2/error.log");

while(defined(my $line = $file->read))
{
    print "$line\n";
}

Кто-нибудь может подсказать, в чем может быть проблема?Я просмотрел запись perldoc, и она практически скопирована оттуда, так что я не вижу, что допустил какие-либо явные ошибки.Я использую Ubuntu Lucid.

Ответы [ 3 ]

2 голосов
/ 21 декабря 2010

Возможно ли, что это ошибка прав доступа?Может ли пользователь, с которым вы запускаете скрипт, иметь доступ /var/log/apache2/error.log?

0 голосов
/ 21 декабря 2010

Я только что понял, что я был полным инструментом ...

Он отлично работает - я просто не оставлял его достаточно долго, прежде чем нажать Ctrl-C.D'о!О, хорошо, урок усвоен!В любом случае спасибо за вашу помощь!

0 голосов
/ 21 декабря 2010

Если ничего не помогает, реализуйте это сами!

use Fcntl qw(:seek);

while (1) {
    while (<$fh>) {
        ...
    }
    sleep(1);
    seek $fh, 0, SEEK_CUR;
}

... Что бы мне не пришлось печатать, если бы я просто связал вас здесь или здесь .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...