Erfahrung mit mounten von FTP Directories
FraFu
- webserver
Hallo!
Hat jemand von euch Erfahrung vom Mounten von FTP Directories im High Availability Bereich?
Konkret geht es darum, dass wir im 30sec (ja, 30 sec, ich hab mir das nicht ausgedacht) Takt ein Directory auf einem FTP Server pollen müssen ob dort neue Files liegen. Wenn ja, abholen und verarbeiten.
Unsere Software kann im Moment ein lokales Directory nach neuen Files durchsuchen und diese nehmen und verarbeiten. Wir wollen jetzt hier nicht das Rad neu erfinden und einen FTP Client einbauen, sondern irgendwie die Daten
vom FTP Server holen und in ein lokales Verzeichnis kopieren und von dort holt sie sich dann unsere SW.
Jetzt hatten wir u.a. auch die Idee das FTP Server Verzeichnis per curlFTP oder Lufs als mount point einzubinden und dann lokal bei uns dieses Directory zu pollen.
Hat damit jemand von euch Erfahrung? Insbesonder was passiert bei Verbindungsabrüchen? Der FTP Server ist mal kurz nicht erreichbar. Desweiteren geht die Verbindung zum FTP Server über einen IPsec Tunnel - was passiert mit dem mount, wenn der Tunnel mal weg ist und neu augebaut wird. Muss dann auch der Mountpoint neu eingehängt werden? usw.
Irgendwie würde ich vom Bauch heraus so einem Konstrukt nicht wirklich vertrauen.
mfg
frafu
morning,
Konkret geht es darum, dass wir im 30sec (ja, 30 sec, ich hab mir das nicht ausgedacht) Takt ein Directory auf einem FTP Server pollen müssen ob dort neue Files liegen. Wenn ja, abholen und verarbeiten.
Es ist egal ob du es mountest oder einen Client nimmst, schlussendlich wird per ftp verbunden, und das sieht so aus:
ftp macht ein ls im Verzeichnis und sendet das Listing zurueck. Auf diese Art nach neuen Dateien zu pollen ist vermutlich eine der schlechtesten die es gibt. Da du jedesmal das complette listing uebertragen musst.
Unsere Software kann im Moment ein lokales Directory nach neuen Files durchsuchen und diese nehmen und verarbeiten. Wir wollen jetzt hier nicht das Rad neu erfinden und einen FTP Client einbauen, sondern irgendwie die Daten
vom FTP Server holen und in ein lokales Verzeichnis kopieren und von dort holt sie sich dann unsere SW.
Wenn du die Dateien eh kopierst, warum nimmst du dann nicht rsync oder etwas vergleichbares? Es uebertraegt nur WENN wirklich was geaendert wurde und statt des Listings wird nur eine pruefsumme ausgetauscht.
Jetzt hatten wir u.a. auch die Idee das FTP Server Verzeichnis per curlFTP oder Lufs als mount point einzubinden und dann lokal bei uns dieses Directory zu pollen.
Siehe oben, es wird dennoch jedesmal das listing uebertragen. Wenn es nur ne handvoll dateien sind ist es egal aber bei mehr al ein paar hundert wird das schnell ineffizient. Alles was dir Lufs spart ist das senden des keepalive commands(normalerweise NOOP).
Irgendwie würde ich vom Bauch heraus so einem Konstrukt nicht wirklich vertrauen.
Vertraue deinem Bauch. Ich wuerde den spass mit rsync auf dem laufenden halten und dann vom lokalen verzeichnis aus verarbeiten. Und anstatt jedesmal listings zu vergleichen koenntest du etwas mit inotify oder aehnlichem verwenden, dann sagt dir der Kernel wann sich was veraendert hat. Ich weis nicht ob es sowas in Windows gibt geschweige denn wie es heissen wuerde.
-T
Hallo!
Vertraue deinem Bauch. Ich wuerde den spass mit rsync auf dem laufenden halten und dann vom lokalen verzeichnis aus verarbeiten. Und anstatt jedesmal listings zu vergleichen koenntest du etwas mit inotify oder aehnlichem verwenden, dann sagt dir der Kernel wann sich was veraendert hat. Ich weis nicht ob es sowas in Windows gibt geschweige denn wie es heissen wuerde.
Vielen Dank für die Antwort. Prinzipell ist mir das alles klar was du geschrieben hast. Warum ich nicht RSync nehme? Weil es nicht in meiner Hand liegt. Dass FTP verwendet werden muss liegt daran, dass die Firma mit der ich verbinden muss nichts anderes zur Verfügung stellen kann. Das ist so ein big Player mit 3 Buchstaben als Firmenname der zwar selbst super Softwaresysteme herstellt und vertreibt für die eigenen Schnittstellen aber auf Steinzeitsoftware setzt und dann von uns fast ünmögliche Reaktionszeiten und Verfügbarkeiten verlangt.
Oder hast du gemeint mit einem Rsync Client das FTP Verzeichnis zu synchronisieren? Das hab ich mir auch schon überlegt. Das schau ich heute an. Ist im Moment mein Favorite. Windows ist da nirgends im Einsatz.
Das mit inotify kommt auch nicht in Frage, da ja der FTP Server nicht in unserer Hand liegt.
mfg
frafu
Dass FTP verwendet werden muss liegt daran, dass die Firma mit der ich verbinden muss nichts anderes zur Verfügung stellen kann.
Du hast also auf den Server keinerlei anderen Zugriff als per FTP? Dann dürfte es etwas Scriptingarbeit werden aber lösbar ist es.
Ich würde per Script das FTP-Directory abfragen, dann vergleichen, ob die Dateien bereits auf der lokalen Festplatte vorhanden sind und dann nur die neuen Dateien runterladen.
Ob rsync auch FTP kann, weiss ich nicht, ich nehms immer nur mit ssh
Hallo.
Windows ist da nirgends im Einsatz.
Dann hast du zumindest einen Vorteil. Ich hatte das zweifelhafte Vergnügen, mich mit einem System befassen zu dürfen, bei dem eine Delphi-Anwendung im Takt weniger Sekunden Daten aus einer Datei auf einem DOS-Rechner ausgelesen und mit per FTP gepollten CCTV-Bildern synchronisieren sollte. Bei Sonnenschein und mit einem Techniker in der Nähe klappte das auch wunderbar ...
MfG, at