Perl en Español

  1. Home
  2. Tutoriales
  3. Foro
  4. Artículos
  5. Donativos
  6. Publicidad
 

Salida de comandos sin paginación (en Telnet)

 
Publicar nuevo tema   Responder al tema    Foros de discusión -> Básico
Mensaje Mar Oct 30, 2007 1:18 pm
TELCO71
Perlero Nuevo
Perlero Nuevo
Registrado: 10 Ago 2006
Mensajes: 48
Ubicación: Buenos Aires / Argentina
Salida de comandos sin paginación (en Telnet) Responder citando

Estimado Explorer Smile ,

Necesito, cuando ingreso a un router/switch desde el script de telnet y ejecuto algún comando que es extenso, obtener la salida completa de dichos comandos.

Puntualmente necesito que cuando aparece el siguiente string: " ---- More ---- " poder enviarme un backspace al equipo para que continúe con la salida del comando.

¿Cómo puedo realizar eso desde un script en Perl? Embarassed

Saludos y gracias , Laughing

Telco
Mensaje Mar Oct 30, 2007 4:18 pm
explorer
Moderador
Moderador
Registrado: 24 Jul 2005
Mensajes: 4239
Ubicación: Valladolid, España
Responder citando

A ver si este hilo te puede ayudar...
Mensaje Mar Oct 30, 2007 10:52 pm
TELCO71
Perlero Nuevo
Perlero Nuevo
Registrado: 10 Ago 2006
Mensajes: 48
Ubicación: Buenos Aires / Argentina
Responder citando

Estimado Explorer , Laughing

Estuve probando el tema del filtro pero no me sirve en mi caso. Embarassed

Perl:
       @salida = $sesion->cmd($tabla_comandos[$y]);
        $salida = join('',@salida);
        $salida =~ s/ ---- More ----\W+(?! )//g;
        print @salida;


Digamos lo que yo necesito es que durante el proceso del telnet hacia el equipo se le envíe un " backspace " a la salida de los comandos que superen ciertas líneas y el equipo espere un " backspace " para seguir mostrando el resto de esas salidas .

El string es el siguiente " ---- More ---- " y el equipo para seguir avanzando con la salida de los comandos o configuración necesita que se presione la barra espaciadora para terminar con esas secuencias .

Digamos se necesitaría interactuar con el equipo durante la salida de esos comandos .

Saludos y muchas gracias , Very Happy

Telco
Mensaje Mar Oct 30, 2007 11:12 pm
TELCO71
Perlero Nuevo
Perlero Nuevo
Registrado: 10 Ago 2006
Mensajes: 48
Ubicación: Buenos Aires / Argentina
Responder citando

Explorer , Laughing

Me imagino que necesito colocar algo como lo siguiente :

Perl:
$sesion->waitfor (Match => '/---- More ----/');
$sesion->print(ENVIAR BACKSPACE);


¿Qué te parece? ¿Cómo le envío el backspace al equipo? Embarassed

Saludos y gracias ,Very Happy
TELCO
Mensaje Mie Oct 31, 2007 6:01 am
explorer
Moderador
Moderador
Registrado: 24 Jul 2005
Mensajes: 4239
Ubicación: Valladolid, España
Responder citando

Prueba con "\b".

Pero me sigue extrañando que sea necesario usar esa tecla. ¿No funciona con otra, por ejemplo, el "\n"?
Mensaje Mie Oct 31, 2007 6:06 am
explorer
Moderador
Moderador
Registrado: 24 Jul 2005
Mensajes: 4239
Ubicación: Valladolid, España
Responder citando

Del Match, quita los '/'.
Mensaje Mar Nov 04, 2008 6:54 am
sanzcarlos
Perlero Nuevo
Perlero Nuevo
Registrado: 30 Sep 2008
Mensajes: 3
Responder citando

Creo que es más fácil que todo eso.

¿Por qué no ejecutas el comando ter len 0? De esa manera no te pagina los resultados.

Saludos.
Carlos
Publicar nuevo tema   Responder al tema    Foros de discusión -> Básico Todas las horas son GMT - 6 Horas
Página 1 de 1



Powered by phpBB © 2001, 2005 phpBB Group