Conversor de logs do squid

Publicado por Elgio Schlemer 11/09/2007

[ Hits: 11.029 ]

Homepage: http://gravatai.ulbra.tche.br/~elgio

Download conversorLogSquid.sh




Muitos postaram perguntas no fórum sobre o tempo obscuro registrado nos logs do squid.

Além de explicar o que significa estes números, este script em bash traduz este tempo para algo mais legível.

  



Esconder código-fonte



#!/bin/bash

# ELGIO SCHLEMER
# Conversor de logs no formato ORIGINAL do squid para um tempo mais legivel
# 06/Setembro/2007

# Cores! O mundo eh colorido
cN="{FONTE}33[m"      # normal
cVm="{FONTE}33[1;31m" # vermelho
cVd="{FONTE}33[2;32m" # verde
cAz="{FONTE}33[3;34m" # azul
cAm="{FONTE}33[1;33m" # amarelo

cERRO="${cVm}"
cTEMPO="${cVd}"

# Como voce quer ver o tempo? 
# Descomente a atribuicao da variavel FORM que voce quer

# a) como o date mostra, normal, sem formatacao alguma
# Exemplo: Qui Set  6 19:04:05 BRT 2007
FORM=""

# b) No formato DD/MM/AAAA HH:MM:SS (ex 06/09/2007 19:04:05)
#FORM="+%d/%m/%Y %H:%M:%S"

# c) No formato DD/Mes/AAA HH:MM:SS (ex 06/Setembro/2007 19:04:05)
#FORM="+%d/%B/%Y %H:%M:%S"

# d) No formato Dia, DD de Mes de AAAA as HH:MM:SS 
# (ex: Quinta, 06 de Setembro de 2007 as 19:04:05
FORM="+%a, %d de %B de %Y as %H:%M:%S"

# Onde esta o arquivo de log a ser convertido?
ARQLOG="/var/log/squid/access.log"

# Onde irao as mensagems de erros?
ERRO="/dev/stderr"
# ao enviar ERROS para /dev/stderr estou enviando para a saida padrao de erro
# Muito util se a saida de dados for a tela e se usara este programa como
# um filtro. exemplo: ./conversorLogSquid.sh | sort
# as mensagens de erro NAO SERIAM passadas ao sort!!
# Mas se o usuario passou parametro...

if [ "X$1" != "X" ]
then
        ARQLOG=$1
fi

if [ ! -r $ARQLOG ] || [ ! -f $ARQLOG ]
then
   echo -ne "${cERRO}ERRO! Nao consigo abrir $ARQLOG para leitura${cN}\n" >> $ERRO
   exit 0;
fi

# Onde vai ser a saida?
# a) Saida na tela: sdtout
SAIDA="/dev/stdout"

# b) Saida em um arquivo de mesmo nome, com a extensao CONV
SAIDA="${ARQLOG}.CONV"

if [ -f $SAIDA ]
then
   echo -ne "${cERRO}ERRO: $SAIDA ja existe e eu nao vou apaga-lo!${cN}\n" >> $ERRO
   echo -ne "ABORTADO\n" >> $ERRO
   exit 0
fi 

touch $SAIDA 2>/dev/null

if [ ! -w $SAIDA ]
then
   echo -ne "${cERRO}ERRO: $SAIDA nao pode ser escrito.$cN Vai ser na tela mesmo\n" >> $ERRO
   echo "PRESSIONE ENTER para continuar" >> $ERRO
   read resp
   clear
fi

# Se a saida eh na tela, mundo colorido!!
CorI=""
CorF=""
if [ $SAIDA == "/dev/stdout" ]
then
   CorI="$cTEMPO"
   CorF="$cN"
fi

cat $ARQLOG | while read linha
do
  tempo="`echo $linha|cut -d\. -f1`"
  if `echo "$tempo" | grep -qs "^[0-9]\+$"`
  then 
     legivel="${CorI}`date -d @$tempo "$FORM"`${CorF}"

   #  legivel="`date -d @$tempo "$FORM"`"
     novalinha="$legivel `echo $linha|cut -d' ' -f2-`"
     echo -ne "${novalinha}\n" >> $SAIDA
  else    
     # Nao foi encontrado linha de tempo. Imprimindo como a linha era
     echo $linha >> $SAIDA
  fi
done 

Scripts recomendados

GETDOWN - Baixa arquivos e descompacta

matrix.sh (Wake up, neo...)

Baixe e converta um vídeo do Youtube (download e convert)

Barra de progresso em Dialog

aMule :: HighID e Firewall


  

Comentários
[1] Comentário enviado por elgio em 11/09/2007 - 09:16h

Oi pessoal.

O script está com caracteres ERRADOS (algum problema de conversão feita pelo VOL) e o download não está funcionando.

Mas no FONTE, onde diz {FONTE} não é isto não!!

Deve ser substituido por \ 0 (contra-barra + Zero, tudo junto, sem espaço. Pus espaço aqui pq é justamente esta sequencia que o VOL transforma)

[2] Comentário enviado por elgio em 11/09/2007 - 09:30h

http://gravatai.ulbra.tche.br/~elgio/conversorLogSquid
Por enquanto...

[3] Comentário enviado por rcjeferson em 23/04/2015 - 11:46h

Muito bom! Parabéns!

Está em meus favoritos.

Abraço.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner
Linux banner
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts