Varios scripts ao mesmo tempo! [RESOLVIDO]

1. Varios scripts ao mesmo tempo! [RESOLVIDO]

edgar
edgaroliveirace

(usa Ubuntu)

Enviado em 20/08/2011 - 12:01h

Ola amigos do VOL, estou precisando de uma ajudar de vcs sombre uma duvida, queria saber se tem como eu ter um script que execute varios outros ao mesmo tempo. assim tenho 60 scripts para executar ao mesmo tempo so q eu queria q esse script execurtasse 20 script ao mesmo tempo e depois mais 20 ...


  


2. MELHOR RESPOSTA

Hudson Moreira Guimaraes dos Santos
hudyfx

(usa Outra)

Enviado em 29/08/2011 - 12:12h

velho... isso ta parecendo prova de vestibular... nem a prova do google deu tanto pano pra manga assim... então, minhas fixas estão chegando ai fim! e agora! rsrsrs
cara... vo manda um e-mail pro Julio Cesar neves e pedir ajuda... isso ja passou os limites do que é para um ser humano fazer rsrsrs
bele?
bom é isso... vou continuar tentando seguindo sua linha de raciocínio... quem sabe num nasse algo
mas vc por acado tentou dessa forma?


#!/bin/bash
echo l1 >> verifica.txt
.
"aqui o conteudo do seu script"
.
grep -v "l1" verifica.txt > saida.tmp
mv saida.tmp verifica.txt
================
====loja2.sh====
#!/bin/bash
echo l2 >> verifica.txt
.
"aqui o conteudo do seu script"
.
grep -v "l2" verifica.txt > saida.tmp
mv saida.tmp verifica.txt
================
e por ai vai até o 60

e por fim crie um script que vai gerenciar a bagaça toda rsrsr...
#!/bin/bash
for i in `seq 1 60`; do
while true; do
if [ `cat verifica.txt | wc -l ` -le 20 ]; then
./loja$i.sh &
break
fi
done
done

eu achei que assim ia funfar...

3. Re: Varios scripts ao mesmo tempo! [RESOLVIDO]

Raimundo Alves Portela
rai3mb

(usa Outra)

Enviado em 20/08/2011 - 13:25h

#!/bin/bash

for x in $(seq 3)
do
./script1 & \
./script2 & \
./scriptN
done
----------------------------------------------
ou
-------------------------------------------
#!/bin/bash
for x in $(seq 3)
do
for script in $(ls -1 *.sh)
do
./$script & echo "iniciado script $script com PID $!"
done
done
----------------------------------------------


Acho que já dar para você ter mais ideias com isso.

Abraços


4. Varios scripts ao mesmo tempo!

edgar
edgaroliveirace

(usa Ubuntu)

Enviado em 22/08/2011 - 12:38h

nao entendir, onde posso colocar quantos scripts posso executar ao mesmo tempo! se vc souber como posso fazer tb transforma esse 6 script em um so, ja que eles fazem a mesma coisa so q em ips diferentes ex:

ddd= "85,86 ou 86"
x="numero da loja"
for x in $(seq 1 60); do
sshpass -p password ssh root@10.$ddd.$x.1 /transf/loja$x.sh exit
done

os 60 scripts fazem isso, aqui queria q eles fossem executados em 20 em 20.


5. Re: Varios scripts ao mesmo tempo! [RESOLVIDO]

Raimundo Alves Portela
rai3mb

(usa Outra)

Enviado em 22/08/2011 - 12:49h

Você tem que analisar e adaptar, veja:

ddd= "85,86 ou 86"
x="numero da loja"

funcao1() {
for x in $(seq 1 20); do
sshpass -p password ssh root@10.$ddd.$x.1 /transf/loja$x.sh exit
done
}

funcao2() {
for x in $(seq 21 40); do
sshpass -p password ssh root@10.$ddd.$x.1 /transf/loja$x.sh exit
done
}

funcao3() {
for x in $(seq 41 60); do
sshpass -p password ssh root@10.$ddd.$x.1 /transf/loja$x.sh exit
done
}

