como usar sair aqui dentro doc

0

Eu tenho um script quando eu uso várias conexões ssh dentro do HEREDOC, assim:

ssh -A -tt -l user 192.168.1.2 <<EOF
  ping server1 -c3
  ssh server2
  nslookup www.gogole.com
  exit
  ssh server3
  ifconfig
  exit
EOF

no entanto, quando eu uso exit dentro do EOF, ele para o script de processamento em vez de sair da sessão SSH, alguma idéia / truque como eu posso sair da sessão ssh ao invés do script inteiro?

#'~.'  - terminate session - doesn't work unfortunately
    
por mauek unak 14.09.2017 / 12:52

2 respostas

2

Se você quiser ficar aqui doc

ssh -A -tt -l user 192.168.1.2 <<EOF
  ping server1 -c3
  ssh server2 <<foobar1
  nslookup www.gogole.com
  more commands
  exit
foobar1
  ssh server3 <<foobar2
  ifconfig
  more more commands
  exit
foobar2
EOF
  • você pode usar qualquer palavra para fechar o documento aqui.
  • deleimiter deve começar uma linha.
  • ou use <<-word
por 14.09.2017 / 13:21
1
ssh -A -tt -l user 192.168.1.2 <<EOF
  ping server1 -c3
  ssh server2 nslookup www.gogole.com
  ssh server3 ifconfig
EOF

O comando ssh sairá quando terminar de executar os comandos fornecidos.

Para vários comandos, use sh -c :

ssh -A -tt -l user 192.168.1.2 <<EOF
  ping server1 -c3
  ssh server2 sh -c 'nslookup www.gogole.com; echo done'
  ssh server3 sh -c 'ifconfig; df -k'
EOF

Se você tiver mais do que algumas coisas básicas para fazer em server2 e server3 , crie scripts nesses servidores e os execute.

    
por 14.09.2017 / 13:07