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

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

Re: [sed-br] separar logs


From: Fábio Batista
Subject: Re: [sed-br] separar logs
Date: Sat, 19 Mar 2005 18:18:38 -0300

Olha, meu amigo, acho que pra tua solução, só um SED não resolve.

Veja isso:

#!/bin/bash

FILE=$1
EMAIL=$2

# busca todas as mensagens com o email especificado
MSGS=`fgrep "from <$EMAIL>" $FILE`

# define IFS para \n
IFS=\

for LINE in $MSGS
do
  MSG_ID=`echo "$LINE" | sed -r 's/.*msg ([0-9]+).*/\1/'`
  DEL_ID=`sed -rn "s/.*delivery ([0-9]+): msg $MSG_ID.*/\1/p" "$FILE"`

  #echo "MSG ID: $MSG_ID"
  #echo "DEL ID: $DEL_ID"

  egrep -e "(info msg $MSG_ID: bytes)|(starting delivery $DEL_ID: msg
$MSG_ID)|(delivery $DEL_ID:)" "$FILE"
done

É bem tosco, mas funciona e deve te dar uma idéia.

Estou encaminhando tbém pra lista de shell-script, caso eventualmente
vc queira continuar a discussão sobre o script lá.

-- 
Fábio David Batista
address@hidden
http://nerd-o-matic.blogspot.com

