Sun 17 Dec 2006
Logueando en expect… (logging on expect-perl)
Enviado al blog por el pinche cash segun el bajo la categoria cisco, Linux, Perl for Retarded ppl
Sin chismes (se el primer chismoso!)
Hace un par de dias me di de topes, pues obteniendo un reporte de una serie de comandos show enviados a un cisco (R) el log que mandaba generar se mochaba….
El codigo:
#!/usr/bin/perl
use expect;
--snip
Parametros de conexion y creacion del objeto expect
--snip
$telnet->log_file("$host.txt", "w");
$telnet->send_slow(0, "ter le 0\n");
$telnet->send_slow(0, "sh ver\n");
$telnet->send_slow(0, "sh run\n");
$telnet->send_slow(0, "sh diag\n");
$telnet->send_slow(0, "sh flash\n");
$telnet->send_slow(0, "sh ip int bri\n");
$telnet->send_slow(0, "sh interfaces\n");
$telnet->send_slow(0, "sh ip route\n");
$telnet->send_slow(0, "sh dial-p voice sum\n");
$telnet->send_slow(0, "sh processes memory\n");
$telnet->send_slow(0, "sh processes cpu\n");
$telnet->send_slow(0, "sh processes history\n");
$telnet->send_slow(0, "q\n");
$telnet->send_slow(0, "\n");
$telnet->log_file(undef);
Estos comandos generan un log de 1400 y pico de lineas, pero el log llegaba hasta la 300, mi error (pendejada) fue no forzar al programa a esperar a que terminara el comando pa mandar el otro…, de manera que se necesita una orden expect() antes de mandar el siguiente comando, esto para cada uno de los comandos enviados, el log se mochaba al terminar el ultimo comando enviado.

