Schrift
[thread]4316[/thread]

Net::FTP - Timeout-Problem

Leser: 2


<< >> 4 Einträge, 1 Seite
ptk
 2005-04-14 21:28
#37859 #37859
User since
2003-11-28
3645 Artikel
ModeratorIn
[default_avatar]
Den Timeout kannst du hochsetzen. Aus der Doku:
Code: (dl )
Timeout - Set a timeout value (defaults to 120)
tschonn
 2005-04-15 12:03
#37860 #37860
User since
2005-04-14
2 Artikel
BenutzerIn
[default_avatar]
[quote=ptk,14.04.2005, 19:28]Den Timeout kannst du hochsetzen. Aus der Doku:
Code: (dl )
Timeout - Set a timeout value (defaults to 120)
[/quote]
Danke für den Hinweis, aber ich glaube, dass das zu banal ist. Wenn der ftp-Server bei einer Dateiliste von > 200 Dateien plötzlich bei der bspw. 130sten nicht mehr antworten will, dann will er das auch nicht nach 120s.

Es scheint mir eher, dass das Script sich beendet, wenn der Timeoutfehler auftritt, anstatt dass es weiterläuft. Wie kann man das bei Net::FTP abfangen?
tschonn
 2005-04-14 20:07
#37861 #37861
User since
2005-04-14
2 Artikel
BenutzerIn
[default_avatar]
Wie ich jetzt festgestellt habe, läuft mein Script beim Datenholen per Net::FTP ganz selten auf einen Timeout. Es werden viele Dateien geholt und der Timeout scheint aufzutreten, wenn einige Dateien schon auf der Platte liegen. Den Logfiles ist auch zu entnehmen, dass das Programm nicht zuende läuft, eine Fehlermeldung ist bis auf den Timeout aber nicht zu finden.
Wenn ich das Problem richtig sehe, fange ich den Timeout aber auch nicht ab, habe aber auch keine Idee, wie das geschehen soll?

#---+----1----+----2----+----3----+----4----+----5----+----6----+----7----+-
Code: (dl )
1
2
3
4
5
6
Hauptprogramm:

my $ftp = Net::FTP->new($ftpServ);
&ftpget($ftp, "$ftpPath/$ftpFile","$localPath/$ftpFile") or warn "kann Datei beim get nicht schreiben: $locDatePath/$ftpFile\n";
push(@filelist, "$localPath/$ftpFile");
$ftp->quit();



#---+----1----+----2----+----3----+----4----+----5----+----6----+----7----+-
sub zum Datenholen

Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
sub ftpget {
 my ($ftp, $remote, $local) = @_;
 my $get = $ftp->get("$remote", "$local");
 return 0 if not defined $get;
 my $res = 0;
 if ($local =~ /$get/) {
   print "\tget $remote --> $local\n";
   $res = 1;
 } else {
   print "\tget ERFOLGLOS:  $remote -/-> $local\n";
 }

 return $res;
}


#---+----1----+----2----+----3----+----4----+----5----+----6----+----7----+-
Aus dem Logfile:
Timeout at /usr/lib/perl5/site_perl/5.6.1/Net/FTP.pm line 956


edit pq: code-tags hinzugefügt\n\n

<!--EDIT|pq|1113551555-->
pq
 2005-04-15 11:55
#37862 #37862
User since
2003-08-04
12208 Artikel
Admin1
[Homepage]
user image
[quote=tschonn,14.04.2005, 18:07]#---+----1----+----2----+----3----+----4----+----5----+----6----+----7----+-[/quote]
was ist das denn bitte? ist ja nett, dass du dir die mühe machst, aber das
geht auch einfacher mit code-tags, und dein code wird dann sogar lesbar.
Wiki:Wie frage ich bei Perl-Community.de?, insbesondere Code-Tags
Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. -- Damian Conway in "Perl Best Practices"
lesen: Wiki:Wie frage ich & perlintro Wiki:brian's Leitfaden für jedes Perl-Problem
<< >> 4 Einträge, 1 Seite



View all threads created 2005-04-14 21:28.