Tem 3 for e cada um vaz de 20 em 20, para executar ao mesmo tempo é só chamar cada um passando para background.

funcao1 & funcao2 & funcao3

--------------------------
Dar para fazer de outras formas, como
funcao() {
for x in $(seq $PRI $ULT); do
sshpass -p password ssh root@10.$ddd.$x.1 /transf/loja$x.sh exit
done
}

funcao 1 20

E por ai vai....


Abraços


6. Re: Varios scripts ao mesmo tempo! [RESOLVIDO]

Geraldo Albuquerque
AprendiNoLinux

(usa Ubuntu)

Enviado em 22/08/2011 - 13:08h

Olá @edgaroliveirace , tenho problema similar ao seu pra resolver rsrs.
Por que tem que ser 20 de uma vez ?
Não podem entrar em sequência de 0.5 segundos de intervalo entre eles ?
Seria uma apenas fazendo um while continuo e em background como foi falado.



7. Varios scripts ao mesmo tempo!

edgar
edgaroliveirace

(usa Ubuntu)

Enviado em 22/08/2011 - 14:06h

Nao sei se sou burro ou nao estou entendendo, fiz desse jeito mais nao estar saindo do jeito esperado estar fazendo todos de uma so vez. voltei para a execuçao de varios scripts.

funcao1() {
for x in $(seq $1 $2); do
lojas/loja$x.sh & echo "iniciado script $script com PID $!"
done
}
funcao1 1 10

funcao2() {
for y in $(seq $1 $2); do
lojas/loja$y.sh & echo "iniciado script $script com PID $!"
done
}
funcao2 11 20 ...etc , executando em 10 em 10, era pra ser




8. Varios scripts ao mesmo tempo!

edgar
edgaroliveirace

(usa Ubuntu)

Enviado em 22/08/2011 - 14:19h

ola AprendiNoLinux gostaria de executar 20 em 20, por que nao queria executar todos ao mesmo tempo ou um por um. por causa que meu link é apenas 1Mb, esses scripts compactar uns arquivos e joga no ftp, aquivos de pelo menos 50mb ate 150mb.


9. Re: Varios scripts ao mesmo tempo! [RESOLVIDO]

Raimundo Alves Portela
rai3mb

(usa Outra)

Enviado em 22/08/2011 - 14:23h

@mrk3004
Não sabia a resposta, mas testando olha no que deu:

$ ./teste_sem_parenteses.sh
executando funcao3
executando funcao2
executando funcao1

$ ./teste_com_parenteses.sh
executando funcao1
executando funcao2
executando funcao3

Ele inverte a sequencia do que é executado em background :-)

ABraços


10. Re: Varios scripts ao mesmo tempo! [RESOLVIDO]

Perfil removido
removido

(usa Nenhuma)

Enviado em 22/08/2011 - 14:32h

@rai3mb Até apaguei a pergunta, achei muito boba rsrs, mas ... Agora já deu pra entender porque nos manuais sempre há parentes, imagina a confusão que isso pode causar em um script mais complexo rs


11. Varios scripts ao mesmo tempo!

edgar
edgaroliveirace

(usa Ubuntu)

Enviado em 22/08/2011 - 14:55h

alguem sabe a soluçao?


12. Re: Varios scripts ao mesmo tempo! [RESOLVIDO]

Perfil removido
removido

(usa Nenhuma)

Enviado em 22/08/2011 - 15:10h

Não entendi bem o que quer, mas de acordo com o seu script, acho que o que vc quer é isso :

funcao1() {
for x in $(seq $1 $2); do
lojas/loja$x.sh & echo "iniciado script $script com PID $!"
done
}

funcao2() {
for y in $(seq $1 $2); do
lojas/loja$y.sh & echo "iniciado script $script com PID $!"
done
}

(funcao1 1 10) & (funcao2 11 20)
wait

obs.: o wait espera que todas as funções anteriores terminem antes de executar o próximo comando

obs.2: use & para executar em paralelo






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts