• Publicidad

SSH 2 con CISCO

¿Apenas comienzas con Perl? En este foro podrás encontrar y hacer preguntas básicas de Perl con respuestas aptas a tu nivel.

Notapor aramallal » 2007-08-02 03:29 @187

Gracias explorer pero no lo consigo. He probado de varias formas después de mirar el ejemplo ese:
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
$s->cmd('copy startup-config running-config');
$s->cmd( Match => ' /[running-config]?');
$s->cmd("");
Coloreado en 0.003 segundos, usando GeSHi 1.0.8.4
esto no funciona.

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
$s->cmd('copy startup-config running-config');
$s->cmd( Match => ' /[running-config]?');
$s->print("");
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4
esto tampoco funciona.

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
$s->cmd('copy startup-config running-config');
$s->waitfor( ' /[running-config]?');
$s->cmd("");
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4
tampoco.

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
$s->cmd('copy startup-config running-config');
$s->waitfor( ' /[running-config]?');
$s->print("");
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4
y tampoco, así que como veis, de esta forma no consigo hacer que un comando que necesite confirmación de si o no o simplemente de darle al enter que es mi caso, pues no me funciona.

Ayuda por favor.
aramallal
Perlero nuevo
Perlero nuevo
 
Mensajes: 63
Registrado: 2007-06-12 06:29 @312

Publicidad

Notapor explorer » 2007-08-02 04:26 @226

Cuidado... si usas Match, estás pasando una expresión regular... así que los caracteres como '.', '[', ']', '*', '+' y '?' hay que escaparlos con un '\' delante.

Esta tarde buscaré un rato para hacer pruebas.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Notapor explorer » 2007-08-02 04:39 @235

A ver... he leído Net::Telnet (cmd, prompt y waitfor) y el cmd de Net::Appliance::Session.

Deberías probar con algo así:

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
$s->cmd(
    String => 'copy startup-config running-config',
    Match  => [ ' /\[running-config\]\?' ],
);
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4


Es decir:
* A cmd() le estamos pasando el String que va a ejecutar y lo que esperamos recibir.
* Match, según el manual, ha de ser una referencia a un array de patrones de búsqueda. No vale tu primer intento, sólo un patrón entrecomillado. Fíjate que lo he metido entre corchetes para crear ese array anónimo. Ahí podrías meter más patrones.
* También se le puede poner un Timeout.
* En el Match, no es necesario poner todo lo que esperamos. Yo probaría con lo que realmente es interesante: 'running-config\]\?'.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Notapor aramallal » 2007-08-02 05:14 @260

Gracias,
He probado como me has dicho y también de esta forma :

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
$s->cmd(
    String => 'copy startup-config running-config',
    Match  => [ ' running-config\]\?' ],
);
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4

pero no me ejecuta el comando... si comento la linea de Match si me lo ejecuta pero obviamente se me vuelve a quedar en [running-config] esperando que le de al Enter...

Un saludo.
aramallal
Perlero nuevo
Perlero nuevo
 
Mensajes: 63
Registrado: 2007-06-12 06:29 @312

Notapor aramallal » 2007-08-02 05:33 @273

¡Ya esta hecho, Gracias , ha quedado así!

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
$s->cmd(
    String => '......................' ,
    Match =>['/....................../']
);
$s->cmd(' ');
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4


Así ya funciona, Muchas gracias.

¡Un saludo!
aramallal
Perlero nuevo
Perlero nuevo
 
Mensajes: 63
Registrado: 2007-06-12 06:29 @312

Notapor explorer » 2007-08-02 05:44 @280

Acabo de leer en Net::Telnet que su cmd no sirve para los prompt que esperan una entrada, como es tu caso, y que es mejor usar la combinación print(), waitfor(). La parte del print() es lo que haces con String, mientras que la del waitfor() es la del Match.

Lo que no entiendo es porque ha fallado el primer intento.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Notapor juanchiro » 2007-08-07 21:42 @945

hola explorer. Corrí el script que publicó aramallal pero se queda en el password. Lo raro es que he hecho de todo para lograr capturar el error pero no me muestra nada. ¿Alguna idea de lo que podría ser?.
De antemano gracias por tu respuesta.
juanchiro
Perlero nuevo
Perlero nuevo
 
Mensajes: 1
Registrado: 2007-08-03 16:44 @739

Notapor explorer » 2007-08-08 03:55 @205

Bienvenido a los foros de Perl en Español.

Si se queda en el password, quizás es porque el módulo no es capaz de darse cuenta de que está esperando esa entrada. No sé si me hablas del mismo aparato que el de aramallal. Quizás tengas que tocar el login del módulo para agregarle una expresión regular para cazar el momento en que llega el password. ¿Qué módulo estás usando?
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Notapor TELCO71 » 2008-02-09 10:39 @485

Estimado Explorer , :lol:

Realicé un script de prueba para conectarme mediante SSH2 de un server a otro y ejecutar comandos en el segundo server y eso me anduvo perfectamente. 8)

Necesitaría puntualmente saber si es factible de realizar algo que necesito.

En un server_A tengo el script principal para realizar el backups de varios routers de Cisco mediante Telnet. Tendría que conectarme por SSH2 a un segundo Server_B y del server_B conectarme por SSH2 a un Server_C (sería un 2º salto de SSH2 recursivo).

El server_C es desde donde se alcanza por telnet a dichos routers ya que están filtrando el telnet mediante una lista de acceso ( ACL ) para al resto del mundo por cuestiones de seguridad.

El Server_A ejecuta el script localmente pero los comandos se los tendrían que pasar a las sesiones que se van iniciando en el Server_c mediante el Telnet a los equipos.

¿Esto es factible de realizarse en Perl? :oops:

Saludos y gracias , :wink:
Telco
Avatar de Usuario
TELCO71
Perlero nuevo
Perlero nuevo
 
Mensajes: 48
Registrado: 2006-08-10 10:43 @488
Ubicación: Buenos Aires / Argentina

Notapor explorer » 2008-02-09 12:12 @550

Yo no veo por qué no... todo consiste en hacer tu propio protocolo de intercambio de información entre los servidores. Y en cada servidor, disponer de los permisos necesarios para tener funcionando un programa servidor y cliente para recibir y mandar órdenes o ficheros.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

AnteriorSiguiente

Volver a Básico

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 18 invitados

cron