Como faço para executar scripts remotamente em vários servidores, mixar saída

1

Oi eu estou procurando por um software ou algum tipo de técnica que me permita fazer o seguinte em uma janela de terminal:

  • Tome como entrada uma lista de máquinas ativadas para ssh com informações de login, senha e caminho de script, algo assim:

    login:[email protected]/path/to/script/run.sh login:[email protected]/path/to/script/run.sh

  • Abra conexões ssh com essas máquinas e execute os scripts especificados remotamente.

  • A saída de todos os scripts deve ser canalizada para minha janela local.
  • Quando eu envio um sinal como Ctrl-C, eu quero matar os scripts remotos e depois a conexão. Uma enorme vantagem seria se a minha máquina cair, os scripts remotos também são mortos.

Uma vantagem seria se eu pudesse usar isso no terminal Cygwin, já que é o que eu uso, mas estou aberto a qualquer coisa que possa fazer isso.

    
por Dreen 09.05.2013 / 11:50

3 respostas

0

Suponho que você esteja usando o OpenSSH. É deliberadamente difícil atribuir uma senha ao ssh através de programação, porque normalmente é uma má idéia. Em vez de usar senhas, você pode usar a autenticação de chave pública ? Se assim for, o seguinte deve fazer o truque:

for cmd in [email protected]:/path/to/script/run.sh [email protected]:/path/to/script/run.sh; do
    ssh ${cmd%%:*} ${cmd#*:}
done
    
por 09.05.2013 / 16:23
0

Você precisará da autenticação de chave pública, e também precisará de algo como o PSSH, que é uma ferramenta baseada em python para executar várias sessões ssh paralelas.

link

    
por 10.05.2013 / 11:23
0

Se você pode escrever Perl, você deve checar Net :: OpenSSH :: Parallel .

Ele pode efetuar login nos hosts remotos usando a autenticação de chave pública ou senha e executar as tarefas programadas em paralelo.

    
por 23.05.2013 / 10:54