<div dir="ltr"><div><div><div><div>Dica,<br><br></div>Se for log do Linux (via syslog)<br></div>Joga no pipe e faz a leitura.<br><br><a href="http://mysfitt.net/tutorials/splunk_fifo.php">http://mysfitt.net/tutorials/splunk_fifo.php</a><br>
<a href="http://www.softpanorama.info/Logs/Syslog/pipes_in_syslog.shtml">http://www.softpanorama.info/Logs/Syslog/pipes_in_syslog.shtml</a><br><br><br></div>Com Perl faz assim, depois coloca no Cron a cada 5 minutos<br></div>
Uso isso no Serviço de E-mail<br><div>============================================================================================<br><i>#!/usr/bin/perl<br>use strict;<br>use IO::File;<br><br>sub readLog {<br>my $pat = '^(... .. ..:..:..) (\S+) \S+ ([a-zA-Z0-9]+): FILTER_LOGX: from=\<(.*?)\> to=\<(.*?)\> subject=\<(.*?)\> size=([0-9]+) hostip=([^ ]*) nrcpt=([0-9]+)';<br>
    my $fh;<br>    if (not sysopen($fh, "/var/log/smtp.pipe", O_RDONLY)) {<br>        print $nl . " ... erro ao abrir PIPE \n";<br>        $nl = "";<br>        return '';<br>    }<br>
    print $nl . " ... leitura de log iniciada \n";<br>    $nl = "";<br><br>    while (<$fh>) {<br>      chomp;<br>      if (m{$pat}) {<br>           $hora = $1;<br>           $server_name = $2;<br>
           $msgid = $3;<br>           $from = lc $4;<br>           $to = lc $5;<br>           $subject = $6;<br>           $size = $7;<br>           $hostip = $8;<br>           $nrcpt = $9;<br>         print "$hora $server_name $msgid $from $to $subject $size $hostip $nrcpt\n";<br>
      }<br>    }<br><br>    close $fh;<br>}</i><br> <br>============================================================================================<br><div><div><br></div></div></div></div><div class="gmail_extra"><br><br>
<div class="gmail_quote">Em 16 de junho de 2013 22:40, Marcio - Google <span dir="ltr"><<a href="mailto:marciorp@gmail.com" target="_blank">marciorp@gmail.com</a>></span> escreveu:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div dir="ltr"><div class="gmail_default" style="font-family:arial,helvetica,sans-serif">Salve Mestres!</div><div class="gmail_default" style="font-family:arial,helvetica,sans-serif"><br></div><div class="gmail_default" style="font-family:arial,helvetica,sans-serif">

Estou tentando fazer uma coisa que deve ser trivial, mas estou patinando.</div><div class="gmail_default" style="font-family:arial,helvetica,sans-serif"><br></div><div class="gmail_default" style="font-family:arial,helvetica,sans-serif">

Quero monitorar um arquivo de log e procurar uma determinada cadeia de caracteres apenas nas linhas que foram adicionadas após a última varredura.</div><div class="gmail_default" style="font-family:arial,helvetica,sans-serif">

<br></div><div class="gmail_default" style="font-family:arial,helvetica,sans-serif">Hoje eu fico dentro de um loop abrindo e fechando o arquivo. A cada vez que abro procuro a cadeia e se encontro mostro no terminal.</div>

<div class="gmail_default" style="font-family:arial,helvetica,sans-serif"><br></div><div class="gmail_default" style="font-family:arial,helvetica,sans-serif">Não estou satisfeito com a solução. Queria que o script "percebesse" toda vez que fosse adicionado linha no final do arquivo e procurasse a cadeia somente nas linhas que foram adicionadas.<br>

</div><div class="gmail_default" style="font-family:arial,helvetica,sans-serif"><br></div><div class="gmail_default" style="font-family:arial,helvetica,sans-serif">O que quero é +- o que o "tail -F arquivo.log" faz.<br>

</div><div class="gmail_default" style="font-family:arial,helvetica,sans-serif"><br></div><div class="gmail_default" style="font-family:arial,helvetica,sans-serif">Quando acho a cadeia em uma determinada linha, preciso imprimir cinco linhas, sendo duas antes da linha que encontrei, a linha que encontrei e duas linhas após.</div>

<div class="gmail_default" style="font-family:arial,helvetica,sans-serif"><br></div><div class="gmail_default" style="font-family:arial,helvetica,sans-serif">Qual a forma mais eficiente de fazer isso?</div><div><div dir="ltr">

<br>[...]'s<br><br>Marcio<div><br></div><div><div style="font-family:arial;font-size:small">========================================</div><div style="font-family:arial;font-size:small">########### Campanha Ajude o Marcio! ###########</div>

<div style="font-family:arial;font-size:small"><a href="http://sosmarcio.blogspot.com.br/" style="color:rgb(17,85,204)" target="_blank">http://sosmarcio.blogspot.com.br/</a></div><div style="font-family:arial;font-size:small">

<a href="http://www.vakinha.com.br/VaquinhaP.aspx?e=195793" style="color:rgb(17,85,204)" target="_blank">http://www.vakinha.com.br/VaquinhaP.aspx?e=195793</a><br></div><div style="font-family:arial;font-size:small">========================================</div>

</div></div></div>
</div>
<br>=begin disclaimer<br>
   Sao Paulo Perl Mongers: <a href="http://sao-paulo.pm.org/" target="_blank">http://sao-paulo.pm.org/</a><br>
 SaoPaulo-pm mailing list: <a href="mailto:SaoPaulo-pm@pm.org">SaoPaulo-pm@pm.org</a><br>
 L<<a href="http://mail.pm.org/mailman/listinfo/saopaulo-pm" target="_blank">http://mail.pm.org/mailman/listinfo/saopaulo-pm</a>><br>
=end disclaimer<br>
<br></blockquote></div><br><br clear="all"><br>-- <br>..............................................................................<br><b>Com Deus todas as coisas são possíveis</b> ::: <a href="http://www.linuxpro.com.br" target="_blank">LinuxPro</a><br>
<br><i><font size="1">"A qualidade nunca se obtém por acaso; ela é sempre o resultado do esforço inteligente." (John Ruskin)<br>"A mente que se abre a uma nova ideia jamais volta ao seu tamanho original" (Albert Einstein)</font></i><br>

</div>