• Publicidad

Uso de sftp (secure file transfer program) en Perl

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

Uso de sftp (secure file transfer program) en Perl

Notapor fgalves » 2006-12-19 04:28 @227

Hola a todos,

El caso es que tengo que desarrollar un script que se conecte a una máquina remota para obtener todo fichero .xml existente en un directorio determinado de dicha máquina.
La transferencia debe ser implementada mediante "sftp" (secure file transfer program), ya que el clásico FTP no se considera suficientemente seguro en dicha implementación (no soy yo el que no lo considera sino mis jefes).

¿Alguien tiene alguna idea sobre cómo implementar la primera parte sin usar el módulo FTP? (conectarse, entrar en repertorio remoto, mirar existencia fichero .xml, copiarlo localmente y borrarlo del directorio en la máquina remota). ¿Estoy obligado a usarlo o hay otras maneras de hacerlo?

Muchísimas gracias
Felipe
fgalves
Perlero nuevo
Perlero nuevo
 
Mensajes: 210
Registrado: 2006-09-25 13:54 @621

Publicidad

Notapor explorer » 2006-12-19 07:43 @363

JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14486
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Notapor fgalves » 2006-12-19 07:52 @369

¡¡¡Muchas gracias Explorer!!!

Sólo por curiosidad: ¿son librerías incluidas en Perl por defecto? (yo trabajo en estaciones SUN y si son librerías no incluidas en el Perl por defecto, no sé si funcionara....)
Otra pregunta: ¿Cuál es la diferencia básica entre las dos que me propones?
¡Me voy a poner manos a la obra!
Saludos,
Felipe
fgalves
Perlero nuevo
Perlero nuevo
 
Mensajes: 210
Registrado: 2006-09-25 13:54 @621

Notapor explorer » 2006-12-19 08:03 @377

No creo que venga de base.

En http://cpantesters.perl.org/show/Net-SF ... -SFTP-0.10 está comprobado su funcionamiento para OpenBSD y Linux. No dicen nada del resto de sistemas.

El módulo recursive llama al Net::SFTP para recuperar el contenido de todo un directorio. Lo malo es que no hace el borrado.

¿Estaciones SUN? ¿Pero eso todavía existe? Todos los laboratorios y empresas que conozco se han pasado a Intel o IBM (con linux, claro).
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14486
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Notapor fgalves » 2006-12-19 08:07 @380

Pues desgraciadamente si, todavia trabajamos con estaciones SUN, pero dentro de un año mas o menos migraran hacia Linux, asi que es algo que ya tienen previsto hacer.

Voy a probar el modulo que me has dicho y os tengo al corriente.

De todos modos, muchisimas gracias por la informacion y por el link hacia los modulos CPAN.

Un cordial saludo,
Felipe
fgalves
Perlero nuevo
Perlero nuevo
 
Mensajes: 210
Registrado: 2006-09-25 13:54 @621

Notapor fgalves » 2006-12-19 08:11 @383

Primer escollo:

Net::SFTP->new($host, %args)

en %args debo precisar el user y password.
Algun formato a respetar para dicho hash? Es que no encuentro ningun ejemplo en la pagina que me mandaste.

Me podrias dar un ejemplo de como rellenar dicho hash con el username y passwords?

Muchisimas gracias!
Felipe
fgalves
Perlero nuevo
Perlero nuevo
 
Mensajes: 210
Registrado: 2006-09-25 13:54 @621

Notapor explorer » 2006-12-19 08:38 @401

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
Net::SFTP->new(
    $host,
    {
       user => 'fgalves',
       password => 'secreto'
    }
);
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14486
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Notapor fgalves » 2006-12-19 08:49 @409

¡¡Ostias!! ¡¡¡¡Has adivinado el user y el password!!!!
Es broma, ¡¡¡muchas gracias Explorer!!! De todas formas, había encontrado un ejemplo en NET::SFTP::Recursive, pero no esta de más tener tu confirmación. Quizás a veces me precipito al postear una pregunta, y te pido disculpas por eso.
Voy a probarlo en cuanto pueda y te digo si funciona o no.

Un saludo,
Felipe
fgalves
Perlero nuevo
Perlero nuevo
 
Mensajes: 210
Registrado: 2006-09-25 13:54 @621

Notapor fgalves » 2006-12-19 09:27 @435

Hola de nuevo Explorer,

De momento he verificado y el módulo Net::SFTP::Recursive parece no estar instalado (Can't locate Net/SFTP/Recursive.pm in @INC).

En cambio, usando el modulo Net::SFTP, no se queja en ningún momento de la ausencia del Perl module. Todavía no he probado la transmisión de ficheros, así que en cuanto lo haya hecho os lo reporto.

Saludos,
Felipe
fgalves
Perlero nuevo
Perlero nuevo
 
Mensajes: 210
Registrado: 2006-09-25 13:54 @621

Notapor fgalves » 2006-12-19 09:55 @454

Hola Explorer,

El caso es que he probado el siguiente código:
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
#
# Let's check the options' value
#

&checkOpts();

my $sftp = Net::SFTP->new($host,
    {
       user => $user,
       password => $password
    }
);
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4


Y como output obtengo el siguiente mensaje de error:
Código: Seleccionar todo
Reference found where even-sized list expected at /usr/perl5/site_perl/5.8.4/Net/SFTP.pm line 45.
Permission denied at /usr/perl5/site_perl/5.8.4/Net/SFTP.pm line 62


He ido a buscar en el SFTP.pm y los problemas aparentemente están en la siguiente parte del código:

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
# returns the new object
sub init {
    my $sftp = shift;
    my %param = @_; # linea 45
    $sftp->{debug} = delete $param{debug};
    $sftp->{status} = SSH2_FX_OK;
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4


y el segundo mensaje de error (linea 62):
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  $ssh->login($param{user}, $param{password}, 'supress_shell');
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4


¿Sabes cuál puede ser el problema? Para el segundo problema, parece como si el password no fuera el correcto, pero ya lo he verificado y es el bueno.

¡¡Muchisimas Gracias!!
Felipe
fgalves
Perlero nuevo
Perlero nuevo
 
Mensajes: 210
Registrado: 2006-09-25 13:54 @621

Siguiente

Volver a Básico

¿Quién está conectado?

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