Dateien zwischen Servern uebertragen

Hallo,

ich muss zwischen zwei Servern unregelmaessig Dateien uebertragen, was ich mit einem Perl-Programm loesen muss.

Im Moment habe ich eine Loesung mit Net::FTP

Aber es ist ziemlich schwierig, da die Dateien unregelmaessig ueber den Tag verteilt kommen (1000 - 2000, steigend).

Mal kommen 50 hintereinander und oftmals alle Minute eine oder mehrere, dann wieder ueber Stunden (nachts) kaum welche.

Da der Verbindungsaufbau ja mit am aufwaendigsten ist, wollte ich die Verbindung bestehen lassen. Aber nach einiger Zeit wird sie dann doch vom ftpserver wegen Inaktivitaet getrennt.

Ich habe aber auch bei Net::FTP keine Moeglichkeit gefunden, zu ueberpruefen, ob die Verbidnung noch besteht oder nicht mehr besteht.

Meine Frage:
Wie kann man pruefen, ob die FTP-Verbindung noch besteht?
Oder sollte man die Verbiundung doch immer ab- und wieder aufbauen, auch wenn nur kurze Zeiten (1 Minute) zwischen den Uebertragungen liegen?

Ist hier Net::FTP ueberhaupt die richtige (beste) Loesung?
Es soll eine schnelle und zuverlaessige Uebertragung stattfinden.
Oder hat jemand noch eine bessere Idee?

Freue mich auf Eure Vorschlaege.

Herzliche Gruesse
Christian

Auch hallo.

Meine Frage:
Wie kann man pruefen, ob die FTP-Verbindung noch besteht?

Net::stuck_out_tongue:ing sieht gut aus: http://search.cpan.org/~smpeters/Net-Ping-2.32/lib/N…

mfg M.L.

Hallo,

ich muss zwischen zwei Servern unregelmaessig Dateien
uebertragen, was ich mit einem Perl-Programm loesen muss.

Hm, muss es unbedingt Perl sein? Was spräche denn z.B. gegen rsync?

Da der Verbindungsaufbau ja mit am aufwaendigsten ist, wollte
ich die Verbindung bestehen lassen. Aber nach einiger Zeit
wird sie dann doch vom ftpserver wegen Inaktivitaet getrennt.

Hast du manuell einen höheren Timeout gesetzt?

Ich habe aber auch bei Net::FTP keine Moeglichkeit gefunden,
zu ueberpruefen, ob die Verbidnung noch besteht oder nicht
mehr besteht.

Unterstützt FTP so eine Abfrage überhaupt?

Oder sollte man die Verbiundung doch immer ab- und wieder
aufbauen, auch wenn nur kurze Zeiten (1 Minute) zwischen den
Uebertragungen liegen?

Du könntest den Zeitpunkt des letzten Transfers abspeichern, und wenn die Differenz kleiner als der Timeout ist, die alte mitbenutzen, sonst eine neue Verbindung aufbauen.

Ist hier Net::FTP ueberhaupt die richtige (beste) Loesung?
Es soll eine schnelle und zuverlaessige Uebertragung
stattfinden.
Oder hat jemand noch eine bessere Idee?

Das hängt davon ab, welches darunter liegende Problem du lösen möchtest.

Grüße,
Moritz

Hallo,

wenn ich das recht sehe kann ich damit nur feststellen ob der ftp Service laeuft, aber nicht ob die ftp-Verbindung noch besteht.

Trotzdem danke. Kann das ping gut in einer anderen Software einsetzen.

Christian

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hallo Christian,

als Alternative zu einer Verbindung mittels Perl koennte man auch ein Verzeichnis des anderen Servers lokal mounten (z.B. mittels FUSE oder NFS)
Das hat den Vorteil das Du dich dann nicht um die Verbindung kuemmern musst und wie mit lokalen Daten arbeiten kannst (copy/rename/…)
Nachteil ist die aufwendigere Portierung/Anpassung/Installation auf anderen Betriebssystemen.

Gruss
Stefan

Hi,

ich hoffe, dass ich jetzt nicht zu spät kommen, aber was hällst du von der Idee die Daten in ein Verzeichnis (evtl. auch mit Unterordnern) zu schaufeln…
Dann kannst du regelmäßig mit z.B. einem Cronjob die Größe prüfen und baust erst ab einer bestimmten Größe die FTP-Verbindung auf…
Die Daten dann rüberschieben und vom lokalen System löschen…
Fertig…

Gruß und gute Nacht
Andy