Como usar o pssh para executar vários servidores com comandos diferentes?

0

Eu preciso testar o sistema distribuído com vários servidores remotos, então eu uso pssh no servidor mestre para controlar outros. Aqui precisa executar vários servidores com comandos diferentes, por exemplo

No servidor 201, precisa ser executado

java -jar test.jar 9001 **.**.**.** 9001
java -jar test.jar 9001 **.**.**.** 9002

No servidor 202, precisa ser executado

java -jar test.jar 9001 **.**.**.** 9003
java -jar test.jar 9001 **.**.**.** 9004

No servidor 203, precisa executar

java -jar test.jar 9001 **.**.**.** 9005
java -jar test.jar 9001 **.**.**.** 9006

...

Todas as informações do servidor já foram salvas no arquivo hosts.txt com o formato username @ server . Então, como usar o pssh no servidor master para executar os comandos?

    
por Andi 24.12.2016 / 01:31

1 resposta

1

pssh é usado para executar exatamente o mesmo comando em servidores diferentes, seu exemplo mostra que você deseja executar comandos diferentes em servidores diferentes (o início dos comandos é o mesmo, mas o último número é diferente). / p>

O que você pode fazer é colocar esses comandos em um arquivo de script em cada um de seus respectivos servidores, certificando-se de que o arquivo de script seja chamado de igual em cada servidor e, em seguida, use pssh -i -h hosts.txt script.sh .

Como exemplo, no servidor 201 coloque em script.sh

#!/bin/sh
java -jar test.jar 9001 **.**.**.** 9001
java -jar test.jar 9001 **.**.**.** 9002

e no servidor 202 colocado em script.sh

#!/bin/sh
java -jar test.jar 9001 **.**.**.** 9003
java -jar test.jar 9001 **.**.**.** 9004

etc.

Em seguida, coloque script.sh no $ PATH do usuário que executará o comando ou forneça o caminho completo para o script e não se esqueça de torná-lo executável nos servidores.

    
por 24.12.2016 / 02:20