Conversor de logs do squid
Publicado por Elgio Schlemer 11/09/2007
[ Hits: 11.946 ]
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
Como transformar um áudio em vídeo com efeito de forma de onda (wave form)
Como aprovar Pull Requests em seu repositório Github via linha de comando
Como gerar um podcast a partir de um livro em PDF
Organizando seus PDF com o Zotero
Erro no realm join [Resolvido]
Um programa para baixar vídeos: Parabolic
Como Definir o Painel Principal em Múltiplos Monitores no Linux Mint
Sempre que vou baixar algum pacote acontece o erro dpkg (2)
BlueMail não abre no Kubuntu 25.04 (6)
Não consigo montar meu cartão SD (5)
aplicativos criados com webapp-manager não aparecem no menu do xfce (1)