[Cascavel-pm] Ajuda com tail

Ari Arantes ariarantes em gmail.com
Terça Julho 7 13:25:42 PDT 2009


Pessoal,

Preciso escrever uma rotina para monitorar os acessos ao POP3. Fiz o seguinte:

#!/usr/bin/perl

#um exemplo do LOG:
#Jul  7 16:46:24 servidor1 pop3d: LOGIN,
user=usuario1 em dominio1.com.br, ip=[201.201.201.43], port=[4682]


$arqlog="/var/log/maillog";

open(LOG, "tail -F $arqlog | grep \"pop3d: LOGIN,\" |");
while ($log=<LOG>) {
        chomp($log);
        ($lixo, $ip, $lixo) = split('ip=\[', $log);
        ($ip, $lixo) = split('\]', $ip);
        print "$ip $log\n";
}

Esse é apenas o começo, depois terá conexão com base de dados, mas
tenho uma dúvida.

Se digito "tail -F /var/log/maillog | grep "pop3d: LOGIN,"" numa
sessão ssh, a tela rola muito rápido e de forma constante, agora se
rodo pelo perl acima, parece que ele "enche" um buffer e depois manda
de uma vez para tela, como se mandasse de tempos em tempos. Como
evitar esse "problema de buffer"?

Obrigado,

Ari


Mais detalhes sobre a lista de discussão Cascavel-pm