Página 1 de 1

SSH::Perl Para switches

NotaPublicado: 2010-02-15 17:31 @771
por EL17ANGEL
Hola.

Soy muy nuevo en Perl y hasta ahora lo estoy conociendo, estoy desarrollando un programa que realice un backup en un switch 3Com.

Ya la conexión por SSH con el módulo SSH::Perl la logré y tanto en el switch como en el debug del programa se muestra que puedo ingresar.

El problema es que tan rápido como ingreso salgo del switch y estoy buscando una sentencia similar a waitfor() que utiliza la librería Telnet para en ese momento ingresar mi comando al switch. Este inconveniente ya lo verifiqué con W32Perl, SSH2 y OpenSSH; mi código es el siguiente.

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. use Mail::Sender;
  2. use Net::FTP;
  3. use Net::SSH::Perl;
  4. use Sys::Hostname;
  5.  
  6.  
  7. system("cls");
  8. $ssh = Net::SSH::Perl->new("IP del switch", debug => 1 );
  9. $ssh -> login ("user" , "pass", ); # Hasta aquí se ejecuta mi programa
  10.  
  11. #A partir de acá al parecer no se ejecuta, o aquí de no ingresar el comando que deseo.
  12. $ssh -> sock ('/\>$/i');
  13. $ssh -> cmd ('tftp host put name.cfg archivo.txt');
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4


Muchísimas gracias por sus sugerencias.

Re: SSH::Perl Para switches

NotaPublicado: 2010-02-16 16:21 @723
por explorer
Bienvenido a los foros de Perl en Español, EL17ANGEL.

La función sock() no funciona en el módulo Net::SSH::Perl como pones en el programa.

Quizás te resulte más útil usar los módulos Net::OpenSSH (busca por Expect) o Net::SCP (para funcionar como un ftp remoto) o Net::SSH::Expect, para ejecutar comandos remotos.

Re: SSH::Perl Para switches

NotaPublicado: 2010-02-17 05:26 @268
por salva
EL17ANGEL escribiste:El problema es que tan rápido como ingreso salgo del switch y estoy buscando una sentencia similar a waitfor() que utiliza la librería Telnet para en ese momento ingresar mi comando al switch.

Si no tienes problemas con el inglés, aquí explica tu problema: Unable to run command on Cisco switch.

En cualquier caso, la solución mas fácil es utilizar Expect.