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

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Tempo de execução de um script


From: M. Rodrigo Monteiro
Subject: Tempo de execução de um script
Date: Fri, 26 Sep 2008 10:07:33 -0300

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


reply via email to

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