[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: |
Mon, 29 Sep 2008 13:14:33 -0300 |
Só para dar um retorno...
Consegui uma solução bem rápida (cerca de 1 minuto) com AWK para um
arquivo de log de 400MB.
awk -v ap=\' '
BEGIN {
print "insert into squidReport (code, date, duration,
clientAddress, resultCode, bytes, requestMethod, url, rfc931,
hierarchyCode, type) values "
}
{
gsub(ap, "\\"ap, $7) ; print "(\047\047,
from_unixtime(\047"$1"\047), "$2", INET_ATON(\047"$3"\047),
\047"$4"\047, "$5", \047"$6"\047,
substring_index(\047"$7"\047,\047http://\047,-1), \047"$8"\047,
\047"$9"\047, \047"$10"\047), "
}' access.log.20080906 > insert.sql
frase=$(tail -n 1 insert.sql)
num=$(echo "${frase}" | wc -c)
num=$((num - 3))
frase=$(echo "${frase}" | cut -b -${num})
sed -i '$d' insert.sql
echo "${frase};" >> insert.sql
Desse jeito geraria um arquivo com apenas 1 insert para importar no
MySQL, mas acabei esbarrando em uma limitação no servidor do tamanho
do pacote (max_allowed_packet).
Então decidi fazer com o velho e bom while (apesar de demorar uma
eternidade (em um arquivo de 1MB, demorou 8 minutos). Imagina quando
for rodar em um com 400MB?
Mas, enfim, aqui está o outro script...
while read date duration clientAddress resultCode bytes requestMethod
url rfc931 hierarchyCode type ; do
url=$(echo "${url}" | awk -F'http://' '{print $2}')
mysql -usquidReport -psecret -h XXX.XXX.XXX.XXX -D squidReport <
<(echo "insert into squidReport (code, date, duration, clientAddress,
resultCode, bytes, requestMethod, url, rfc931, hierarchyCode, type)
values ('', from_unixtime('${date}'), ${duration},
INET_ATON('${clientAddress}'), \"${resultCode}\", ${bytes},
\"${requestMethod}\", \"${url}\", \"${rfc931}\", \"${hierarchyCode}\",
\"${type}\");")
done < access.log.20080906
Se alguém tiver alguma ideia mirabolante... estou por aqui :)
Abraços e obrigado pela ajuda.
- 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, 2008/09/26
- 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