• Publicidad

Comando FTP

¿Ya sabes lo que es una referencia? Has progresado, el nível básico es cosa del pasado y ahora estás listo para el siguiente nivel.

Comando FTP

Notapor Gonzalo Zambrana Rocha » 2008-11-25 14:22 @640

Hola,

Tengo un problema con Perl... he realizado un script para transferir archivos vía ftp de un servidor a otro. El hecho es que me da error cuando se ejecuta la instrucción donde especifico la ruta origen.

Es un script muy sencillo, pero el problema es que recién estoy conociendo Perl y no tengo ni idea de cómo solucionar este problema.

Por favor si alguien puede ayudarme, el script es el siguiente:
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
#!/usr/bin/perl

 use Net::FTP;

$Host_FTP = "10.40.3.161"; # IP del equipo al que me quiero conectar
$User = "ftpuser";
$Acce = "Nuevatel99";
$Lista = "*.txt";
$Orig = "/u01/utl/MREG/RA";
$Dest = "/ITX";

 
#    $source_dir->cwd("$Orig") or die "Cannot change working directory ", $ftp->message;
   
    $ftp = Net::FTP->new("$Host_FTP", Debug => 0) or die "Cannot connect to some.host.name: $@";
   
    $ftp->login("$User","$Acce") or die "Cannot login ", $ftp->message;

    $ftp->cwd("$Orig") or die "Cannot change working directory ", $ftp->message;

    $ftp->binary(); #Para guardar un archivo binario

    my @List_file_FTP = $ftp->ls("$Lista");

# Inicio del ciclo de lectura
    foreach $File_FTP(@List_file_FTP) {
        $ftp->cwd("$Orig");
        $ftp->get("$File_FTP");

        $ftp->delete("$File_FTP");

        $ftp->cwd("$Dest");
        $ftp->put("$File_FTP");
    }

    $ftp->quit;
Coloreado en 0.003 segundos, usando GeSHi 1.0.8.4


Saludos cordiales,

Gonzalo
Gonzalo Zambrana Rocha
Perlero nuevo
Perlero nuevo
 
Mensajes: 2
Registrado: 2008-11-25 14:13 @634

Publicidad

Notapor explorer » 2008-11-25 15:06 @670

Bienvenido a los foros de Perl en Español, Gonzalo Zambrana Rocha.

Yo veo que el programa no tiene fallos. Si te sale el mensaje "Cannot change working directory" más un mensaje del servidor, entonces es muy posible que el directorio al que estás intentando acceder, o no exista, o no tengas permisos para acceder, con ese nombre de usuario y contraseña.

Puedes aumentar el valor de Debug para ver en pantalla todo el diálogo entre las máquinas, para ver exactamente qué es lo que se intercambian.
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

Comando Ftp

Notapor Gonzalo Zambrana Rocha » 2008-11-26 11:31 @521

Ok. Muchas gracias
Gonzalo Zambrana Rocha
Perlero nuevo
Perlero nuevo
 
Mensajes: 2
Registrado: 2008-11-25 14:13 @634

Notapor mydaboin » 2009-03-30 14:14 @635

Para no desaprovechar este tema, quisiera saber el código exacto para subir archivo (.doc .xls. ppt .pdf) desde el PC al servidor, usando claro está a Net::FTP.

Ya me fijé en el tutorial pero no logro entender bien el funcionamiento... Gracias por la ayuda que me puedan presentar :P
MYRD
mydaboin
Perlero nuevo
Perlero nuevo
 
Mensajes: 66
Registrado: 2004-04-22 08:07 @380
Ubicación: Pues Aqui, Preguntando

Notapor creating021 » 2009-03-30 14:31 @646

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
use Net::FTP;
use strict;

my $ftp = Net::FTP->new("some.host.name") or die
    "Cannot login ", $ftp->message;
$ftp->binary();
my @ficheros = ( 'fichero1.pdf', 'ficherodos.ppt' );
foreach my $fichero (@ficheros) {
    $ftp->put($fichero) or die "put failed ", $ftp->message;
}
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4


Se hace con la función put de Net::FTP.
Mira el manual, ahí te explican :wink:
perldoc Net::FTP escribiste:put ( LOCAL_FILE [, REMOTE_FILE ] )
Put a file on the remote server. "LOCAL_FILE" may be a name or a
filehandle. If "LOCAL_FILE" is a filehandle then "REMOTE_FILE"
must be specified. If "REMOTE_FILE" is not specified then the file
will be stored in the current directory with the same leafname as
"LOCAL_FILE".

Returns "REMOTE_FILE", or the generated remote filename if
"REMOTE_FILE" is not given.

NOTE: If for some reason the transfer does not complete and an
error is returned then the contents that had been transferred will
not be remove automatically.
Expect the worst, is it the least you can do?
Avatar de Usuario
creating021
Perlero frecuente
Perlero frecuente
 
Mensajes: 595
Registrado: 2006-02-23 16:17 @720
Ubicación: Frente al monitor


Volver a Intermedio

¿Quién está conectado?

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

cron