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

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

RES: [shell-script] Mover resultado do filtro para pasta de destino


From: Alan
Subject: RES: [shell-script] Mover resultado do filtro para pasta de destino
Date: Tue, 21 Oct 2008 23:54:57 -0300

Olá Fabiano,

 

Não sei se estou transcrevendo algo errado, mas ao executar o script me
aparece a mensagem abaixo

 

 

root@astra:~# find /var/lib/amavis/virusmails/ -type f |xargs
/usr/local/bin/testespam.sh

/usr/local/bin/testespam.sh: line 3: [: o: integer expression expected

 

Juro também que pouco entendi do script mas repassei conforme abaixo. Espero
que voce possa me ajudar.  Obrigado.

 

#!/bin/bash

 

while [ $# -gt o ];do

email=$(grep X-Envelope-To $1 |sed 's/^.*<\([^>]*\)>/\1/')

target=/home/vmail/${email#*@}/${email%@*}/.Quarentena

echo mkdir -p $target

echo mv $1 $target

shift

done

 

  _____  

De: address@hidden [mailto:address@hidden]
Em nome de Fabiano Caixeta Duarte
Enviada em: terça-feira, 21 de outubro de 2008 17:41
Para: address@hidden
Assunto: Re: [shell-script] Mover resultado do filtro para pasta de destino

 

2008/10/19 Alan Testoni <alan_testoni@ <mailto:alan_testoni%40yahoo.com.br>
yahoo.com.br>

> Olá Fabiano, agradeço a força por tentar ajudar.
>
> Os textos de origem são as mensagens de spam armazenadas pelo amavis-new
> com o conteudo na forma do exemplo abaixo:
>
> Return-Path: <mtbiaoqjc@bleakwail <mailto:mtbiaoqjc%40bleakwail.com> .com>
> Delivered-To: spam-quarantine
> X-Envelope-From: <mtbiaoqjc@bleakwail <mailto:mtbiaoqjc%40bleakwail.com>
.com>
> X-Envelope-To: <financeiro@dominio. <mailto:financeiro%40dominio.com.br>
com.br>
> X-Quarantine-ID: <fZZJZyY+3sYx>
> X-Spam-Flag: YES
> X-Spam-Score: 19.207
> X-Spam-Level: *******************
>
> O que preciso é que um script consiga ler todos os arquivos de
> mensagem identificando o resultado do campo "X-Envelope-To:" Se for como
> nesse exemplo pro financeiro@dominio. <mailto:financeiro%40dominio.com.br>
com.br então o script moverá a
> mensagem para a pasta "/home/vmail/dominio.com.br/financeiro/.Quarentena".
> Se o campo tivesse alan@dellap. <mailto:alan%40dellap.com.br> com.br então
o script moveria a mensagem
> para a pasta "/home/vmail/dominio.com.br/alan/.Quarentena" e assim com
> todas as outras mensagens que estão no diretório padrão de repositório de
> spam do Amavis-new, que é o "/var/lib/amavis/virusmail"
>
> Espero ter conseguido explicar.
>
>
> --- Em sáb, 18/10/08, Fabiano Caixeta Duarte <fcd.listas@gmail.
<mailto:fcd.listas%40gmail.com> com>
> escreveu:
>
> De: Fabiano Caixeta Duarte <fcd.listas@gmail.
<mailto:fcd.listas%40gmail.com> com>
> Assunto: Re: [shell-script] Mover resultado do filtro para pasta de
destino
> Para: shell-script@ <mailto:shell-script%40yahoogrupos.com.br>
yahoogrupos.com.br
> Data: Sábado, 18 de Outubro de 2008, 23:31
>
>
>
>
>
>
> 2008/10/18 Alan <alan_testoni@ yahoo.com. br>
>
> >
> >
> > Fabiano obrigado por tentar me ajudar mas como como devo usar isto? Não
> > entendi sua ajuda.
> >
> >
> >
> >
> >
> > _____
> >
> >
> > >
> >
> > Isto deve te ajudar:
> >
> > email=fulano@ dominio.com. br; echo ${email#*@}/ ${email%@ *}
> > dominio.com. br/fulano
> >
> > --
> >
> > #find /var/lib/amavis/ virusmails/ |xargs grep -s -a -i ricardo@dominio.
> > <mailto:ricardo% <ricardo%25> 40dominio. com.br <ricardo%2540domini
> o.com.br> > com.br |cut
> > -d: -f1
> >
> >
> >
> > ------- Resultado da busca ------------ --
> > /var/lib/amavis/ virusmails/ H/spam-HuNkPNOvu Lql
> > /var/lib/amavis/ virusmails/ H/spam-HuNkPNOvu Lql
> > /var/lib/amavis/ virusmails/ H/spam-HuNkPNOvu Lql
> > /var/lib/amavis/ virusmails/ H/spam-HuNkPNOvu Lql
> > /var/lib/amavis/ virusmails/ d/spam-d8Pc27NNj mSB
> > /var/lib/amavis/ virusmails/ d/spam-d8Pc27NNj mSB
> >
> >
> >
> > [As partes desta mensagem que não continham texto foram removidas]
> >
>
> É o que venho te dizendo. Mostre um exemplo do texto de origem para que
> possamos te ajudar na solução.
>
> Pelo que vi você está usando maildir.
>
> No aguardo,
>

Alan,

Não sei se você já resolveu. Só hoje consegui te responder.

Vai aí um script mastigadinho ;) Só vai precisar (talvez) estudar pra
entender e, eventualmente, adaptar

cat quarentena.sh

#!/bin/bash

while [ $# -gt 0 ]; do
email=$(grep X-Envelope-To $1 | sed 's/^.*<\([^>]*\)>/\1/')
target=/home/vmail/${email#*@}/${email%@*}/.Quarentena
echo mkdir -p $target
echo mv $1 $target
shift
done

Uso:

find /caminho/dos/spams -type f | xargs /caminho/do/script/quarentena.sh

Se funcionar, retire os echos e seja feliz ;)

-- 
Fabiano Caixeta Duarte
Especialista em Redes de Computadores
Linux User #195299
Ribeirão Preto - SP

[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]