neri: Erfahrung mit mounten von FTP Directories

Beitrag lesen

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