Linux – Automatización de telnet mediante Expect

por | 13 junio, 2017

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»

 

 

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *