Pessoal,

        Acabei tentando da seguinte forma:

#!/bin/bash

LOG="/var/log/maillog"

CNT_FILE="maillog_cnt"


if [ -f $CNT_FILE ]; then
     PTR=`cat $CNT_FILE`
else
     PTR=0
fi

TOT=`wc -l $LOG|cut -d" " -f1`

if [ $TOT -lt $PTR ]; then
     PTR=0
fi
echo "$TOT" > $CNT_FILE

TMP=`tail -n +$PTR $LOG`


        O script pega o total de linhas do log (wc -l) e armazena num arquivo 
temporario "maillog_cnt". A cada 5 minutos (pelo crond) o script pega da 
linha que esta no maillog_cnt até o fim com o tail -n +xxx e atualiza o 
contador em mailloc_cnt.

        Se alguem tiver alguma ideia para melhorar, agradeco. De qualquer forma 
ai esta a solucao que encontrei, pode ser util para alguem.

        Vou tentar tambem a ideia abaixo do Eri e ver qual parece ser mais 
rapida..

        Obrigado

        Ricardo

Eri Ramos Bastos wrote:
> Quase certeza que alguém deve saber um jeito muito mais fácil com sed
> ou awk, mas uma solução toda em bash:
> 
> for time in {5..1}; do egrep "^$(date "+%b %e %H:%M" -d "-${time}
> minutes"):.*" /var/log/maillog; done
> 
> []'s
> Eri Ramos Bastos
> 
> 2009/5/4 Ricardo Vendramini <li...@amplus.com.br>:
>>        Pessoal,
>>
>>        Estou quebrando a cabeca e nao encontrei uma solucao para o seguinte
>> problema:
>>
>>        Preciso somente das linhas de um arquivo de log correspondentes aos
>> ultimos 5 minutos. O arquivo de log é o /var/log/maillog
>>
>>        O tail me da as ultimas  "n" linhas, mas as vezes nao ha nada novo nos
>> ultimos 5 minutos, como pode haver muita coisa nesse tempo. Entao o nro
>> de linhas nao é fixo.
>>
>>        O script que vai checar esse log esta no crond para rodar de 5 em 5
>> minutos.
>>
>>        Alguem tem alguma sugestao?
>>
>>
>>        Obrigado
>>
>>        Ricardo
>>
>>
>>
>> ------------------------------------
>>
>> ---------------------------------------------------------------------
>> Esta lista não admite a abordagem de outras liguagens de programação, como 
>> perl, C etc. Quem insistir em não seguir esta regra será moderado sem prévio 
>> aviso.
>> ---------------------------------------------------------------------
>> Sair da lista: shell-script-unsubscr...@yahoogrupos.com.br
>> ---------------------------------------------------------------------
>> Esta lista é moderada de acordo com o previsto em 
>> http://www.listas-discussao.cjb.net
>> ---------------------------------------------------------------------
>> Servidor Newsgroup da lista: news.gmane.org
>> Grupo: gmane.org.user-groups.programming.shell.brazil
>>
>> Links do Yahoo! Grupos
>>
>>
>>
> 
> 
> ------------------------------------
> 
> ---------------------------------------------------------------------
> Esta lista não admite a abordagem de outras liguagens de programação, como 
> perl, C etc. Quem insistir em não seguir esta regra será moderado sem prévio 
> aviso.
> ---------------------------------------------------------------------
> Sair da lista: shell-script-unsubscr...@yahoogrupos.com.br
> ---------------------------------------------------------------------
> Esta lista é moderada de acordo com o previsto em 
> http://www.listas-discussao.cjb.net
> ---------------------------------------------------------------------
> Servidor Newsgroup da lista: news.gmane.org
> Grupo: gmane.org.user-groups.programming.shell.brazil
> 
> Links do Yahoo! Grupos
> 
> 
> 

Responder a