• 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.

Notapor explorer » 2006-12-19 10:33 @481

Si, ya lo veo. Como Net::SFTP se basa en el módulo Net::SSH::Perl, allí hay un ejemplo de cómo hay que hacer el login. Hay que hacerlo así:
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
my $sftp = Net::SFTP->new($host,
       user     => $user,
       password => $password,
);
Coloreado en 0.003 segundos, usando GeSHi 1.0.8.4
(quitar las llaves que forman un hash anónimo)
Última edición por explorer el 2008-05-06 10:13 @467, editado 2 veces en total
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

Publicidad

Notapor fgalves » 2006-12-19 10:48 @491

¡¡Muchísimas gracias, Explorer!!
He seguido tus indicaciones y ya consigo conectarme.
Ahora lo que quiero es posicionarme en un directorio determinado y copiar un fichero remoto a un directorio local:

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
my $sftp = Net::SFTP->new($host, user => $user, password => $password);
$sftp->do_opendir($path);
$sftp->get("$path."/".felipe.xml", "felipebackup.xml");
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4


El caso es que me muestra:

Código: Seleccionar todo
Couldn't get handle: No such file or directory at FqStatsMQRRetrieving.pl line 209
Couldn't stat remote file: No such file or directory at FqStatsMQRRetrieving.pl line 210


Es decir, ni el "do_opendir" ni el "get" funcionan.
En $path hay el siguiente string:
/requests
que es un directorio que existe y es accesible cuando me conecto con ese usuario.

Hay alguna manera facil de posicionarse en un directorio, y copiar los ficheros? Alguna pagina con ejemplos?
Estoy realmente perdido pues he hecho mil pruebas y siempre me aparece lo mismo.

Muchas gracias por adelantado!
Felipe


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

Notapor aramallal » 2007-06-27 03:13 @176

Hola , he leido todos los comentarios , pero sigo sin poder instalar correctamente los modulos.

Existe alguno donde ya incluyan todas las dependecias?

o existe un perl donde tenga todos los modulos instalados?


estoy desesperado llevo dos dias con esto y no consigo instalar ni siquiera el net::ssh.

os agradeceria muchisimo si me pudieseis ayudar.gracias....
aramallal
Perlero nuevo
Perlero nuevo
 
Mensajes: 63
Registrado: 2007-06-12 06:29 @312

Notapor explorer » 2007-06-27 07:25 @351

En algún otro hilo se hablaba de la instalación de esos módulos. ¿Lo encontraste?
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-06-27 07:45 @364

algo encuentro pero no se instalarlos hay errores todo el rato y como te puse en otro tema creo que el problema es del cpan que no me los baja bien.Me has contestado que pruebe otro repositorio.

GRacias
aramallal
Perlero nuevo
Perlero nuevo
 
Mensajes: 63
Registrado: 2007-06-12 06:29 @312

Notapor aramallal » 2007-07-10 05:12 @259

hola, a mi me pasa algo parecido :

$sftp->get("$path"."/"."prueba"."_delta.xml", "backup.xml");

meto el path en una variable. No sé si se concatena de esta forma en este comando get.

El error que me da es el siguiente :
Código: Seleccionar todo
variable"path" is not imported at menu.pl line 235
Global symbol "$path" requires explicit package name att menu.pl line 235


He probado a concatenarlo en la variable path por completo y usar la variable pero no me funcionó.


Muchas gracias por adelantado.
Gracias y un saludo.
aramallal
Perlero nuevo
Perlero nuevo
 
Mensajes: 63
Registrado: 2007-06-12 06:29 @312

Notapor explorer » 2007-07-10 05:32 @272

El error dice que la variable $path no ha sido inicializada. Supongo que querrás usar la variable PATH del entorno que hereda el programa. Para eso debes usar el hash especial %ENV:

$sftp->get("$ENV{PATH}/prueba_delta.xml", "backup.xml");

Otra opción es usar el módulo Env.
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-07-10 08:04 @378

Gracias, ya está solucionada. Muchas gracias, explorer. ¡Sigues siendo un crack!
aramallal
Perlero nuevo
Perlero nuevo
 
Mensajes: 63
Registrado: 2007-06-12 06:29 @312

Notapor aramallal » 2007-07-12 05:46 @282

Muchas gracias, ya lo he conseguido, ¡por fin!

¿Sabéis cómo puedo saber el valor que devuelve este comando, es decir, si se ha conectado o no?

Porque si se ha conectado tengo que hacer una serie de cosas y si no se ha conectado otras. ¿Cómo puedo controlar esto?
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
my $sftp = Net::SFTP->new($host, user => $user, password => $password);
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4


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

Notapor aramallal » 2007-07-12 05:47 @283

con $@ no obtengo nada.
aramallal
Perlero nuevo
Perlero nuevo
 
Mensajes: 63
Registrado: 2007-06-12 06:29 @312

AnteriorSiguiente

Volver a Básico

¿Quién está conectado?

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

cron