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

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

Re: [shell-script] Deixar mais rápida a execução


From: Fabiano Caixeta Duarte
Subject: Re: [shell-script] Deixar mais rápida a execução
Date: Tue, 13 Dec 2005 22:28:06 -0200
User-agent: Mozilla Thunderbird 1.0.2 (X11/20050317)

Salve!

Ainda não entendi exatamente o que vc está fazendo, mas dei uma modificada no seu script. Veja e me diga se atende.

Apesar de ser fã do awk, procurei utilizar bash puro + grep, por entender que o awk não se aplica a este caso.

Caso alguma coisa não fique clara, e depois de consultar o 'man bash', poste que esclarecerei.

while read ; do
   linha=($REPLY) #Convertendo linha em array
   codigo01=${linha[5]}
   codigo02=${linha[${#linha[@]}-1]}
   codigo01=${codigo01%%:}
   codigo02=${codigo02%%)}

   if [ "$codigo01" != "command" -a "$codigo02" != "command" ]; then
       echo "INICIOBR" >> resultado01.txt
       egrep "($codigo01|$codigo02)" log_teste02.txt |
          grep -m1 "postfix/qmgr\[" >> resultado01.txt
       egrep "($codigo01|$codigo02)" log_teste02.txt |
          grep -m1 "postfix/smtp\[" >> resultado01.txt
   fi
done < log_teste.txt


Fabiano Caixeta Duarte
Consultor em soluções para Redes de Computadores
Ribeirão Preto - SP

Rodrigo Monteiro escreveu:
Fala Fabiano.


On 12/13/05, Fabiano Caixeta Duarte <address@hidden> wrote:

Salve!

Mande um trecho dos arquivos de entrada e descreva o objetivo da saída
para entendermos melhor e podermos ajudar.


#log_teste.txt
Oct  5 00:00:07 spam postfix/lmtp[7650]: DB5C55A0EF9:
to=<usuario@email>, relay=127.0.0.1[127.0.0.1], delay=4, status=sent
(250 2.6.0 Ok, id=07647-01-71, from MTA: 250 Ok: queued as
954FD5A0EFB)
Oct  5 00:00:24 spam postfix/lmtp[7698]: 1B34E5A0EF9:
to=<usuario@email>, relay=127.0.0.1[127.0.0.1], delay=2, status=sent
(250 2.6.0 Ok, id=07649-01-39, from MTA: 250 Ok: queued as
1F1C05A0EFA)


#log_teste02.txt
Oct  5 00:00:07 spam postfix/qmgr[19500]: 954FD5A0EFB:
from=<usuario@email>, size=1030609, nrcpt=1 (queue active)
Oct  5 00:00:07 spam amavis[7647]: (07647-01-71) Passed,
<usuario@email> -> <usuario@email>, Message-ID:
<004601c5c959$829c97a0$ead8bbc8@email>, Hits: -
Oct  5 00:00:07 spam postfix/lmtp[7650]: DB5C55A0EF9:
to=<usuario@email>, relay=127.0.0.1[127.0.0.1], delay=4, status=sent
(250 2.6.0 Ok, id=07647-01-71, from MTA: 250 Ok: queued as
954FD5A0EFB)
Oct  5 00:00:09 spam postfix/smtp[6653]: C447C5A0F02:
to=<usuario@email>, relay=IP[IP], delay=15, status=sent (250 Message
accepted for delivery)


while read linha ; do
   codigo02=`echo "$linha" | awk '{print $NF}' | cut -d')' -f1`
   codigo01=`echo "$linha" | awk '{print $6}' | cut -d':' -f1`
   if [ "$codigo01" != "command" -a "$codigo02" != "command" ] ; then
       echo "INICIOBR" >> resultado01.txt
       grep '\('"$codigo01"'\|'"$codigo02"'\)' log_teste02.txt | grep
-m1 'postfix\/qmgr\[' >> resultado01.txt
       grep '\('"$codigo01"'\|'"$codigo02"'\)' log_teste02.txt | grep
-m1 'postfix\/smtp\[' >> resultado01.txt
   fi
done < log_teste.txt

Cada linha do log_teste.txt tem dois códigos: o $codigo01 e $codigo02
O que eu quero é percorrer todas as linhas do log_teste.txt e fazer um
outro arquivo com somente a primeira ocorrência da linha desses
códigos da linha 'postfix\/qmgr\[' e 'postfix\/smtp\['
Consegui explicar alguma coisa? :P
Mas acho que com o código que mandei da pra entender agora...

[]s





Fabiano Caixeta Duarte
Consultor em soluções para Redes de Computadores
Ribeirão Preto - SP


Rodrigo Monteiro escreveu:

Essa parte do script está demorando bastante (algumas horas) para ser executada.
Alguém tem uma sugestão de como deixar mais leve (rápida) a sua execução?
Segue a parte em questão...



--
Rodrigo Monteiro
"Free as in Freedom, not free as in free beer"
Linux User # 403730
JID: address@hidden
address@hidden


---------------------------------------------------------------------
Esta lista não admite a abordagem de outras liguagens de programação, como 
perl, C etc. Quem insistir em não seguir esta regra será moderado sem prévio 
aviso.
---------------------------------------------------------------------
Sair da lista: address@hidden
---------------------------------------------------------------------
Esta lista é moderada de acordo com o previsto em 
http://www.listas-discussao.cjb.net
---------------------------------------------------------------------
Links do Yahoo! Grupos









reply via email to

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