shell-script-pt
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [shell-script] Lista o conteúdo dos últimos 10 min de um arquivo.


From: Julio C. Neves
Subject: Re: [shell-script] Lista o conteúdo dos últimos 10 min de um arquivo.
Date: Tue, 16 Jul 2013 18:22:37 -0300

Fala João,
vamos dizer que ele queira os logs do dia 16 Jul, a partir de 15:21

grep -E "Jul 16 (1[5-9]|2[0-3]):[2-5][0-9]" ArqLog

ER é bom demais... ;)


Abraços na rapaziada aí de Vitória e tb na família.
Julio
*@juliobash
*



Em 16 de julho de 2013 17:05, João Olavo Baião de Vasconcelos <
address@hidden> escreveu:

> Rafael,
>
> Primeiramente, vc não precisa fazer um cat para depois fazer um grep. Faça
> um grep direto no arquivo!
>
> "ERRADO":
> cat arquivo.log | grep "Error" |wc -l
>
> CORRETO:
> grep "Error" arquivo.log | wc -l
>
> Mas vc quer contar o número de linhas ou mostrar as últimas?
>
> Mande para cá um exemplo de log contido nesse arquivo.
>
> Imaginando que seja o seguinte:
>
> Jul 16 16:25:35 hostname user: blablabla
> Jul 16 16:25:48 hostname user: blablabla
> Jul 16 16:26:13 hostname user: blablabla
> Jul 16 16:27:17 hostname user: blablabla
> Jul 16 16:35:59 hostname user: blablabla
> Jul 16 16:43:02 hostname user: blablabla
>
> Vc teria que obter a data atual, menos 10 minutos:
> date -d "-10 minutes" +"%b %d %H:%M:%S"
>
> E agora teria que filtrar por todos os resultados que são maiores ou iguais
> à data e hora acima.
>
> Poderia ser de um jeito mais pedante, comparando linha a linha se a data é
> maior que 10 min (ignorando o fato de isso poder demorar e qd vc olhar a
> última linha pode já ter passado mais 1 min e estaria mostrando coisa que
> aconteceu há 11 min... E ignorando que estou ignorando o ano (como é o caso
> do /var/log/messages)).
>
> Não consegui concluir o exemplo abaixo, mas é um começo. Não consegui pq eu
> não sei como pegar uma string em um formato específico e imprimir com o
> comando date em outro formato. Alguém poderia me ajudar nisso??
>
> Exemplo considerando o meu exemplo de log, que NÃO FUNCIONA, é só uma
> ideia:
>
> MINUTOS_BASE=10
> DATA_HORA_BASE=$(date -d "-$MINUTOS_BASE minutes" +"%m%d%H%M%S")
> # Teria que transformar o conteúdo da variárvel DATA_HORA_BASE para um
> formato somente numérico, tipo 0716164302, para poder comparar
> numericamente. #comofas??
>
> while read LINHA
> do
>   DATA_HORA=$(awk '{print $1 $2 $3}')
>
> # Teria que transformar o conteúdo da variárvel DATA_HORA para um formato
> somente numérico, tipo 0716164302, para poder comparar numericamente.
> #comofas??
>
>   [ $DATA_HORA -ge $MINUTOS_BASE ] && echo $linha
> done <<< "$(cat arquivo.log)"
>
> Dê um "man date" e veja os formatos existentes para imprimir as datas e
> horas (%Y para ano, %m para o número do mês, etc), e adequar para o formato
> do seu log.
>
> Bom, é só uma ideia para vc ir buscando soluções.
>
>
>
>
> 2013/7/15 rafael cruz <address@hidden>
>
> > **
> >
> >
> > Boa noite!
> >
> > Pessoal estou com um problema na filtragem de um arquivo. estou fazendo
> > uma contagem de erro em um log, porém estou fazendo a leitura do log por
> > inteiro e estou precisando pegar apenas a escrita dos últimos 10 min por
> > exemplo.
> >
> > Estou utilizando filtragem básica cat arquivo.log | grep "Error" |wc -l,
> > porém ele faz o check no arquivo inteiro.
> > Se alguém souber qual comando devo pesquisar melhor para resolver isso
> > agradeço pois deu umas "googladas" e não achei.
> >
> >
> >
>
>
>
> --
> João Olavo Baião de Vasconcelos
> Analista de Sistemas - Infraestrutura
>
>
> [As partes desta mensagem que não continham texto foram removidas]
>
>
>
> ------------------------------------
>
> ---------------------------------------------------------------------
> 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: address@hidden
> ---------------------------------------------------------------------
> 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
>
>
>


[As partes desta mensagem que não continham texto foram removidas]



reply via email to

[Prev in Thread] Current Thread [Next in Thread]