Lança o script em vários hosts ao mesmo tempo

2

Então aqui está o que eu quero fazer. Eu tenho um perlScript.pl e uma lista de máquinas: machineA, machineB, machineC. Estas são máquinas linux que eu posso usar. Eu quero emitir este script em todas as três dessas máquinas ao mesmo tempo. Eu estou tentando fazer alguma análise de carga e precisa medir o tempo que leva para os scripts para executar.

Alguma dica?

    
por shergill 19.01.2010 / 06:21

6 respostas

4

você pode encontrar diferentes clientes ssh na rede que se conectam a vários clientes ao mesmo tempo, para que você possa executar comandos ao mesmo tempo. Um desses clientes é cluster ssh . você pode tentar ou procurar um outro cliente na rede.

    
por 19.01.2010 / 07:47
1

Eu recomendo dsh (shell distribuído).

    
por 19.01.2010 / 07:51
1

Configure o NTP para que todas as três caixas sejam sincronizadas com uma fonte comum.

Em seguida, use o at command para executar seu script (aqui está um tutorial )

    
por 19.01.2010 / 06:42
1

pssh é muito parecido com dssh

Você consegue estes ...

/usr/bin/parallel-slurp
/usr/bin/parallel-ssh
/usr/bin/parallel-scp
/usr/bin/parallel-rsync
/usr/bin/parallel-nuke

Tanto pssh quanto dssh não iniciarão seus trabalhos em / EXATAMENTE / ao mesmo tempo. As outras informações dos posters sobre o ajudarão a sincronizar se você estiver preocupado com a variação de sub-segundo.

No entanto, aposto que suas medições são para trabalhos em execução mais longos que não se importam com o pequeno intervalo necessário para conectar novas conexões ssh a cada host.

Boa sorte.

    
por 20.01.2010 / 04:16
0

Alguém já ouviu falar sobre fantoche? Se todo o cliente for um sistema aberto, então o fantoche irá ajudá-lo muito. Veja o site da redectivelab para detalhes.

Com essa ferramenta você pode gerenciar muitas coisas. Nós o usamos para manter uma infinidade de servidores para o mesmo tipo de configuração.

Felicidades!

    
por 19.01.2010 / 17:08
0

Acho que as pessoas estão complicando demais essa questão.

três máquinas? Apenas ssh em cada um deles e corra

time ./perlScript.pl

Se você tem 20,50,100 máquinas, então com certeza, use dsh, pssh, cluster-ssh / terminador / qualquer coisa, mas 3? basta copiar o comando, abrir 3 janelas e clicar em colar 3 vezes.

Eu duvido que a análise de carga precise que os comandos sejam iniciados em milissegundos um do outro, o que é mais útil é cronometrar a execução real.

    
por 20.01.2010 / 04:39

Tags