On Wed, 16 Mar 2005 21:55:52 -0300 (ART), Marcus Vinicius
<address@hidden> wrote:
> 
> ola Pessoal,
> 
> tenho um problema meio dificil de resolver. Não sei se o sed é a melhor 
> soluçao nem se tenho como resolver este problema.
> 
> mas vamos lá:
> 
> Eu tenho um arquivo de log mais ou menos assim:
> 
> @400000004238c8960518e4bc status: local 2/50 remote 0/100
> @400000004238c89606af6b0c delivery 45250: success: did_0+0+1/
> @400000004238c89606b1f37c status: local 1/50 remote 0/100
> @400000004238c89606b3ef4c end msg 32558
> @400000004238c8960e4d859c delivery 45249: success: did_0+0+1/
> @400000004238c8961867a864 status: local 0/50 remote 0/100
> @400000004238c8961867cb8c end msg 32233
> @400000004238c8961867cf74 new msg 31997
> @400000004238c8961867d744 info msg 31997: bytes 49979 from <address@hidden> 
> qp 32143 uid 89
> @400000004238c8961867e2fc starting delivery 45251: msg 31997 to local 
> address@hidden
> @400000004238c8961867f29c status: local 1/50 remote 0/100
> @400000004238c897370f3124 new msg 32233
> @400000004238c897370f544c info msg 32233: bytes 45660 from <address@hidden> 
> qp 32112 uid 89
> @400000004238c897379a7964 starting delivery 45252: msg 32233 to local 
> address@hidden
> @400000004238c897379acb6c status: local 2/50 remote 0/100
> @400000004238c89804c9d674 delivery 45252: success: did_1+0+0/
> @400000004238c89804cc89dc status: local 1/50 remote 0/100
> @400000004238c89804cedf84 end msg 32233
> @400000004238c8981a60867c new msg 32233
> @400000004238c8981a609dec info msg 32233: bytes 3237 from 
> <<>@mail.digiweb.com.br> qp 32170 uid 89
> @400000004238c8981acbcf54 starting delivery 45253: msg 32233 to remote 
> address@hidden
> @400000004238c8981acbf27c status: local 1/50 remote 1/100
> @400000004238c8981b96fef4 delivery 45251: success: 
> cat:_/home/vpopmail/etc/.chave:_No_such_file_or_directory/procmail:_Program_failure_(1)_of_"/usr/local/ask/ask.py"/procmail:_Rescue_of_unfiltered_data_succeeded/procmail:_Skipped_"__descartada_a_espera_da_confirma__o_do_usu_rio"/did_0+0+1/
> @400000004238c8981b9729ec status: local 0/50 remote 1/100
> @400000004238c8981b9731bc end msg 31997
> 
> POis bem, percebam a linha que tem o e-mail address@hidden, Este e-mail é o 
> que eu tenho como parâmetro. Eu preciso separar os logs referente a este 
> e-mail. Mas vcs podem verificar que o servidor não separa os logs certinho 
> por envio, e sim deixa tudo bagunçado .
> 
> Abaixo eu separei o log completo refente a este envio ficou assim:
> 
> @400000004238c8961867cf74 new msg 31997
> @400000004238c8961867d744 info msg 31997: bytes 49979 from <address@hidden> 
> qp 32143 uid 89
> @400000004238c8961867e2fc starting delivery 45251: msg 31997 to local 
> address@hidden
> @400000004238c8961867f29c status: local 1/50 remote 0/100
> @400000004238c8981b96fef4 delivery 45251: success: 
> cat:_/home/vpopmail/etc/.chave:_No_such_file_or_directory/procmail:_Program_failure_(1)_of_"/usr/local/ask/ask.py"/procmail:_Rescue_of_unfiltered_data_succeeded/procmail:_Skipped_"__descartada_a_espera_da_confirma__o_do_usu_rio"/did_0+0+1/
> @400000004238c8981b9731bc end msg 31997
> 
> Isso é o que eu preciso dos logs referente somente ao envio do e-mail 
> address@hidden
> 
> Vamos entender o log:
> logo na primeira linha ele apresenta um id do envio new msg 31997
> depois ele relaciona o id com o endereço que eu tenho
> a 3 linha é importante pois ele relaciona o id 31997 com um outro id delivery 
> 45251: msg 31997
> e na 5 linha ele através deste segundo id me informa se a mensagem foi 
> corretamnete enviada: delivery 45251: success:
> 
> Ufa,
> 
> O importante para mim são as linhas 2, 3, e 5
> A minha pergunta é, se eu só tiver o endereço de e-mail do remetente em mãos 
> eu tenho como salvar as 3 linhas que eu quero num arquivo ? ou melhor as 5 
> linhas que mostrei formando um arquivo com o envio de um e-mail separado 
> certinho do inicio ao fim?
> 
> Lembrando que as 3 linhas possuem relações em comum, como explicado acima.
> 
> Estou enviando os 3 arquivos txt em anexo caso esteja muito poluido os logs 
> que eu colei neste e-mails.
> 
> resumindo eu quero juntar as linhas de log de um envio, pois como vcs 
> perceberam ela fica toda separada. as vezes a linha delivery 45251: success:  
> é a linha 100 enquando a new msg 31997 é a linha 4.
> 
> Valeu
> Brigadão
> :-)
> 
> ---------------------------------
> Yahoo! Mail - Com 250MB de espaço.  Abra sua conta!
>   ----------
> 
> @400000004238c8961867cf74 new msg 31997
> @400000004238c8961867d744 info msg 31997: bytes 49979 from <address@hidden> 
> qp 32143 uid 89
> @400000004238c8961867e2fc starting delivery 45251: msg 31997 to local 
> address@hidden
> @400000004238c8961867f29c status: local 1/50 remote 0/100
> @400000004238c8981b96fef4 delivery 45251: success: 
> cat:_/home/vpopmail/etc/.chave:_No_such_file_or_directory/procmail:_Program_failure_(1)_of_"/usr/local/ask/ask.py"/procmail:_Rescue_of_unfiltered_data_succeeded/procmail:_Skipped_"__descartada_a_espera_da_confirma__o_do_usu_rio"/did_0+0+1/
> @400000004238c8981b9731bc end msg 31997
> 
>   ----------
> 
> @400000004238c8960518e4bc status: local 2/50 remote 0/100
> @400000004238c89606af6b0c delivery 45250: success: did_0+0+1/
> @400000004238c89606b1f37c status: local 1/50 remote 0/100
> @400000004238c89606b3ef4c end msg 32558
> @400000004238c8960e4d859c delivery 45249: success: did_0+0+1/
> @400000004238c8961867a864 status: local 0/50 remote 0/100
> @400000004238c8961867cb8c end msg 32233
> @400000004238c8961867cf74 new msg 31997
> @400000004238c8961867d744 info msg 31997: bytes 49979 from <address@hidden> 
> qp 32143 uid 89
> @400000004238c8961867e2fc starting delivery 45251: msg 31997 to local 
> address@hidden
> @400000004238c8961867f29c status: local 1/50 remote 0/100
> @400000004238c897370f3124 new msg 32233
> @400000004238c897370f544c info msg 32233: bytes 45660 from <address@hidden> 
> qp 32112 uid 89
> @400000004238c897379a7964 starting delivery 45252: msg 32233 to local 
> address@hidden
> @400000004238c897379acb6c status: local 2/50 remote 0/100
> @400000004238c89804c9d674 delivery 45252: success: did_1+0+0/
> @400000004238c89804cc89dc status: local 1/50 remote 0/100
> @400000004238c89804cedf84 end msg 32233
> @400000004238c8981a60867c new msg 32233
> @400000004238c8981a609dec info msg 32233: bytes 3237 from 
> <<>@mail.digiweb.com.br> qp 32170 uid 89
> @400000004238c8981acbcf54 starting delivery 45253: msg 32233 to remote 
> address@hidden
> @400000004238c8981acbf27c status: local 1/50 remote 1/100
> @400000004238c8981b96fef4 delivery 45251: success: 
> cat:_/home/vpopmail/etc/.chave:_No_such_file_or_directory/procmail:_Program_failure_(1)_of_"/usr/local/ask/ask.py"/procmail:_Rescue_of_unfiltered_data_succeeded/procmail:_Skipped_"__descartada_a_espera_da_confirma__o_do_usu_rio"/did_0+0+1/
> @400000004238c8981b9729ec status: local 0/50 remote 1/100
> @400000004238c8981b9731bc end msg 31997
> 
>   ----------
> 
> @400000004238c8961867d744 info msg 31997: bytes 49979 from 
> <address@hidden> qp 32143 uid 89
> @400000004238c8961867e2fc starting delivery 45251: msg 31997 to local 
> address@hidden
> @400000004238c8981b96fef4 delivery 45251: success: 
> cat:_/home/vpopmail/etc/.chave:_No_such_file_or_directory/procmail:_Program_failure_(1)_of_"/usr/local/ask/ask.py"/procmail:_Rescue_of_unfiltered_data_succeeded/procmail:_Skipped_"__descartada_a_espera_da_confirma__o_do_usu_rio"/did_0+0+1/
> 
> [As partes desta mensagem que não continham texto foram removidas]
> 
> --
> para sair da lista: address@hidden
> Links do Yahoo! Grupos
> 
> 
> 
> 
>


reply via email to

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