Estoy haciendo un script en Perl para descargar ficheros de un sitio FTP pero cuando me conecto que doy un dir o ls se queda como bloqueado y al final no me muestra ningún fichero.
Entonces, desde el putty me conecto a un servidor Linux y hago telnet a un FTP, me logueo sin problemas con un usuario y contraseña válidos; al estar dentro pongo dir o ls y se me queda como bloqueado. A continuación muestro lo que sale.
- Código: Seleccionar todo
ftp> dir
200 PORT Command successful.
150 Opening ASCII mode data connection for /bin/ls.
Aquí está el script de Perl, pero no creo que éste tenga problemas ya que probé con otro sitio ftp en otro lugar y si me funcionó...
Using perl Syntax Highlighting
#!/usr/bin/perl -w
use strict;
use Net::FTP;
my $extens = '*xxx';
my $SERVER = 'ftp.sitioftp.com';
my $name = 'nombre';
my $pass = 'password';
#Abro la conexion FTP;
my $FTP = Net::FTP->new($SERVER) or die ("No se pudo conectar $!");
$FTP->login($name, $pass) or die ("Login incorrecto: $!");
my @archivos = $FTP->dir($extens);
foreach $file (@archivos){
my @f = split(/\s+/, $file);
$FTP->get($f[8]);
}
$FTP->quit();
use strict;
use Net::FTP;
my $extens = '*xxx';
my $SERVER = 'ftp.sitioftp.com';
my $name = 'nombre';
my $pass = 'password';
#Abro la conexion FTP;
my $FTP = Net::FTP->new($SERVER) or die ("No se pudo conectar $!");
$FTP->login($name, $pass) or die ("Login incorrecto: $!");
my @archivos = $FTP->dir($extens);
foreach $file (@archivos){
my @f = split(/\s+/, $file);
$FTP->get($f[8]);
}
$FTP->quit();
Coloreado en 0.004 segundos, usando GeSHi 1.0.8.4
pero cuando voy depurando (perl -d fichero.pl) y al pasar la línea:
Using perl Syntax Highlighting
muestro el valor de @archivos y me da vacío.
- Código: Seleccionar todo
main::(fichero.pl:43): foreach $file (@archivos){
DB<1> p @archivos
DB<2> n
Este mismo programa lo pruebo con otro sitio FTP y me funciona sin problemas, me descarga los ficheros que hay en este sitio.
Por favor, denme alguna idea. ¿Qué puede estar pasando?
Gracias por adelantado...
Saludos...