bash scripting: usando esperar

1

Estou enfrentando um problema quando executo simplesmente esses comandos.

O servidor remoto deseja passar "sim" para adicionar a chave no arquivo RSA porque a primeira conexão estabelecida com o scp.

os comandos são dados abaixo

#!/bin/bash

scp  -P58222 root@IP:/root/K /N
/usr/bin/expect -c 'expect "\n" { expect "Are you sure you want to continue connecting (yes/no)?" }'
send "yes\r"
expect "$ "
send "exit\r"

Na verdade eu tenho que passar yes no meu script enquanto mostra

Are you sure you want to continue connecting (yes/no)?

como posso me livrar desse problema ...?

    
por Hassan Sohail 30.03.2015 / 17:25

2 respostas

1

Em vez de criar scripts com a resposta esperada, desative o aviso antes de adicionar.

scp -o "StrictHostKeyChecking no" ...

Como você está usando expect com ssh em primeiro lugar, direi apenas que ssh-copy-id para configurar o ssh sem senha é uma maneira muito melhor de fazer as coisas.

    
por 22.04.2015 / 22:36
1

Aqui está um fragmento do meu script de trabalho.

  send_user "FILE \"FILETEMPL\" is copied to active.\n"  
  spawn scp -l 60 FILETEMPL root@IP:PATHTEMPL/FILETEMPL  
  # After scp we should wait "#" or "100%".  
  set timeout 600  
  expect {  
    "password: " {   
      send "PASS\r"   
        expect {  
          "100% "         {...}  
          "password: " { .. }  
          timeout      { ... }  
      }   
    }  
    timeout      { exit 1 }  
    eof          { exit 2 }  
  }   
    
por 24.05.2016 / 13:00

Tags