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.
¿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
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