Para automatizar tareas bajo conexiones telnet en Linux, utilizamos la herramiento expect.
Si no se encuentra instalado, lo hacemos (Centos5 en mi caso):
# yum install expect.x86_64
Un breve resumen de sus comandos:
spawn –> ejecuta a aplicación a controlar
expect –> escucha la salida esperando la cadena
send –> envia cadena
\n –> cambio de línea
/r –> retorno del carro
wait n –> espera n segundos
Al script pasamos parámetros de manera habitual:
$argc es el número de parámetros
$argv0 es el nombre del comando
$argv1 es el primer parámetro
$argv2 es el segundo parámetro, etc.
Ejemplo de verificación de entrada:
if $argc<2 {
send_user «$argv0: faltan parametros \n»
exit
}
Ejemplo de volcado de archivo de configuración a un switch:
#!/usr/bin/expect
if $argc<2 {
send_user «$argv0: faltan parametros \n»
exit
}
set IP [lindex $argv 0]
set cfgFile [lindex $argv 1]
spawn telnet $IP
expect «User:»
send «admin\n»
expect «Password:»
send «s80admin\n»
expect «>»
send «enable\n»
expect «Password:»
send «miclave\n»
expect «#»
send «copy tftp://192.168.127.223/network/$cfgFile nvram:startup-config\n»
expect «(y/n)»
send «y»
expect «successful…»
send «quit»