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: <[EMAIL PROTECTED]>' |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: <[EMAIL PROTECTED]>' |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: <[EMAIL PROTECTED]>' |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: <[EMAIL PROTECTED]>' |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: [email protected] [mailto:[EMAIL PROTECTED] Em nome de CQC Enviada em: quarta-feira, 22 de outubro de 2008 01:32 Para: [email protected] 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> yahoo.com.br> > Olá Fabiano, > > Não sei se estou transcrevendo algo errado, mas ao executar o script me > aparece a mensagem abaixo > > [EMAIL PROTECTED]:~# 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 PROTECTED]/[EMAIL PROTECTED]/.Quarentena > > echo mkdir -p $target > > echo mv $1 $target > > shift > > done > > _____ > > De: shell-script@ <mailto:shell-script%40yahoogrupos.com.br> yahoogrupos.com.br <shell-script%40yahoogrupos.com.br>[mailto: > shell-script@ <mailto:shell-script%40yahoogrupos.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> 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> > > > 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: <[EMAIL PROTECTED] <mailto:mtbiaoqjc%40bleakwail.com<mtbiaoqjc%2540bleakwail.com>> > .com> > > Delivered-To: spam-quarantine > > X-Envelope-From: <[EMAIL PROTECTED] <mailto:mtbiaoqjc%40bleakwail.com<mtbiaoqjc%2540bleakwail.com> > > > .com> > > X-Envelope-To: <[EMAIL PROTECTED] <mailto:financeiro%40dominio.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 [EMAIL PROTECTED] <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 [EMAIL PROTECTED] <mailto:alan%40dellap.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 <[EMAIL PROTECTED] > <mailto:fcd.listas%40gmail.com <fcd.listas%2540gmail.com>> com> > > escreveu: > > > > De: Fabiano Caixeta Duarte <[EMAIL PROTECTED] > <mailto:fcd.listas%40gmail.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.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 PROTECTED]/ ${email%@ *} > > > dominio.com. br/fulano > > > > > > -- > > > > > > #find /var/lib/amavis/ virusmails/ |xargs grep -s -a -i > [EMAIL PROTECTED] > > > <mailto:ricardo% <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 PROTECTED]/[EMAIL PROTECTED]/.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]
