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

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

Re: [shell-script] analisando logs


From: Diego Luis Kreutz
Subject: Re: [shell-script] analisando logs
Date: Thu, 24 Apr 2003 17:39:37 -0300 (BRT)

acho que isso qui tb funga... mas usa soh um pouquinho de sed... :)

# pega o nome do usuario remoto e o tamanha da msg
grep 'to remote' maillog.1 | sed \
's/^.* msg \(.*\) to remote \(.*$\)/\2:\1/g' | sort  > xx

# pega cada usuario remoto e os tamanhos das msgs enviadas para o mesmo
# e soma todos os tamanhos
for i in `cat xx | cut -d":" -f1 | uniq`
do 
  SOMA=`grep ^$i xx | cut -d":" -f2 | sed 's/$/+/'` 
  SOMA=`echo $SOMA | sed -e 's/ //g;s/+$//' | bc`
  echo USUARIO REMOTE: $i BYTES: $SOMA
done

isso para um arquivo de log de mail jah "rotado"...
ai fica facil fazer um scriptzinho que roda todo o dia (crontab), apos o 
logrotate, e vai juntando as informacoes diarias num "arquivinho" geral...

Listas XTMS wrote:

> Olá, lista.
> 
> Estou fazendo um script para analisar o log do qmail (aquela coisa chata).
> 
> Para quem não sabe, ele é +/- assim: 
> 
> 
> Apr 16 07:10:39 linux qmail: 1050487839.319877 new msg 9483
> Apr 16 07:10:39 linux qmail: 1050487839.320033 info msg 9483: bytes 10869 
> from <> qp 17536 uid 64014
> Apr 16 07:10:39 linux qmail: 1050487839.399435 starting delivery 454: msg 
> 9483 to remote address@hidden
> Apr 16 07:10:39 linux qmail: 1050487839.525411 end msg 9483
> 
> Notem que a mensagem tem um ID (9483, nesse caso) e que a mensagem começa e 
> acaba (new msg e end msg)
> O que eu estou tentando fazer é um script que leia todo o log do qmail e me 
> diga ao final:
> 
> USUARIO REMOTO: address@hidden BYTES: 9999 bytes
> 
> sendo que: 
> 1- Existem centenas de usuários remotos. E usuários remotos são adicionados e 
> removidos sem prévio aviso
> 2- o relatório final tem o TOTAL de bytes de todo o parse do log para aquele 
> usuário
> 
> O que eu já fiz até agora:
> 
> #!/bin/bash
> cat mail.log.0|while read mail log
> do
>         ID=" "
>         ID=`echo "$log"|grep "new msg"|cut -d " " -f8`
>         if [ ! -z $ID ]
>         then
>                 echo ID: $ID
>         fi
>         TO=`echo "$log"|grep "$ID"|grep "to remote"|cut -d " " -f13`
>         if [ ! -z $TO ]
>         then 
>                echo TO: $TO
>         fi
>         BYTES=`echo "$log"|grep "$ID"|grep bytes|grep -v spamd|cut -d " " 
> -f10`
>         if [ ! -z $BYTES ]
>         then
>                echo Tamanho: $BYTES
>         fi
> done
> 
> Mas por enquanto só consigo ver o tamanho da mensagem atual e a forma como 
> ela é apresentada não ajuda.
> 
> Complicador:
> Pode acontecer uma situação assim:
> 
> Apr 16 07:10:39 linux qmail: 1050487839.319877 new msg 9483
> Apr 16 07:10:39 linux qmail: 1050487839.319877 new msg 9768
> Apr 16 07:10:39 linux qmail: 1050487839.320033 info msg 9483: bytes 10869 
> from <> qp 17536 uid 2014
> Apr 16 07:10:39 linux qmail: 1050487839.319877 new msg 1928
> Apr 16 07:10:39 linux qmail: 1050487839.399435 starting delivery 454: msg 
> 9483 to remote address@hidden
> Apr 16 07:10:39 linux qmail: 1050487839.320033 info msg 9768: bytes 136 from 
> <> qp 17540 uid 2014
> Apr 16 07:10:39 linux qmail: 1050487839.525411 end msg 9483
> Apr 16 07:10:39 linux qmail: 1050487839.399435 starting delivery 455: msg 
> 9768 to remote address@hidden
> 
> Onde diversos e-mails entram ao mesmo tempo e não é possível trabalhar de 
> forma linear.
> 
> UFA! Espero ter sido bem claro. :)
> 
> 
> []'s
> Eri Ramos Bastos
> 
> 
> ---------------------------------------------------------------------
> 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.listasdiscussao.cjb.net
> ---------------------------------------------------------------------
>  
> 
> Seu uso do Yahoo! Grupos é sujeito às regras descritas em: 
> http://br.yahoo.com/info/utos.html 
> 
> 
> 



reply via email to

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