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
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?
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
Tags ssh linux shell-script