Pessoal como prometido estou enviando a entrada para meu script e a saída dele
Só existe um problema também que eu não consegui resolver, por eu ter precisado 
retirar o "=" com o sed para poder colocar as variáveis em uma array e testar 
se o campo e from ou to para pegar o próximo campo, por não saber em que 
posição se encontra. Os arquivos que tiverem = no nome vão ficar em branco...No 
exemplo abaixo o arquivo "=?iso-8859-1?Q?Sociedade_de_informa=E7=E3o.doc" ficou 
no report como " ?iso-8859-1?Q?Sociedade_de_informa E7 E3o.doc? "

Segue junto o script novamente para quem quiser dar uma melhorada ou me dar uma 
luiz para resolver este problema Obrigado a todos.

 

***************************************************************************************************************************************

 

ENTRADA:

May 18 13:13:20 teste-mail postfix/cleanup[17948]: 415011D78237: reject: header 
Content-Type: 
application/msword;??name="=?iso-8859-1?Q?Sociedade_de_informa=E7=E3o.doc?=" 
from Zeca.zeca.local[192.168.0.22]; from=<gu...@etste.com.br> 
to=<olive...@zeze.com.br> proto=ESMTP helo=<zeca>: 5.7.1 TESTE-MAIL - SEU ANEXO 
rma FOI RECUSADO PELO NOSSO SERVIDOR, TENTE REENCAMINHA-LO ZIPADO OU EM CASO DE 
DUVIDAS ENTRE EM CONTATO COM O ADMINISTRADOR PELO E-MAIL marc...@teste.com.br 
DEPARTAMENTO DE TECNOLOGIA TESTE SERVICOS.

May 19 17:10:14 teste-mail postfix/cleanup[13589]: 56FC11D782CB: reject: header 
Content-Disposition: attachment; filename="porta caneta de bambi Luc Brad.wmv" 
from web63407.mail.re1.yahoo.com[69.147.97.47]; from=<j...@yahoo.com.br> 
to=<te...@teste.com.br> proto=SMTP helo=<web63407.mail.re1.yahoo.com>: 5.7.1 
TESTE-MAIL - SEU ANEXO wmv FOI RECUSADO PELO NOSSO SERVIDOR, TENTE 
REENCAMINHA-LO ZIPADO OU EM CASO DE DUVIDAS ENTRE EM CONTATO COM O 
ADMINISTRADOR PELO E-MAIL marc...@teste.com.br DEPARTAMENTO DE TECNOLOGIA TESTE 
SERVICOS

May 19 17:49:48 teste-mail postfix/cleanup[14033]: 553501D782CD: reject: header 
Content-Type: application/vnd.ms-powerpoint;?  name="COLONIA DE FERIAS- 
SINTERC-PANORAMA.pps" from zeus.neobiz.com.br[200.174.139.27]; 
from=<faf...@sintercbauru.com.br> to=<s...@teste.com.br> proto=ESMTP 
helo=<zeus.neobiz.com.br>: 5.7.1 TESTE-MAIL - SEU ANEXO pps FOI RECUSADO PELO 
NOSSO SERVIDOR, TENTE REENCAMINHA-LO ZIPADO OU EM CASO DE DUVIDAS ENTRE EM 
CONTATO COM O ADMINISTRADOR PELO E-MAIL marc...@teste.com.br DEPARTAMENTO DE 
TECNOLOGIA TESTE SERVICOS.

 

****************************************************************************************************************************************

SAIDA:

May 18 13:13 FROM: <gu...@etste.com.br>  TO: <olive...@zeze.com.br>  FILENAME: 
" ?iso-8859-1?Q?Sociedade_de_informa E7 E3o.doc? "

May 19 17:10 FROM: <j...@yahoo.com.br> TO: <te...@teste.com.br> FILENAME: 
"porta caneta de bambi Luc Brad.wmv"

May 19 17:49 FROM: <faf...@sintercbauru.com.br> TO: <s...@teste.com.br> 
FILENAME: "COLONIA DE FERIAS- SINTERC-PANORAMA.pps"

 

*****************************************************************************************************************************************************************************************************************************************************

SCRIPT:

#!/bin/sh
cat /var/log/maillog|grep ANEXO |sed 's/:/ /g'|sed 's/=/ /g' |sed 's/??/ /g' 
|while read line
do
nomes=(`echo $line`)
##########################################################
count_from=0
while [ $count_from != ${#nom...@]} ]
do
if [ ${nomes[$count_from]} == from ]
then
let "count_from = count_from + 1"
from=`echo ${nomes[$count_from]}`
fi
let "count_from = count_from + 1"
done
###########################################################
count_to=0
while [ $count_to != ${#nom...@]} ]
do
if [ ${nomes[$count_to]} == to ]
then
let "count_to = count_to + 1"
to=`echo ${nomes[$count_to]}`
fi
let "count_to = count_to + 1"
done
###########################################################
count_f=0
while [ $count_f != ${#nom...@]} ]
do
if [ ${nomes[count_f]} == name ]
then
file=`echo $line |grep -o "name \".*\"" |sed 's/name//'`
else
if [ ${nomes[count_f]} == filename ]
then
file=`echo $line |grep -o "filename \".*\"" |sed 's/filename//'`
fi
fi
let "count_f = count_f + 1"
done
###########################################################

data=`echo $line |awk '{print $1, $2, $3":"$4}'`
echo $data FROM: $from TO: $to FILENAME: $file > report
done

 

Luciano Rangel



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

Responder a