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: CQC
Subject: Re: [shell-script] Mover resultado do filtro para pasta de destino
Date: Wed, 22 Oct 2008 12:38:20 -0200

Opa....

Vamos lá.

Primeiro crie o arquivo_com_a_lista_dos_nomes_um_por_linha.txt

Depois crie um script com o conteúdo abaixo:


#!/bin/bash

for nome in `cat arquivo_com_a_lista_dos_nomes_um_por_linha.txt`; do

find /var/lib/amavis/virusmails/ |xargs grep -s -a -i "X-Envelope-To: <${
nome}@dominio.com.br <address@hidden>>" |cut -d: -f1 >
arquivos_encontrados.txt

for i in `cat arquivos_encontrados.txt`;do mv $i /home/vmail/
dominio.com.br/${nome}/.Quarentena/cur/ 2> /dev/null;done

/bin/chown -R vmail:vmail /home/vmail/dominio.com.br/${nome}/.Quarentena/*

done

Posta ai prá gente se deu tudo certo.

Moleza????
Abraços!!!


2008/10/22 Alan <address@hidden>

>   Olá CQC,
>
> Quero agradecer a você e também ao Fabiano que me ajudaram a chegar no
> script que precisava. Consegui adaptar seu script e agora esta funcionando
> do jeito que preciso. Muito obrigado a todos que foram prestativos. Agora
> tomei uma decisão, ta na hora de comprar um livro de shell script descente
> e
> assim também poder ajudar o pessoal da lista. Abaixo esta o script que
> estou
> usando, ele tem a funçao de mover os spams para a pasta ".Quarentena" das
> caixas dos usuarios, uma vez que o programa de anti-spam amavis-new aloca
> todos os spams em um mesmo lugar.
>
> _______________________
>
> !/bin/bash
>
> # Descompacta spams
>
> /bin/gunzip -r /var/lib/amavis/virusmails/
>
> # Procura os spams e move para as pastas dos usuarios
>
> find /var/lib/amavis/virusmails/ |xargs grep -s -a -i 'X-Envelope-To:
> <address@hidden <alan%40dominio.com.br>>' |cut -d: -f1 >
> arquivos_encontrados.txt
>
>
> for i in `cat arquivos_encontrados.txt`;do mv $i
> /home/vmail/dominio.com.br/alan/.Quarentena/cur/ 2> /dev/null;done
>
> find /var/lib/amavis/virusmails/ |xargs grep -s -a -i 'X-Envelope-To:
> <address@hidden <ricardo%40dominio.com.br>>' |cut -d: -f1 >
> arquivos_encontrados.txt
>
> for i in `cat arquivos_encontrados.txt`;do mv $i
> /home/vmail/dominio.com.br/ricardo/.Quarentena/cur/ 2> /dev/null;done
>
> find /var/lib/amavis/virusmails/ |xargs grep -s -a -i 'X-Envelope-To:
> <address@hidden <financeiro%40dominio.com.br>>' |cut -d: -f1 >
> arquivos_encontrados.txt
>
> for i in `cat arquivos_encontrados.txt`;do mv $i
> /home/vmail/dominio.com.br/financeiro/.Quarentena/cur/ 2> /dev/null;done
>
> find /var/lib/amavis/virusmails/ |xargs grep -s -a -i 'X-Envelope-To:
> <address@hidden <atendimento%40dominio.com.br>>' |cut -d: -f1
> > arquivos_encontrados.txt
>
> for i in `cat arquivos_encontrados.txt`;do mv $i
> /home/vmail/dominio.com.br/atendimento/.Quarentena/cur/ 2> /dev/null;done
>
> # Muda o dono e grupo dos spams
>
> /bin/chown -R vmail:vmail /home/vmail/dominio.com.br/alan/.Quarentena/*
>
> /bin/chown -R vmail:vmail /home/vmail/dominio.com.br/ricardo/.Quarentena/*
>
> /bin/chown -R vmail:vmail
> /home/vmail/dominio.com.br/financeiro/.Quarentena/*
>
> /bin/chown -R vmail:vmail
> /home/vmail/dominio.com.br/atendimento/.Quarentena/*
>
> __________________
>
> Aproveitando a deixa, alguém tem alguma idéia de como otimizar isso para
> uma
> situação maior, por exemplo para 100 contas de emails??????
>
> _____
>
> De: address@hidden <shell-script%40yahoogrupos.com.br>[mailto:
> address@hidden <shell-script%40yahoogrupos.com.br>]
> Em nome de CQC
> Enviada em: quarta-feira, 22 de outubro de 2008 01:32
> Para: address@hidden <shell-script%40yahoogrupos.com.br>
> Assunto: Re: [shell-script] Mover resultado do filtro para pasta de destino
>
> Alan, dando uma lida rápida percebi um erro seu de digitação.
>
> Altere:
> while [ $# -gt o ];do
> Por:
> while [ $# -gt 0 ];do
>
> Não sei se o problema é esse. Mas....
>
> 2008/10/22 Alan <alan_testoni@ 
> <mailto:alan_testoni%40yahoo.com.br<alan_testoni%2540yahoo.com.br>
> >
> yahoo.com.br>
>
> > 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: shell-script@ 
> > <mailto:shell-script%40yahoogrupos.com.br<shell-script%2540yahoogrupos.com.br>
> >
> yahoogrupos.com.br <shell-script%40yahoogrupos.com.br>[mailto:
> > shell-script@ 
> > <mailto:shell-script%40yahoogrupos.com.br<shell-script%2540yahoogrupos.com.br>
> >
> yahoogrupos.com.br <shell-script%40yahoogrupos.com.br>]
> > Em nome de Fabiano Caixeta Duarte
> > Enviada em: terça-feira, 21 de outubro de 2008 17:41
> > Para: shell-script@ 
> > <mailto:shell-script%40yahoogrupos.com.br<shell-script%2540yahoogrupos.com.br>
> >
> yahoogrupos.com.br <shell-script%40yahoogrupos.com.br>
> > 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 <alan_testoni%2540yahoo.com.br>
> <alan_testoni%2540yahoo.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 <mtbiaoqjc%2540bleakwail.com><mtbiaoqjc%
> 2540bleakwail.com>>
> > .com>
> > > Delivered-To: spam-quarantine
> > > X-Envelope-From: <mtbiaoqjc@bleakwail
> <mailto:mtbiaoqjc%40bleakwail.com <mtbiaoqjc%2540bleakwail.com><mtbiaoqjc%
> 2540bleakwail.com>
> > >
> > .com>
> > > X-Envelope-To: <financeiro@dominio.
> <mailto:financeiro%40dominio.com.br <financeiro%2540dominio.com.br>
> <financeiro%2540dominio.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 <financeiro%2540dominio.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 <alan%2540dellap.com.br><alan%
> 2540dellap.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 <fcd.listas%2540gmail.com> <fcd.listas%
> 2540gmail.com>> com>
> > > escreveu:
> > >
> > > De: Fabiano Caixeta Duarte <fcd.listas@gmail.
> > <mailto:fcd.listas%40gmail.com <fcd.listas%2540gmail.com> <fcd.listas%
> 2540gmail.com>> com>
> > > Assunto: Re: [shell-script] Mover resultado do filtro para pasta de
> > destino
> > > Para: shell-script@
> <mailto:shell-script%40yahoogrupos.com.br<shell-script%2540yahoogrupos.com.br>
> <shell-script%2540yahoogrupos.com.b
> r>
> > >
> >
> > 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> <ricardo%25> <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]
> >
> >
> >
>
> [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]