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
>
>
>

Responder a