Thread Net::FTP::Common - Probleme bei GET / RETR: Modul verwendet RETR anstelle GET (6 answers)
Opened by 1Hase at 2005-12-16 16:10

1Hase
 2005-12-16 16:10
#36979 #36979
User since
2005-12-16
1 Artikel
BenutzerIn
[default_avatar]
Hallo, ich möchte ein kleines Programm schreiben, welches eine Datei von einem Solaris-Server per FTP abholt und dann weiterverarbeitet. Das Programm funktioniert vollständig, abgesehen vom FTP-Transfer. Hier der Code:

-- snip --
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#!perl
use strict;
use Net::FTP::Common;

my $cfg = { Host => 'xxx.xxx.xxx.xxx',
User => 'xxxx',
Pass => 'xxxx',
RemoteDir => '/dir',
LocalDir => 'C:\Dir',
LocalFile => 'file.txt',
};
my $ftp = Net::FTP::Common->new($cfg, Debug => 1);
$ftp->get(File => 'file.txt');
$ftp->quit;

-- snap --

Durch "Debug=>1" habe ich gesehen, daß das Modul nicht das GET-Kommando absetzt, sondern RETR und dieses ist dem FTP-Server auf der Solaris-Büchse anscheinend unbekannt oder vielleicht gesperrt. Nachfolgend die Debug-Ausgabe:

-- snip --
Quote
Net::FTP::Common::VERSION = 5.2g at C:/tools/perl/site/lib/Net/FTP/Common.pm line 50.
Net::FTP>>> Net::FTP(2.72)
Net::FTP>>> Exporter(5.57)
Net::FTP>>> Net::Cmd(2.24)
Net::FTP>>> IO::Socket::INET(1.27)
Net::FTP>>> IO::Socket(1.28)
Net::FTP>>> IO::Handle(1.23)
Net::FTP=GLOB(0x1cbf06c)<<< 220 owdbfr03.owh.de FTP server ready.
Net::FTP=GLOB(0x1cbf06c)>>> user xxxx

Net::FTP=GLOB(0x1cbf06c)<<< 331 Password required for dwhp.
Net::FTP=GLOB(0x1cbf06c)>>> PASS ....
Net::FTP=GLOB(0x1cbf06c)<<< 230 User xxxx logged in.
Net::FTP=GLOB(0x1cbf06c)>>> CWD /dir

Net::FTP=GLOB(0x1cbf06c)<<< 250 CWD command successful.
Net::FTP=GLOB(0x1cbf06c)>>> TYPE I

Net::FTP=GLOB(0x1cbf06c)<<< 200 Type set to I.
Net::FTP=GLOB(0x1cbf06c)>>> PORT 172,22,20,1,7,188

Net::FTP=GLOB(0x1cbf06c)<<< 200 PORT command successful.
Net::FTP=GLOB(0x1cbf06c)>>> RETR

Net::FTP=GLOB(0x1cbf06c)<<< 500 'RETR ': command not understood.
download of to file.txt failed at C:/tools/perl/site/lib/Net/FTP/Common.pm line 372.
here are the settings in your Net::FTP::Common object: %s$VAR1 = bless( {
'Debug' => 1,
'Common' => {
'FTPSession' => bless( \*Symbol::GEN0, 'Net::FTP' ),
'RemoteDir' => '/dir',
'User' => 'xxxx',
'Pass' => 'xxxx',
'Type' => 'I',
'LocalFile' => 'file.txt',
'File' => 'file.txt',
'LocalDir' => 'C:\dir',
'Host' => 'xxx.xxx.xxx.xxx'
},
'Passive' => 1,
'Timeout' => 240
}, 'Net::FTP::Common' );
Net::FTP=GLOB(0x1cbf06c)>>> PWD

Net::FTP=GLOB(0x1cbf06c)<<< 257 "/dir" is current directory.
Net::FTP=GLOB(0x1cbf06c)>>> QUIT

Net::FTP=GLOB(0x1cbf06c)<<< 221-You have transferred 0 bytes in 0 files.
Net::FTP=GLOB(0x1cbf06c)<<< 221-Total traffic for this session was 409 bytes in 0 transfers.
Net::FTP=GLOB(0x1cbf06c)<<< 221-Thank you for using the FTP service on xxxx.
Net::FTP=GLOB(0x1cbf06c)<<< 221 Goodbye.

Process completed, Exit Code 0.

-- snap --

(Ich habe die geheimen Daten einfach mit "x"-Zeichen überschrieben.) Kann mir jemand einen Tip geben oder ein anders Modul nennen, welches vielleicht geeignet wäre? Es soll wohl auf Net::FTP geben, aber das finde ich auch activestate.com nicht.

Im Voraus vielen Dank,


Stefan\n\n

<!--EDIT|renee|1134986718-->

View full thread Net::FTP::Common - Probleme bei GET / RETR: Modul verwendet RETR anstelle GET