Ari,<br><br>Você tem certeza de que não é o /var/log/maillog que está sendo bufferizado? Tirado do syslog.conf(5):<br><br>   Regular File<br>       Typically messages are logged to real files.  The file must  be  speci‐<br>
       fied as an absolute pathname.<br><br>       <b>You  may  prefix  each entry with a minus sign (‘‘-’’) to avoid syncing<br>       the file after each log message</b>.  Note that you might lose  information<br>       if  the  system crashes right after a write attempt.  Nevertheless this<br>
       might give you back some performance, especially if  you  run  programs<br>       that use logging in a very verbose manner.<br><br>No /etc/syslog.conf aqui do meu Ubuntu, tenho:<br><br>00:28:18 az@alexeiz:~ $ grep mail /etc/syslog.conf <br>
mail.*                -/var/log/mail.log<br># Logging for the mail system.  Split it up so that<br><a href="http://mail.info">mail.info</a>            -/var/log/<a href="http://mail.info">mail.info</a><br>mail.warning            -/var/log/mail.warn<br>
mail.err            /var/log/mail.err<br><br>Ou seja, exceto o mail.err, todos os outros têm o  &#39;-&#39; na frente do nome do arquivo, i.e., são bufferizados. Verifique como está no seu sistema.<br><br>Se é que eu entendi o formato no qual essas mensagens aparecem no log, eu escreveria assim:<br>
<br>--------&gt;8--------&gt;8--------&gt;8-------- cut here --------&gt;8--------&gt;8--------&gt;8--------<br>#/usr/bin/perl<br><br>open( LOG, &quot;-|&quot;, &quot;/usr/bin/tail -F /var/log/maillog&quot; );<br>while(&lt;LOG&gt;) {<br>
  chomp;<br>  next unless /pop3d: LOGIN,/;<br>  ($ip) = ( /ip=\[([^\]]+)\]/ );<br>  print $ip . &quot;\n&quot;;<br>}<br>close(LOG);    # sim, purismo<br>--------&gt;8--------&gt;8--------&gt;8-------- cut here --------&gt;8--------&gt;8--------&gt;8--------<br>
<br>ou<br><br>--------&gt;8--------&gt;8--------&gt;8-------- cut here --------&gt;8--------&gt;8--------&gt;8--------<br>#!/bin/sh<br><br>/usr/bin/tail -F /var/log/maillog |<br>  perl -nle &#39;<br>    next unless /pop3d: LOGIN,/;<br>
    ($ip) = ( /ip=\[([^\]]+)\]/ );<br>    print $ip;<br>  &#39;<br># END<br>--------&gt;8--------&gt;8--------&gt;8-------- cut here --------&gt;8--------&gt;8--------&gt;8--------<br>
