Conversor de logs do squid
Publicado por Elgio Schlemer 11/09/2007
[ Hits: 11.830 ]
Homepage: https://profelgio.duckdns.org/~elgio
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.
#!/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
APACHE - Script para gerenciar usuários do apache
Convertendo rotas Linux para Fortigate
cambada_oneko - gatinhos coloridos perseguindo o ponteiro do mouse
Script Para Manutenção de usuários do Sistema
Compartilhando a tela do Computador no Celular via Deskreen
Como Configurar um Túnel SSH Reverso para Acessar Sua Máquina Local a Partir de uma Máquina Remota
Configuração para desligamento automatizado de Computadores em um Ambiente Comercial
Como renomear arquivos de letras maiúsculas para minúsculas
Imprimindo no formato livreto no Linux
Vim - incrementando números em substituição
Efeito "livro" em arquivos PDF
Como resolver o erro no CUPS: Unable to get list of printer drivers
SysAdmin ou DevOps: Qual curso inicial pra essa área? (0)
Melhores Práticas de Nomenclatura: Pastas, Arquivos e Código (3)
[Python] Automação de scan de vulnerabilidades
[Python] Script para analise de superficie de ataque
[Shell Script] Novo script para redimensionar, rotacionar, converter e espelhar arquivos de imagem
[Shell Script] Iniciador de DOOM (DSDA-DOOM, Doom Retro ou Woof!)
[Shell Script] Script para adicionar bordas às imagens de uma pasta