hier das trace
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Net::FTP>>> Net::FTP(2.75)
Net::FTP>>> Exporter(5.58)
Net::FTP>>> Net::Cmd(2.26)
Net::FTP>>> IO::Socket::INET(1.27)
Net::FTP>>> IO::Socket(1.28)
Net::FTP>>> IO::Handle(1.24)
Net::FTP=GLOB(0x8521bbc)<<< 220 Microsoft FTP Service
Net::FTP=GLOB(0x8521bbc)>>> user xxxxxxxxxx
Net::FTP=GLOB(0x8521bbc)<<< 331 Password required for xxxxxxxxxx.
Net::FTP=GLOB(0x8521bbc)>>> PASS ....
Net::FTP=GLOB(0x8521bbc)<<< 230 User xxxxxxxxxx logged in.
Net::FTP=GLOB(0x8521bbc)>>> CWD /logs/web
Net::FTP=GLOB(0x8521bbc)<<< 250 CWD command successful.
Net::FTP=GLOB(0x8521bbc)>>> PASV
Net::FTP=GLOB(0x8521bbc)<<< 227 Entering Passive Mode (64,74,223,25,15,182).
Net::FTP=GLOB(0x8521bbc)>>> PORT 192,168,1,101,130,121
Net::FTP: Unexpected EOF on command channel at getenomlogs.pl line 50
dier der code dazu:
my $ftp = Net::FTP->new( $row->{ftp_host}, Debug => 1)
or die "Cannot connect to " . $row->{ftp_host} . ": $@";
$ftp->login($row->{username}, $row->{password})
or die "Cannot login ", $ftp->message;
$ftp->cwd("/logs/web")
or die "Cannot change working directory ", $ftp->message;
$ftp->pasv;
my @dir = $ftp->ls; # <-- ZEILE 50
hab jetzt etwas gegoogelt.
liegt wohl an pasv vs. activ mode.
wie man sieht, wähle ich pasv mode. aber wie wird dann doch nochmal ein PORT commando abgefeuert? macht das ls? muss es das? geht es irgendwie anders?
PS: Hab vergessen den Titel richtig zu setzen!\n\n
<!--EDIT|esskar|1158750307-->