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: Wed, 1 Oct 2008 09:29:16 -0300

2008/9/30 M. Rodrigo Monteiro <address@hidden>:
> 2008/9/30 Fabiano Caixeta Duarte <address@hidden>:
>>
>> Seus IPs estão sendo armazenados em "int unsigned", certo?
>>
>> Então recomendo que você faça o cálculo proposto em
>> http://dev.mysql.com/doc/refman/5.0/en/miscellaneous-functions.html#function_inet-aton
>>
>> Depois mostra na lista como ficou que serve de aprendizado pra outros.
>>
>> Atenciosamente,
>>
>
> Foi justamente isso que eu tinha feito.
> Amanhã eu mando la pra lista...
>
> Abraços e valeu pela ajuda.
>

Para quem interessar, aqui está o finalmente do script.

awk -v ap=\' '
    {
        OFS = "\t"
        ORS = ""
        split ($3,ip,".")
        iptotal = ip[1] * (256 ** 3) + ip[2] * (256 ** 2) + ip[3] *
256 + ip[4]
        gsub(ap, "\\"ap, $7) ;
        sub(/http:\/\//,"",$7) ;
        print "\047\047",strftime("%Y/%m/%d %H:%M:%S",$1),$2"\t"
        printf "%d", iptotal
        print "\t"$4,$5,$6,$7,$8,$9,$10"\n"
    }' "${arquivoLog}" > "${arquivoExport}"

O arquivoLog é um arquivo do access.log e o arquivoExport é um
insert.sql que será gerado para ser importado no MySQL com esse
comando:

# mysql -uUSUÁRIO -pSENHA -D BANDO -e"load data local infile
'/dados/insert.sql' into table squidReport fields terminated by '\t'
(code, date, duration, clientAddress, resultCode, bytes,
requestMethod, url, rfc931, hierarchyCode, type);"

O delimitador é o tab.
Caso alguem queira melhorar ou alguma outra sugestão, entre em contato comigo.
Eu sei que já existe algo do tipo, mas estava criando visualizador de
logs do Squid no MySQL. Mas não sei se vai valer muito a pena no meu
caso, pois um único dia ficou com 800MB de dados nele.
Mas, em todo o caso, aqui está como criei o banco:

DROP TABLE IF EXISTS `squidReport`;
CREATE TABLE IF NOT EXISTS `squidReport` (
  `code` bigint(20) unsigned NOT NULL auto_increment,
  `date` datetime NOT NULL,
  `duration` smallint(5) unsigned NOT NULL,
  `clientAddress` int(10) unsigned NOT NULL,
  `resultCode` tinytext collate utf8_unicode_ci NOT NULL,
  `bytes` int(10) unsigned NOT NULL,
  `requestMethod` tinytext collate utf8_unicode_ci NOT NULL,
  `url` text collate utf8_unicode_ci NOT NULL,
  `rfc931` varchar(255) collate utf8_unicode_ci NOT NULL,
  `hierarchyCode` tinytext collate utf8_unicode_ci NOT NULL,
  `type` tinytext collate utf8_unicode_ci NOT NULL,
  PRIMARY KEY  (`code`),
  KEY `date` (`date`,`clientAddress`,`bytes`,`rfc931`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=1 ;

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]