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 <[email protected]>:
>> 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: [email protected]
>> ---------------------------------------------------------------------
>> 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: [email protected]
> ---------------------------------------------------------------------
> 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
>
>
>