Conversor de logs do squid
Publicado por Elgio Schlemer 11/09/2007
[ Hits: 12.012 ]
Homepage: http://profelgio.duckdns.org:8080/~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
Biblioteca de cores para o Bash
Cadastrar máquina Win2K ou XP no Linux para Domínio
OH MY ALIAS - Crie seu alias facilmente
Gerenciador de arquivos youtube-dl
zwtsc - cliente gráfico para Terminal Service
Servidor de Backup com Ubuntu Server 24.04 LTS, RAID e Duplicati (Dell PowerEdge T420)
Visualizar câmeras IP ONVIF no Linux sem necessidade de instalar aplicativos
Atualizar Debian Online de uma Versão para outra
Dica para encontrar diversos jogos Indies criativos
Instalando Discord no Debian 13
Instalar driver Nvidia no Debian 13
Redimensionando, espelhando, convertendo e rotacionando imagens com script
Software livre - será que eu estou tão errado assim? (16)
A escola é altamente ineficiente e ineficaz! (12)