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: Wed, 22 Oct 2008 09:56:36 -0300

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>' |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>' |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>' |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>' |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 [mailto:address@hidden]
Em nome de CQC
Enviada em: quarta-feira, 22 de outubro de 2008 01:32
Para: address@hidden
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
>
> 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>
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: <mtbiaoqjc@bleakwail
<mailto:mtbiaoqjc%40bleakwail.com<mtbiaoqjc%2540bleakwail.com>>
> .com>
> > Delivered-To: spam-quarantine
> > X-Envelope-From: <mtbiaoqjc@bleakwail
<mailto:mtbiaoqjc%40bleakwail.com<mtbiaoqjc%2540bleakwail.com>
> >
> .com>
> > X-Envelope-To: <financeiro@dominio.
<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 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>>
> 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>> com>
> > escreveu:
> >
> > De: Fabiano Caixeta Duarte <fcd.listas@gmail.
> <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#*@}/ ${email%@ *}
> > > dominio.com. br/fulano
> > >
> > > --
> > >
> > > #find /var/lib/amavis/ virusmails/ |xargs grep -s -a -i
> ricardo@dominio.
> > > <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#*@}/${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]



reply via email to

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