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