2011-10-17 17 views
6

he estado tratando de crear un script Expect para iniciar sesión automáticamente en el dispositivo a través de telnetesperar script para automatizar la entrada de telnet

Si no existen múltiples posibilidades para el comando de esperar, la secuencia de comandos funciona bien, los registros de la dispositivo.

#!/usr/bin/expect 
set timeout 20 
set ip [lindex $argv 0] 
set port [lindex $argv 1] 
set user [lindex $argv 2] 
set password [lindex $argv 3] 

spawn telnet $ip $port 
expect "'^]'." sleep .1; 
send "\r"; 
sleep .1; 
expect "login:" 
send "$user\r" 
expect "Password:" 
send "$password\r"; 
interact 

El script anterior funciona bien y los registros de éxito cuando paso los parámetros correctos. Pero una vez que agrego ramas adicionales (para el manejo de errores) al comando esperar, el script se atasca en el login: prompt.Después de algún tiempo imprime Script Error ¿Alguna ayuda? Escritura errónea a continuación.

#!/usr/bin/expect 
set timeout 20 
set ip [lindex $argv 0] 
set port [lindex $argv 1] 
set user [lindex $argv 2] 
set password [lindex $argv 3] 

spawn telnet $ip $port 
expect "'^]'." 
sleep .1; 
send "\r"; 
expect 
{ 
    "login:" 
    { 
     send "$user\r" 
     expect "Password:" 
     send "$password\r"; 
     interact 

    } 

    "host: Connection refused" 
    { 
    send_user "ERROR:EXITING!" 
    exit 
    } 

} 

PS: Este script es que desarrollarse más para esperar instrucciones adicionales para cargar diferentes imágenes creadas en el dispositivo. Solo funciona la conexión de telnet (consola). entonces ssh no es una opción.

+0

¿Desea compartir cómo logró pasar comandos adicionales una vez que inició sesión? No puedo superar ese obstáculo: http://stackoverflow.com/questions/11148832/shell-script-successful-telnet-login-how-to-issue-commands-after-that – TryTryAgain

+1

si está hablando de ejecutando comandos adicionales en el shell automáticamente a través del script. se supone que debes usar el comando de enviar. interactúa pasa la pelota al usuario. De la pregunta que publicaste veo que ya tienes una respuesta. :) esperar por la victoria .. – woodstok

Respuesta

4

Mi mal. El problema fue con las llaves. Se supone que están en la misma línea que el comando esperado.

Cuestiones relacionadas