<br>Aos golfistas de plantão: não, isso não foi uma tacada inicial... :-P<br><br>[]s,<br>Russo<br><br><div class="gmail_quote">2009/7/7 Ari Arantes <span dir="ltr">&lt;<a href="mailto:ariarantes@gmail.com">ariarantes@gmail.com</a>&gt;</span><br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">Testei com STDERR e também com $| = 1, mas o buffer continua.<br>
<br>
Consegui solucionar assim:<br>
<br>
#!/usr/bin/perl<br>
<br>
open(LOG,&quot;tail -F /var/log/maillog |&quot;);<br>
while (&lt;LOG&gt;) {<br>
  chomp($_);<br>
  if ($_ =~ /pop3d: LOGIN,/) {<br>
    ($lixo, $ip, $lixo) = split(&#39;ip=\[&#39;, $_);<br>
    ($ip, $lixo) = split(&#39;\]&#39;, $ip);<br>
    print &quot;$ip $_\n&quot;;<br>
  }<br>
}<br>
<br>
Obrigado pela ajuda!<br>
<br>
[]s,<br>
<br>
Ari<br>
<br>
<br>
<br>
2009/7/7 Lindolfo &quot;Lorn&quot; Rodrigues &lt;<a href="http://lorn.br" target="_blank">lorn.br</a>@<a href="http://gmail.com" target="_blank">gmail.com</a>&gt;:<br>
<div><div></div><div class="h5">&gt; Ari,<br>
&gt;<br>
&gt; Ou você usa a saida de erro que não tem buffer<br>
&gt;<br>
&gt; - print &quot;$ip $log\n&quot;;<br>
&gt; + print STDERR &quot;$ip $log\n&quot;;<br>
&gt;<br>
&gt; Ou você pode setar a variavel de flush para true:<br>
&gt;<br>
&gt; $| = 1<br>
&gt;<br>
&gt; Mais informações: <a href="http://www.kichwa.com/quik_ref/spec_variables.html" target="_blank">http://www.kichwa.com/quik_ref/spec_variables.html</a><br>
&gt;<br>
&gt; 2009/7/7 Ari Arantes &lt;<a href="mailto:ariarantes@gmail.com">ariarantes@gmail.com</a>&gt;<br>
&gt;&gt;<br>
&gt;&gt; Valeu pelo ajuda, mas o problema é que não pode ter módulo adicional,<br>
&gt;&gt; pois o objetivo é rodar em qualquer servidor, sem necessariamente ter<br>
&gt;&gt; o File::Tail instalado.<br>
&gt;&gt;<br>
&gt;&gt; Esse &quot;buffer&quot; que o perl faz, é normal?<br>
&gt;&gt;<br>
&gt;&gt; []s,<br>
&gt;&gt;<br>
&gt;&gt; Ari<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt; 2009/7/7 Giuliani Deon Sanches &lt;<a href="mailto:giulianisanches@gmail.com">giulianisanches@gmail.com</a>&gt;:<br>
&gt;&gt; &gt; 2009/7/7 Lindolfo &quot;Lorn&quot; Rodrigues &lt;<a href="http://lorn.br" target="_blank">lorn.br</a>@<a href="http://gmail.com" target="_blank">gmail.com</a>&gt;<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; Cara, use esse modulo do CPAN você terá mais controle:<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; <a href="http://search.cpan.org/%7Emgrabnar/File-Tail-0.99.3/Tail.pm" target="_blank">http://search.cpan.org/~mgrabnar/File-Tail-0.99.3/Tail.pm</a><br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; Qualquer dúvida manda ai<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; 2009/7/7 Ari Arantes &lt;<a href="mailto:ariarantes@gmail.com">ariarantes@gmail.com</a>&gt;<br>
&gt;&gt; &gt;&gt;&gt;<br>
&gt;&gt; &gt;&gt;&gt; Pessoal,<br>
&gt;&gt; &gt;&gt;&gt;<br>
&gt;&gt; &gt;&gt;&gt; Preciso escrever uma rotina para monitorar os acessos ao POP3. Fiz o<br>
&gt;&gt; &gt;&gt;&gt; seguinte:<br>
&gt;&gt; &gt;&gt;&gt;<br>
&gt;&gt; &gt;&gt;&gt; #!/usr/bin/perl<br>
&gt;&gt; &gt;&gt;&gt;<br>
&gt;&gt; &gt;&gt;&gt; #um exemplo do LOG:<br>
&gt;&gt; &gt;&gt;&gt; #Jul  7 16:46:24 servidor1 pop3d: LOGIN,<br>
&gt;&gt; &gt;&gt;&gt; user=<a href="mailto:usuario1@dominio1.com.br">usuario1@dominio1.com.br</a>, ip=[201.201.201.43], port=[4682]<br>
&gt;&gt; &gt;&gt;&gt;<br>
&gt;&gt; &gt;&gt;&gt;<br>
&gt;&gt; &gt;&gt;&gt; $arqlog=&quot;/var/log/maillog&quot;;<br>
&gt;&gt; &gt;&gt;&gt;<br>
&gt;&gt; &gt;&gt;&gt; open(LOG, &quot;tail -F $arqlog | grep \&quot;pop3d: LOGIN,\&quot; |&quot;);<br>
&gt;&gt; &gt;&gt;&gt; while ($log=&lt;LOG&gt;) {<br>
&gt;&gt; &gt;&gt;&gt;        chomp($log);<br>
&gt;&gt; &gt;&gt;&gt;        ($lixo, $ip, $lixo) = split(&#39;ip=\[&#39;, $log);<br>
&gt;&gt; &gt;&gt;&gt;        ($ip, $lixo) = split(&#39;\]&#39;, $ip);<br>
&gt;&gt; &gt;&gt;&gt;        print &quot;$ip $log\n&quot;;<br>
&gt;&gt; &gt;&gt;&gt; }<br>
&gt;&gt; &gt;&gt;&gt;<br>
&gt;&gt; &gt;&gt;&gt; Esse é apenas o começo, depois terá conexão com base de dados, mas<br>
&gt;&gt; &gt;&gt;&gt; tenho uma dúvida.<br>
&gt;&gt; &gt;&gt;&gt;<br>
&gt;&gt; &gt;&gt;&gt; Se digito &quot;tail -F /var/log/maillog | grep &quot;pop3d: LOGIN,&quot;&quot; numa<br>
&gt;&gt; &gt;&gt;&gt; sessão ssh, a tela rola muito rápido e de forma constante, agora se<br>
&gt;&gt; &gt;&gt;&gt; rodo pelo perl acima, parece que ele &quot;enche&quot; um buffer e depois manda<br>
&gt;&gt; &gt;&gt;&gt; de uma vez para tela, como se mandasse de tempos em tempos. Como<br>
&gt;&gt; &gt;&gt;&gt; evitar esse &quot;problema de buffer&quot;?<br>
&gt;&gt; &gt;&gt;&gt;<br>
&gt;&gt; &gt;&gt;&gt; Obrigado,<br>
&gt;&gt; &gt;&gt;&gt;<br>
&gt;&gt; &gt;&gt;&gt; Ari<br>
&gt;&gt; &gt;&gt;&gt; _______________________________________________<br>
&gt;&gt; &gt;&gt;&gt; Cascavel-pm mailing list<br>
&gt;&gt; &gt;&gt;&gt; <a href="mailto:Cascavel-pm@pm.org">Cascavel-pm@pm.org</a><br>
&gt;&gt; &gt;&gt;&gt; <a href="http://mail.pm.org/mailman/listinfo/cascavel-pm" target="_blank">http://mail.pm.org/mailman/listinfo/cascavel-pm</a><br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; --<br>
&gt;&gt; &gt;&gt; --Lindolfo &quot;Lorn&quot; Rodrigues<br>
&gt;&gt; &gt;&gt; <a href="http://www.slackwarezine.com.br" target="_blank">www.slackwarezine.com.br</a><br>
&gt;&gt; &gt;&gt; <a href="http://lornlab.org" target="_blank">http://lornlab.org</a><br>
&gt;&gt; &gt;&gt; <a href="http://sao-paulo.pm.org" target="_blank">http://sao-paulo.pm.org</a><br>
&gt;&gt; &gt;&gt; use Catalyst;<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; _______________________________________________<br>
&gt;&gt; &gt;&gt; Cascavel-pm mailing list<br>
&gt;&gt; &gt;&gt; <a href="mailto:Cascavel-pm@pm.org">Cascavel-pm@pm.org</a><br>
&gt;&gt; &gt;&gt; <a href="http://mail.pm.org/mailman/listinfo/cascavel-pm" target="_blank">http://mail.pm.org/mailman/listinfo/cascavel-pm</a><br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; Cacilda... tava colando link aqui e aparece a resposta do Lor. Se<br>
&gt;&gt; &gt; passa o dia inteiro com o cliente de e-mail aberto ? :P<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; --<br>
&gt;&gt; &gt; <a href="http://twitter.com/giulianisanches" target="_blank">twitter.com/giulianisanches</a><br>
&gt;&gt; &gt; <a href="http://giulianisanches.blogspot.com" target="_blank">giulianisanches.blogspot.com</a><br>
&gt;&gt; &gt; _______________________________________________<br>
&gt;&gt; &gt; Cascavel-pm mailing list<br>
&gt;&gt; &gt; <a href="mailto:Cascavel-pm@pm.org">Cascavel-pm@pm.org</a><br>
&gt;&gt; &gt; <a href="http://mail.pm.org/mailman/listinfo/cascavel-pm" target="_blank">http://mail.pm.org/mailman/listinfo/cascavel-pm</a><br>
&gt;&gt; &gt;<br>
&gt;&gt; _______________________________________________<br>
&gt;&gt; Cascavel-pm mailing list<br>
&gt;&gt; <a href="mailto:Cascavel-pm@pm.org">Cascavel-pm@pm.org</a><br>
&gt;&gt; <a href="http://mail.pm.org/mailman/listinfo/cascavel-pm" target="_blank">http://mail.pm.org/mailman/listinfo/cascavel-pm</a><br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt; --<br>
&gt; --Lindolfo &quot;Lorn&quot; Rodrigues<br>
&gt; <a href="http://www.slackwarezine.com.br" target="_blank">www.slackwarezine.com.br</a><br>
&gt; <a href="http://lornlab.org" target="_blank">http://lornlab.org</a><br>
&gt; <a href="http://sao-paulo.pm.org" target="_blank">http://sao-paulo.pm.org</a><br>
&gt; use Catalyst;<br>
&gt;<br>
&gt; _______________________________________________<br>
&gt; Cascavel-pm mailing list<br>
&gt; <a href="mailto:Cascavel-pm@pm.org">Cascavel-pm@pm.org</a><br>
&gt; <a href="http://mail.pm.org/mailman/listinfo/cascavel-pm" target="_blank">http://mail.pm.org/mailman/listinfo/cascavel-pm</a><br>
&gt;<br>
_______________________________________________<br>
Cascavel-pm mailing list<br>
<a href="mailto:Cascavel-pm@pm.org">Cascavel-pm@pm.org</a><br>
<a href="http://mail.pm.org/mailman/listinfo/cascavel-pm" target="_blank">http://mail.pm.org/mailman/listinfo/cascavel-pm</a><br>
</div></div></blockquote></div><br><br clear="all"><br>-- <br>Alexei Znamensky [russoz_gmail_com] [<a href="http://russoz.wordpress.com">russoz.wordpress.com</a>] [<a href="http://www.flickr.com/photos/alexeiz">www.flickr.com/photos/alexeiz</a>]<br>
&quot;Though we live in trying times, we&#39;re the ones who have to try&quot;<br>