Conversor de logs do squid
Publicado por Elgio Schlemer 11/09/2007
[ Hits: 12.094 ]
Homepage: https://elgio.prof.nom.br/~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
Criando contas de usuario em varios servidores ao mesmo tempo
Alta disponibilidade IP-Virtual
Como extrair chaves TOTP 2FA a partir de QRCODE (Google Authenticator)
Linux em 2025: Segurança prática para o usuário
Desktop Linux em alta: novos apps, distros e privacidade marcam o sábado
IA chega ao desktop e impulsiona produtividade no mundo Linux
Novos apps de produtividade, avanços em IA e distros em ebulição agitam o universo Linux
Como instalar o repositório do DBeaver no Ubuntu
Como instalar o Plex Media Server no Ubuntu
Digitando underscore com "shift" + "barra de espaços"
Como ativar a lixeira e recuperar aquivos deletados em um servidor Linux
Como mudar o nome de dispositivos Bluetooth via linha de comando
dpkg: erro: gatilho de arquivo duplicado chamado pelo arquivo de nome (6)
Instalação não está resolvendo as dependencias (2)
Captação de áudio no zorin linux começa a diminuir com o tempo (5)
Alternativas ao Multilogin para gerenciamento de múltiplas contas/prof... (0)









