Conversor de logs do squid
Publicado por Elgio Schlemer 11/09/2007
[ Hits: 11.843 ]
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
Pingmon1.0 - Ping Timeout Monitor
Baixar STREAMS MMS://, RTS:// e Outros...
Backup para fita dat em Dialog
Script pra instalar / atualizar o Postfix no Slackware
Gerenciador de arquivos youtube-dl
Enviar mensagem ao usuário trabalhando com as opções do php.ini
Meu Fork do Plugin de Integração do CVS para o KDevelop
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
Compartilhamento de Rede com samba em modo Público/Anônimo de forma simples, rápido e fácil
Cups: Mapear/listar todas as impressoras de outro Servidor CUPS de forma rápida e fácil
Criando uma VPC na AWS via CLI
Linux não é para todo mundo (8)
Problemas ao instalar o PHP (4)
PENDRIVE NÃO FORMATA DE JEITO NENHUM (1)