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

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

Re: [shell-script] Re: Script para curso....


From: Bruno Gunter Fricke
Subject: Re: [shell-script] Re: Script para curso....
Date: Fri, 22 Jun 2007 13:13:22 -0300

Muito bom, mas dá para melhorar. Que tal algo como:


#!/bin/sh

DiaInicio=$1;
DiaFinal=$2;
Mes=$3;
SearchString=$4;
LogFileOut=$5;

while [ "$DiaInicio" -le "$DiaFinal" ];
do
        if [ "$DiaInicio" -lt "10" ];
        then
                echo "0$DiaInicio" >> ListaDias.MX.temp;
        else
                echo "$DiaInicio" >> ListaDias.MX.temp;
        fi;
        DiaInicio=`expr "$DiaInicio" + 1`;
done;
if [ "$Mes" -lt "10" ];
then
        Mes="0$Mes";
fi;
Counter=1;
clear;
printf "logMXr.sh: Searching LOGs...\n";
for Dia in `cat ListaDias.MX.temp`;
do
        #quantidade de servidores a serem pesquisados
        for MX in 1 2 3 4 5 6 7 8;
        do
                for Ticket in `zegrep -i "$SearchString" ~/2007$Mes
$Dia/mx$MX/*.maillog.* | grep 'postfix' | grep -v NOQUEUE | awk '{print
$6}';
                do
                        echo "---= $Counter =---";
                        Counter=`expr "$Counter" + 1`;
                        zgrep -h $Ticket ~/2007$Mes$Dia/mx
$MX/*.maillog.* | egrep '(from=<|to=<)' | sed -e 's/ mx.*]://g' -e 's/
(queue.*)//g' -e 's/, status=\w*//g';
                done;
        done;
done | tee $LogFileOut;
rm ListaDias.MX.temp;







Em Sex, 2007-06-22 às 14:07 +0000, amaurimarx escreveu:
> Fala galera...
> 
> Bruno, seguindo seu exemplo, fiz umas alterações aqui para conseguir
> saber em determinado mês e determinado usuário todos os emails
> enviados ou recebidos pelo mesmo. Como não sou um exímio programador
> em bash, gostaria da ajuda de vocês para otimizar meu script ou ver o
> que posso alterar para torná-lo mais útil e eficiente.
> 
> O script está disponível em: http://www.pastebin.ca/583684
> 
> Só para conhecimento, como não sei se todos os logs de email seguem o
> mesmo padrão, eu estou utilizando postfix.
> 
> O resultado do script ficou assim, separado por dia do mês:
> 
> ----------------------------------------------------------
> Jun 1 16:44:34 host postfix/pickup[6793]: 82D9231748F: uid=1001
> from=<address@hidden>
> Jun 1 16:44:34 host postfix/cleanup[3240]: 82D9231748F:
> message-id=<001101c7a485$736fa250$4b01a8c0@CTIC05>
> Jun 1 16:44:34 host postfix/qmgr[19657]: 82D9231748F:
> from=<address@hidden>, size=121966, nrcpt=1 (queue active)
> Jun 1 16:44:34 host postfix/local[6363]: 82D9231748F:
> to=<address@hidden>, relay=local, delay=0.07, delays=0.04/0/0/0.02,
> dsn=2.0.0, status=sent (delivered to mailbox)
> Jun 1 16:44:34 host postfix/qmgr[19657]: 82D9231748F: removed
> ----------------------------------------------------------
> Jun 3 22:41:17 host postfix/pickup[23079]: 27C52317495: uid=1001
> from=<address@hidden>
> Jun 3 22:41:17 host postfix/cleanup[24185]: 27C52317495:
> message-id=<000501c7a649$75df7270$6e00a8c0@TELNET>
> Jun 3 22:41:17 host postfix/qmgr[19657]: 27C52317495:
> from=<address@hidden>, size=1827, nrcpt=5 (queue active)
> Jun 3 22:41:17 host postfix/local[24710]: 27C52317495:
> to=<address@hidden>, relay=local, delay=0.09,
> delays=0.01/0.03/0/0.05, dsn=2.0.0, status=sent (delivered to mailbox)
> Jun 3 22:41:17 host postfix/local[24709]: 27C52317495:
> to=<address@hidden>, relay=local, delay=0.11,
> delays=0.01/0.02/0/0.08, dsn=2.0.0, status=sent (delivered to mailbox)
> Jun 3 22:41:17 host postfix/local[24711]: 27C52317495:
> to=<address@hidden>, relay=local, delay=0.12,
> delays=0.01/0.04/0/0.07, dsn=2.0.0, status=sent (delivered to mailbox)
> Jun 3 22:41:19 host postfix/qmgr[19657]: 27C52317495: removed
> ----------------------------------------------------------
> 
> Fico no aguardo de sugestões.
> Muito obrigado,
> Amauri
> 
> --- Em address@hidden, Bruno Gunter Fricke
> <gunter@...> escreveu
> >
> > Com certeza ;-)
> > 
> > Assumindo que seja Postfix, os Emails podem começar com algo assim:
> > 
> > $ zgrep -h "@" /var/log/maillog | grep -v "DISCARD" | grep -v
> "NOQUEUE"
> > | grep -v "REJECT" | wc -l
> > ou
> > 
> > $ zgrep -i "status=sent" /var/log/maillog | wc -l
> > 
> > 
> > Agora, os IPs serão mais difíceis de achar, pois até no Log de
> emails
> > você verá IPs. O ideal é pegar o padrão dos programas usados e
> entender
> > a estrutura de logs, entendeu?
> > 
> > []'s
> > Bruno Gunter
> > 
> > 
> > 
> > Em Qui, 2007-06-21 às 23:26 -0300, Tiago Barcellos Peczenyj
> escreveu:
> > > Exatamente.
> > > 
> > > PARECE que o problema consiste em fazer uma busca recursiva em
> algum
> > > tipo de
> > > padrao ;-)
> > > 
> > > Sera que um `grep -R` resolve ?
> > > 
> > > []`s Tiago
> > > 
> > > On 6/21/07, Bruno Gunter Fricke <gunter@...> wrote:
> > > >
> > > > Elias,
> > > >
> > > > Não recomendo pedir alguém para fazer seu script, afinal o que
> você
> > > vai
> > > > aprender com isso? Dar copy/paste? ;-)
> > > >
> > > > Dicas de comandos para você pesquisar:
> > > > grep, egrep, zgrep, sed, tee e wc.
> > > >
> > > > Quando você tiver um esboço, terei o maior prazer em te ajudar.
> > > >
> > > > []'s
> > > > Bruno Gunter
> > > >
> > > > ----- Original Message -----
> > > > From: Elias P. Oliveira
> > > > To: address@hidden <shell-script%
> > > 40yahoogrupos.com.br>
> > > > Sent: Thursday, June 21, 2007 10:13 PM
> > > > Subject: [shell-script] Script para curso....
> > > >
> > > > Galera preciso entregar um script até segunda na faculdade.
> Alguém
> > > ajuda?
> > > >
> > > > Ele precisa:
> > > >
> > > > monitorar e mostrar todos os IPs e e-mails do diretório /var
> > > >
> > > > deve retornar algo mais ou menos assim:
> > > >
> > > > /var... IP = 2
> > > > /var/log emails = 3
> > > >
> > > > Se alguém ajudar ficarei muito grato. Ja o professor...
> > > >
> > > > :)
> > > >
> > > > []s
> > > >
> > > > Elias.
> > > >
> > > > [As partes desta mensagem que não continham texto foram
> removidas]
> > > >
> > > > 
> > > >
> > > 
> > > -- 
> > > Tiago B Peczenyj
> > > Linux User #405772
> > > 
> > > http://peczenyj.blogspot.com/
> > > 
> > > [As partes desta mensagem que não continham texto foram removidas]
> > > 
> > > 
> > > 
> > > 
> > > 
> > > 
> > 
> > 
> > [As partes desta mensagem que não continham texto foram removidas]
> >
> 
> 
> 
> 
> 
>  


[As partes desta mensagem que não continham texto foram removidas]



reply via email to

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