Cara nesse caso eu lido mais ou menos com um fluxo de 250.000 emails hora, esse é um script para uso em casos criticos pois na fila do postfix uma quantidade dessa de email faz minhas maquinas morrerem e seria usado apenas no caso de problema de entrega e filtrar palavras especiais.
Na verdade estava estudando a possibilidade de usar não só para isso existem varias aplicações para threads no shell caso seja possível balancear o processamento sempre pode ser útil. Estou fazendo alguns testes e se eles forem positivos posto aqui na lista :). []s Jorge Pereira wrote: > > > putz!! > > Pra que fazer um "tanque de guerra" para matar um formiga? > > []s > > On 5/23/07, Juliano <[EMAIL PROTECTED] > <mailto:juliano%40falaserio.org>> wrote: > > > > Na verdade isso ainda é uma estudo de caso para ver consigo resolver em > > shell ao invés de escrever um binário para isso: > > > > Vamos supor um script de limpeza de spam: > > > > Eu gostaria de ao tempo que o script faz o total de msgs desses > > diretórios ele dividisse o a remoção em 4 processos por exemplo, e fosse > > realocando os ids de mensagem a medida que uma fila de remoção de cada > > um dos processos fosse diminuindo, nesse caso não adianta eu fazer job > > control ou fork desse shell, pois assim não tenho controle do que está > > sendo processado, e supondo que acabou o lista do primeiro ele não vai > > balancear entre os outros 3 em memória para continuar usando 4 processos > > de remoção. > > > > Cheguei a fazer uma contagem do total dividir isso em um array e fazer > > os sub processos mas isso cai na situação que eu disse acima: > > > > pid 10 shell ---> pid 11 10 fork 1 = 1000msgs > > pid 12 10 fork 2 = 1000msgs > > pid 13 10 fork 3 = 1000msgs > > pid 14 10 fork 4 = 1000msgs > > > > Caso o fork 1 acabe e tenhamos a situação: > > > > pid 10 shell ---> pid 11 10 fork 1 = 0 > > pid 12 10 fork 2 = 700msgs > > pid 13 10 fork 3 = 900msgs > > pid 14 10 fork 4 = 500msgs > > > > Eu gostaria de redistribuir e balancear o que não esta em processamento > > no momento ganhando performance com isso e o único jeito que vejo de > > fazer isso é usando threads dai veio a pergunta. > > > > ## Original ## > > #!/bin/bash > > > > match="pr0n|echa" > > > > count=0 > > for messages in /var/spool/postfix/maildrop/* > > /var/spool/postfix/defer/*/* /var/spool/postfix/deferred/*/* > > /var/spool/postfix/active/*/* > > do > > if [ -f $messages ] ; then > > message=$(echo $messages | awk -F'/' '{if ( $5 ~ /maildrop/ ) { > > gsub(/\*/,"",$6) ; print $6 } else { gsub(/\*/,"",$7) ; print $7}}') > > if egrep -i "$match" $messages > /dev/null ; then > > postsuper -c /etc/postfix -d $message > > spam="$message $spam" > > count=$(expr $count + 1) > > fi > > fi > > done > > echo "Foram removidas $count mensagens" > > > > Tiago Barcellos Peczenyj wrote: > > > > > > > > > Juliano, explique melhor > > > > > > O meu conhecimento vai até colocar um ou mais processos em backgrounds, > > cada > > > um com um PID associado. Vc pode enviar sinais para estes PIDs (kill / > > trap) > > > e pode aguardar o fim desses PIDs via comando wait. > > > > > > O que vc gostaria de fazer alem disso, Juliano? > > > > > > []´s Tiago > > > > > > On 5/23/07, Juliano <[EMAIL PROTECTED] > <mailto:juliano%40falaserio.org> <juliano%40falaserio.org> > > > <mailto:juliano% <juliano%25>40falaserio.org>> wrote: > > > > > > > > Caros, > > > > > > > > Alguém sabe se existe alguma implementação ou um modo não traumático > > de > > > > fazer mult-thread em bash, ou outro shell. > > > > > > > > []s > > > > ncode > > > > > > > > > > > > > > > > > > -- > > > Tiago B Peczenyj > > > Linux User #405772 > > > > > > # cd /pub > > > # more beer > > > > > > [As partes desta mensagem que não continham texto foram removidas] > > > > > > > > > > > > > > -- > Regards, > + > ----------------------------------------------------------+ > Jorge Pereira, From: Olinda/Pe/Brazil > Home: http://www.jorgepereira.com.br/ <http://www.jorgepereira.com.br/> > E-mail: [EMAIL PROTECTED] <mailto:jpereiran%40gmail.com>, > [EMAIL PROTECTED] <mailto:jorge%40jorgepereira.com.br> > Mobile: +55 (81) 8833-2484 > My Public Key: http://www.jorgepereira.com.br/public.pgp > <http://www.jorgepereira.com.br/public.pgp> > + > ----------------------------------------------------------+ > "Se você ama alguma coisa, liberte-a; > Se ela não voltar a ti, cace-a e mate-a." > +----------------------------------------------------------+ > > [As partes desta mensagem que não continham texto foram removidas] > >