Chamando paralelo ssh (pssh) no script bash

1

Eu posso executar comandos em paralelo em uma lista de máquinas usando o comando pssh . Por exemplo, para criar uma pasta foo em várias máquinas, listadas em hosts.txt , posso executar:

pssh -h hosts.txt -l MyUserName "mkdir foo"

Mas como o comando requer mais argumentos (isto é, usando chave pública para autenticação, etc) eu tentei criar o seguinte script bash bar.sh , de forma que o comando que eu quero executar seja simplesmente dado como argumento para o script:

#!/bin/bash
pssh -h hosts.txt -l MyUserName "$@"

Mas rodar bar.sh mkdir foo congela o terminal, mesmo eu não posso matá-lo usando Ctrl + C.

Alguma ideia?

    
por Ali 11.03.2015 / 08:19

1 resposta

0

Eu não estou muito familiarizado com pssh . Você recebe o mesmo erro se estiver usando o GNU Parallel:

#!/bin/bash
parallel -j10 --slf hosts.txt --nonall "$@"

Coloque o nome de usuário em hosts.txt:

myuser@host1
myuser@host2
    
por 11.03.2015 / 08:35