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

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

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


From: Fabiano Caixeta Duarte
Subject: Re: [shell-script] Mover resultado do filtro para pasta de destino
Date: Tue, 21 Oct 2008 18:41:13 -0200

2008/10/19 Alan Testoni <address@hidden>

> 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: <address@hidden>
> Delivered-To: spam-quarantine
> X-Envelope-From: <address@hidden>
> X-Envelope-To: <address@hidden>
> 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 address@hidden então o script moverá a
> mensagem para a pasta "/home/vmail/dominio.com.br/financeiro/.Quarentena".
> Se o campo tivesse address@hidden  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 <address@hidden>
> escreveu:
>
> De: Fabiano Caixeta Duarte <address@hidden>
> Assunto: Re: [shell-script] Mover resultado do filtro para pasta de destino
> Para: address@hidden
> 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]



reply via email to

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