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

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

Re: mult-thread bash


From: Juliano
Subject: Re: mult-thread bash
Date: Thu, 24 May 2007 10:23:32 -0300
User-agent: Icedove 1.5.0.10 (X11/20070329)

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 <address@hidden <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 <address@hidden <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: address@hidden <mailto:jpereiran%40gmail.com>, address@hidden <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]





reply via email to

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