[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [shell-script] Tempo de execução de um script
From: |
M. Rodrigo Monteiro |
Subject: |
Re: [shell-script] Tempo de execução de um script |
Date: |
Fri, 26 Sep 2008 11:34:22 -0300 |
2008/9/26 Fabiano Caixeta Duarte <address@hidden>:
> 2008/9/26 M. Rodrigo Monteiro <address@hidden>
>
>> Senhores, bom dia.
>>
>> Tenho o seguinte script:
>>
>> #!/bin/bash
>>
>> log="${1}"
>>
>> while read line ; do
>> date=$(echo "${line}" | awk '{print $1}' | cut -d'.' -f1 | perl
>> -pe 's/\d+/localtime($&)/e')
>> date=$(date -d "${date}" +"%F %T")
>> duration=$(echo "${line}" | awk '{print $2}')
>> clientAddress=$(echo "${line}" | awk '{print $3}')
>> resultCode=$(echo "${line}" | awk '{print $4}')
>> bytes=$(echo "${line}" | awk '{print $5}')
>> requestMethod=$(echo "${line}" | awk '{print $6}')
>> url=$(echo "${line}" | awk '{print $7}' | awk -F'http://' '{print $2}')
>> rfc931=$(echo "${line}" | awk '{print $8}')
>> hierarchyCode=$(echo "${line}" | awk '{print $9}')
>> type=$(echo "${line}" | awk '{print $10}')
>> echo "insert into squidReport (code, date, duration,
>> clientAddress, resultCode, bytes, requestMethod, url, rfc931,
>> hierarchyCode, type) values ('', \"${date}\", ${duration},
>> INET_ATON('${clientAddress}'), \"${resultCode}\", ${bytes},
>> \"${requestMethod}\", \"${url}\", \"${rfc931}\", \"${hierarchyCode}\",
>> \"${type}\");"
>> done < "${log}"
>>
>>
>> Eu sei que essa não é nem de longe a melhor forma de fazer isso, por
>> isso quero a ajuda dos senhores para que eu possa ter o mesmo
>> resultado desse script, só mais rápido.
>> Coloquei esse script para executar em um arquivo de log do Squid (400
>> MB, com 1656966 linhas), aí já viu né... passou a noite toda rodando e
>> não terminou.
>>
>> Tentei fazer direto no AWK, mas não tive sucesso. Parei no seguinte erro:
>> awk: lin. de com.:2: (FILENAME=- FNR=7648) fatal: impossível abrir
>> pipe `date -d'Wed Sep 24 07:42:04 2008' +'%F %T'' (Muitos arquivos
>> abertos)
>>
>> Abraços,
>>
>>
>> M. Rodrigo Monteiro
>> address@hidden
>> "Free as in Freedom, not free as in free beer"
>> Linux User # 403730
>>
>
> Mister M,
>
> Faço duas sugestões:
>
> 1) O formato de saída pode ser um formato aceito pelo seu banco para
> importação ao invés de precisar gerar tantos inserts.
> 2) Dispense o perl na conversão de timestamp para data. Você pode usar
> somente o date para isto. Veja um exemplo:
>
> date -d @$(head -1 access.log | awk '{print $1}') +"%F %T"
Não sabia que poderia ser feito desse jeito... interessante. Só não
entendi o @...?
>
> Poste aí as mudanças para que possamos continuar auxiliando.
Quando tiver um tempinho mais tarde vou fazer isso...
>
> PS: Como nem todo mundo tem log do squid pra teste, poste umas cinco linhas
> também. Isto facilita a obtenção de mais colaboradores.
1222225211.713 441 192.168.10.10 TCP_DENIED/407 2770 GET
http://osce80-en.url.trendmicro.com/P/80/FBA73F59E6F7E78CCFF29DD8BDF46ECCA2D6249982AF56C1799A34A0751593730FCEF18BC0AC7B2D
- NONE/- text/html
1222225211.731 2 192.168.10.10 TCP_DENIED/407 2911 GET
http://osce80-en.url.trendmicro.com/P/80/FBA73F59E6F7E78CCFF29DD8BDF46ECCA2D6249982AF56C1799A34A0751593730FCEF18BC0AC7B2D
- NONE/- text/html
1222225211.737 1 192.168.10.10 TCP_DENIED/407 3040 GET
http://osce80-en.url.trendmicro.com/P/80/FBA73F59E6F7E78CCFF29DD8BDF46ECCA2D6249982AF56C1799A34A0751593730FCEF18BC0AC7B2D
- NONE/- text/html
1222225212.150 409 192.168.10.10 TCP_DENIED/407 2352 GET
http://itunes.com/version - NONE/- text/html
1222225212.347 1 192.168.10.10 TCP_DENIED/407 2770 GET
http://osce80-en.url.trendmicro.com/P/80/FBA73F59E6F7E78CCFF29DD8BDF46ECCA2D6249982AF56C1799A34A0751593730FCEF18BC0AC7B2D
- NONE/- text/html
1222225212.365 1 192.168.10.10 TCP_DENIED/407 2911 GET
http://osce80-en.url.trendmicro.com/P/80/FBA73F59E6F7E78CCFF29DD8BDF46ECCA2D6249982AF56C1799A34A0751593730FCEF18BC0AC7B2D
- NONE/- text/html
1222225212.370 1 192.168.10.10 TCP_DENIED/407 3034 GET
http://osce80-en.url.trendmicro.com/P/80/FBA73F59E6F7E78CCFF29DD8BDF46ECCA2D6249982AF56C1799A34A0751593730FCEF18BC0AC7B2D
- NONE/- text/html
1222225212.376 1 192.168.10.10 TCP_DENIED/407 2679 GET
http://itunes.com/version - NONE/- text/html
1222225212.399 1 192.168.10.10 TCP_DENIED/407 2770 GET
http://osce80-en.url.trendmicro.com/P/80/FBA73F59E6F7E78CCFF29DD8BDF46ECCA2D6249982AF56C1799A34A0751593730FCEF18BC0AC7B2D
- NONE/- text/html
1222225212.418 2 192.168.10.10 TCP_DENIED/407 2911 GET
http://osce80-en.url.trendmicro.com/P/80/FBA73F59E6F7E78CCFF29DD8BDF46ECCA2D6249982AF56C1799A34A0751593730FCEF18BC0AC7B2D
- NONE/- text/html
>
> --
> Fabiano Caixeta Duarte
> Especialista em Redes de Computadores
> Linux User #195299
> Ribeirão Preto - SP
>
> [As partes desta mensagem que não continham texto foram removidas]
>
>
- Tempo de execução de um script, M. Rodrigo Monteiro, 2008/09/26
- Re: [shell-script] Tempo de execução de um script, MrBiTS, 2008/09/26
- Re: [shell-script] Tempo de execução de um script, Fabiano Caixeta Duarte, 2008/09/26
- Re: [shell-script] Tempo de execução de um script, MrBiTS, 2008/09/26
- Re: [shell-script] Tempo de execução de um script,
M. Rodrigo Monteiro <=
- extraer lineas impares, miguel saavedra, 2008/09/26
- Re: [shell-script] extraer lineas impares, Flavio Junior, 2008/09/26
- Re: [shell-script] extraer lineas impares, Fabiano Caixeta Duarte, 2008/09/26
- Re: [shell-script] extraer lineas impares, Marcelo Loureiro, 2008/09/26
Re: Tempo de execução de um script, erbots3, 2008/09/26