ssh para um servidor, execute alguns comandos manuais e saia

0

É possível criar um script que possa ssh para múltiplos hosts um após o outro (não paralelo) e esperar até eu sair da sessão ssh existente?

Tenho mais de 50 hosts. Aqui estão os passos:

  1. host 1 do SSH
  2. No prompt de comando do host 1, execute um conjunto de operações (manualmente) e saia da sessão (manualmente).
  3. O script detecta automaticamente a saída e o SSH para o próximo host.

Tentando usar as ferramentas existentes no rhel 6.x. Eu estava imaginando se alguém fez isso com ferramentas internas

Eu poderia fazer algo assim: mas eu só preciso saber como fazer o script esperar até eu terminar as operações.

usr=test
svrs=("192.168.18.48" "192.168.191.237" )
for x in ${!svrs[*]} ; do
        ip='echo ${svrs[x]}'
        ssh $usr@$ip
done 
    
por Jacky 20.04.2018 / 12:05

1 resposta

2

Exatamente assim.

Do ponto de vista do shell, ssh $usr@$ip não é diferente de iniciar qualquer outro programa, que pode interagir com o usuário. Uma vez que a entrada e a saída do programa não foram redirecionadas e o programa não está sendo executado em segundo plano, o programa estará livre para interagir com o usuário da forma que desejar.

Você não precisa fazer nada de especial para "fazer o script esperar até terminar as operações": o script aguardará até que o comando "ssh" seja concluído, ou em outras palavras, até que a sessão SSH seja encerrada.

    
por 20.04.2018 / 13:55