shell-script-pt
[Top][All Lists]
Advanced

[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]
>
> 


reply via email to

[Prev in Thread] Current Thread [Next in Thread]