Filtrar segundos com tail [RESOLVIDO]

1. Filtrar segundos com tail [RESOLVIDO]

alex menezes dos santos
bhartt

(usa Ubuntu)

Enviado em 24/11/2011 - 09:20h

bom dia,

Estou com uma duvida para filtrar transações que excederam 5 ou mais segundo em tempo real no arquivo de log.
para que fique mais claro minha dúvida, utilizo o comando abaixo para imprimir filtro de alguns campos de um arquivo de log e utilizo o tail para mostrar em tempo real.


tail -f /usr/local/matrix/logs/strings.2011-11-22.arquivo.log|grep 'DURACAO'


onde ele me traz o seguinte:

[2011-11-22 15:45:15,653] [111122;154445;134] [port: xxxxx] '0.0.0.0, 7000, 20580493, DURACAO BANCO (mm:ss:SSS): 00:13:947'

no caso esta transação excedeu os 5 segundos e encerrou com 00:13:947 segundos.

as informações que filtrei no comando acima: dia, hora, ano, porta de comunicação, IP de destino, tempo da transação.

Como faço para que o tail exiba somente as transações que excederam 5 segundos referente ao campo abaixo:

(mm:ss:SSS): 00:13:947'

??????


Desde já agradeço.


  


2. Re: Filtrar segundos com tail [RESOLVIDO]

Bruno Rogério Fernandes
brunorf

(usa Arch Linux)

Enviado em 24/11/2011 - 10:48h

Você pode usar o awk:


tail -f /usr/local/matrix/logs/strings.2011-11-22.arquivo.log | awk ' $12 > "00:05:00" { print $0 } '


Onde o $12 > "00:05:00" vai fazer com que o awk exiba somente as linhas em que o 12º token (o espaço é o separador) for maior que "00:05:00" (ordem lexica).





3. Re: Filtrar segundos com tail [RESOLVIDO]

Adriano Moreira da Silva
adri3d

(usa Arch Linux)

Enviado em 24/11/2011 - 10:49h

isso da pra resolver com awk, em apenas uma linha

tail -f /usr/local/matrix/logs/strings.2011-11-22.arquivo.log | awk -F: {'if($8 >= 5) print $0'}



edit:
um minuto mais lento


4. Re: Filtrar segundos com tail [RESOLVIDO]

alex menezes dos santos
bhartt

(usa Ubuntu)

Enviado em 24/11/2011 - 14:56h

adri3d

Muitíssimo obrigado,

Ajustei os campos que necessito visualizar a informação está ali na tela...hehe

baixei uns cursos de shell-scrip para estudar ainda sou muito leigo no assunto....obrigado mesmo.

VLW!






5. Re: Filtrar segundos com tail [RESOLVIDO]

alex menezes dos santos
bhartt

(usa Ubuntu)

Enviado em 24/11/2011 - 15:09h

brunorf,

Estou utilizando a sua sugestão também olha só como ficou a impressão do arquivo em tela:

Com sua sugestão:
tail -f /usr/local/matrix/logs/strings.2011-11-24.srvprd01.log|grep 'DURACAO BANCO'|awk -F: {'if($8 >= 4) print $0'}


[2011-11-24 15:05:59,274] [111124;150553;247] [port: xxxxx] 'xxx.xxx.xxx.xxx, 7000, 20568229, DURACAO BANCO (mm:ss:SSS): 00:05:750'


Como o adri3d indicou ficou assim:

Comando adaptado para minhas necessidades:

tail -f /usr/local/matrix/logs/arquivo.2011-11-24.arquivo.log|grep 'DURACAO'|awk ' $12 > "00:04:00" { print $0,$1,$2,$4,$5,$6,$7,$10,$12}'

resultado:
[2011-11-24 15:00:45,654] [111124;145258;250] [port: xxxxx] 'E, 237, 07715716, DURACAO CONEXAO (mm:ss:SSS): 07:47:404'

Obrigado a todos!






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts