Dateivergleich FTP Server - Client

Für Fragen von Einsteigern und Programmieranfängern...
mschnell
Beiträge: 3444
Registriert: Mo 11. Sep 2006, 10:24
OS, Lazarus, FPC: svn (Window32, Linux x64, Linux ARM (QNAP) (cross+nativ)
CPU-Target: X32 / X64 / ARMv5
Wohnort: Krefeld

Re: Dateivergleich FTP Server - Client

Beitrag von mschnell »

Hitman hat geschrieben:Zum synchronisieren von derart vielen Dateien würde ich ernsthaft rsync (oder notfalls unison) empfehlen. Alles andere ist quasi Selbstmord ;-)

RSync ist natürlich Klasse (ich benutze es mit dirvish als Backup für meinen Linux-Server). Leider bekomme ich bei vielen unserer betreuten Websites keinen ssh-Zugang zum Server des Web-Content-Providers, sondern nur einen FTP-Zugang.

-Michael

_X_
Beiträge: 250
Registriert: Di 16. Dez 2008, 20:13
OS, Lazarus, FPC: aptosid (aptosid.com); Lazarus SVN gtk2+qt4; FPC 2.4.0
CPU-Target: 32/64Bit

Re: Dateivergleich FTP Server - Client

Beitrag von _X_ »

@mschnell: Wo kriege ich deinen Client her?
Würde mich Interessieren.

mfg _X_

mschnell
Beiträge: 3444
Registriert: Mo 11. Sep 2006, 10:24
OS, Lazarus, FPC: svn (Window32, Linux x64, Linux ARM (QNAP) (cross+nativ)
CPU-Target: X32 / X64 / ARMv5
Wohnort: Krefeld

Re: Dateivergleich FTP Server - Client

Beitrag von mschnell »

Guckst Du ....
Dateianhänge
lftp.zip
optimierter Datei Upload
(289.57 KiB) 94-mal heruntergeladen

_X_
Beiträge: 250
Registriert: Di 16. Dez 2008, 20:13
OS, Lazarus, FPC: aptosid (aptosid.com); Lazarus SVN gtk2+qt4; FPC 2.4.0
CPU-Target: 32/64Bit

Re: Dateivergleich FTP Server - Client

Beitrag von _X_ »

Danke

Ralph59
Beiträge: 145
Registriert: So 22. Mär 2009, 07:48
OS, Lazarus, FPC: WIN 11 (momentan )
CPU-Target: 64 und 32Bit
Wohnort: Hessen
Kontaktdaten:

Re: Dateivergleich FTP Server - Client

Beitrag von Ralph59 »

Also,

habe gerad 6137 Dateien aus 814 Ordnerne Down geloadet. Das hat ca. 45min. gedauert. Die Überprüfung danach dauerte gerade mal 41/2 min.
Zusätzlich habe ich noch ein Protokoll erstellt, dass mitteilt, ob Dateien unterschiedlich sind.

Das funktioniert ganz gut beim Vegleich von Datum und Grösse. Morgen werde ich dass gleiche noch auf dem Server probieren.

Mit freundlichem Gruß

Ralph
Fehler sind wie Berge, man steht auf dem Gipfel seiner eigenen und redet über die der anderen.

mschnell
Beiträge: 3444
Registriert: Mo 11. Sep 2006, 10:24
OS, Lazarus, FPC: svn (Window32, Linux x64, Linux ARM (QNAP) (cross+nativ)
CPU-Target: X32 / X64 / ARMv5
Wohnort: Krefeld

Re: Dateivergleich FTP Server - Client

Beitrag von mschnell »

Ralph59 hat geschrieben:Das funktioniert ganz gut beim Vergleich von Datum und Größe....

Das Problem bei FTP ist doch gerade, dass der Datei-TimeStamp der upgeloadeten Datei irrelevant ist. Sonst müsste man den MD5-Kram ja garnicht machen.

Bei einem "normalen" copy mit einem (Netzwerk-) File System wird der "modified" TimeStamp der Zieldatei auf den Wert der quelldatei gesetzt. Das geht über FTP nicht und somit hat die upgeloadete Datei einen vom FTP-Server vergebenen TimeStamp. Den kann man nicht für Vergleiche heranziehen. Wenn man dann noch Faktoren wie Sommerzeit und Zeitzonen betrachtet guckt man sich den TimeStamp der FTP-Datei am besten gar nicht an !

TotalCommander benutzt folgenden Trick um (anders als unser Programm) auf eine Verwaltungsdatei verzichten zu können: Der lokale TimeStamp wird auf den TimeStamp der FTP-Datei gesetzt. Nicht schön, aber funktioniert.

Bei uns gab es zusätzlich das Problem, dass ein bestimmtes Programm bei vielen lokalen Dateien das Datum, aber nicht den Inhalt ändert. Da ist di MD5-Prüfung natürlich sehr prakisch.

-Michael
Zuletzt geändert von mschnell am Mo 13. Apr 2009, 07:54, insgesamt 1-mal geändert.

Ralph59
Beiträge: 145
Registriert: So 22. Mär 2009, 07:48
OS, Lazarus, FPC: WIN 11 (momentan )
CPU-Target: 64 und 32Bit
Wohnort: Hessen
Kontaktdaten:

Re: Dateivergleich FTP Server - Client

Beitrag von Ralph59 »

Danke für die Informationen,
tatsächlich, was immer ich auch versucht habe, dass Datum auf dem Server habe ich nicht ändern können. Dass Datum meiner localen Dateien sehr einfach.

Wenn ich MD5 vergleichen will, dann muss ich doch die Datei dafür erst einmal runterladen oder?

Mit freundlichem Gruß

Ralph
Fehler sind wie Berge, man steht auf dem Gipfel seiner eigenen und redet über die der anderen.

monta
Lazarusforum e. V.
Beiträge: 2809
Registriert: Sa 9. Sep 2006, 18:05
OS, Lazarus, FPC: Linux (L trunk FPC trunk)
CPU-Target: 64Bit
Wohnort: Dresden
Kontaktdaten:

Re: Dateivergleich FTP Server - Client

Beitrag von monta »

Das kommt ganz darauf an, ob du einen FTP-Server verwnedest, der MD5 als zusätzliches Kommando irgendwie unterstützt.
Draft:
http://www.indyproject.org/Sockets/Blog ... md5-00.txt

Genau so ist es mit dem Befehl MFTM, denn der FTP-Server unterstützen muss, um das Datum der Datei auf dem Server zu setzen.
Draft:
http://www.omz13.com/downloads/draft-so ... ml#anchor8

Es hängt also alles vom FTP-Server ab, ob das unterstützt wird, dann musst du auch nicht die Datei runter laden ist also die wohl eleganteste Art.
(Zum Beispiel Apache FtpServer kann beides hab ich gerade gesehen.
Johannes

mschnell
Beiträge: 3444
Registriert: Mo 11. Sep 2006, 10:24
OS, Lazarus, FPC: svn (Window32, Linux x64, Linux ARM (QNAP) (cross+nativ)
CPU-Target: X32 / X64 / ARMv5
Wohnort: Krefeld

Re: Dateivergleich FTP Server - Client

Beitrag von mschnell »

monta hat geschrieben:Es hängt also alles vom FTP-Server ab...
Wenn man sich den Server aussuchen kann, sollte man lieber gleich SCP nehmen statt FTP. Da geht vermutlich alles. Einige Server von Content-Providern, die wir beschicken lassen einen SCP-Zugriff (mit denselbe Zugangsdaten wie FTP) zu.

-Michael
Zuletzt geändert von mschnell am Mo 13. Apr 2009, 07:51, insgesamt 1-mal geändert.

Ralph59
Beiträge: 145
Registriert: So 22. Mär 2009, 07:48
OS, Lazarus, FPC: WIN 11 (momentan )
CPU-Target: 64 und 32Bit
Wohnort: Hessen
Kontaktdaten:

Re: Dateivergleich FTP Server - Client

Beitrag von Ralph59 »

Hallo,
wenn es um meinen Server geht, dann kann ich natürlich alles machen was ich will.

Ich werde morgen, oder in der kommenden Woche testen, was die FTP Server der Maschinen unterstützen. Da ich jedoch davon ausgehen kann, dass die Maschine in jedem Fall erst einmal der Master ist, da ja irgend eine Produktion läuft, reicht es mir, das eigene Datei DateTime mit dem der Server Dateien abzugleichen. Damit habe ich die Möglichkeit einen Vergleich schnell durchzuführen. Sollte der Maschinen FTP Server MD5 unterstützen, kann ich daran arbeiten, wobei dass zum mindest jedoch die Performance für die Zeit der Anfrage etwas nach unten zieht.
Wie auch immer, ich ewrde den Client jetzt erst einmal so vorbereiten, dass das Datum Client Seitig angepasst wird, dass wird mit sicherheit mit jedem Server funktionieren.

Mit freundlichem Gruß

Ralph
Fehler sind wie Berge, man steht auf dem Gipfel seiner eigenen und redet über die der anderen.

monta
Lazarusforum e. V.
Beiträge: 2809
Registriert: Sa 9. Sep 2006, 18:05
OS, Lazarus, FPC: Linux (L trunk FPC trunk)
CPU-Target: 64Bit
Wohnort: Dresden
Kontaktdaten:

Re: Dateivergleich FTP Server - Client

Beitrag von monta »

Mal anders rum gefragt, wenn es nur darum geht, Dateien zu synchronisieren und das über FTP mit auswertung der Zeit usw. Wieso nutzt du kein fertiges Programm?

Ich verwende für sowas SyncBackSE ist in der Version 3.2 Freeware und man kann eigentlich alles einstellen und es automatisch laufen lassen.
Johannes

creed steiger
Beiträge: 957
Registriert: Mo 11. Sep 2006, 22:56

Re: Dateivergleich FTP Server - Client

Beitrag von creed steiger »

Erstell doch einfach von den Dateien auf deinem FTP die md5 und
leg das in einen Textdatei (meinetwegen eine pro Verzeichnis).
Zum Abgleich musst du nur die Textdatei runterladen und
mit den lokalen md5 vergleichen.
Bei Änderungen(Uploads) die md5 in der Textdatei auf dem FTP
mitändern.
Evtl. auch eine xml statt einfacher Text.

Ralph59
Beiträge: 145
Registriert: So 22. Mär 2009, 07:48
OS, Lazarus, FPC: WIN 11 (momentan )
CPU-Target: 64 und 32Bit
Wohnort: Hessen
Kontaktdaten:

Re: Dateivergleich FTP Server - Client

Beitrag von Ralph59 »

Hallo,

Mal anders rum gefragt, wenn es nur darum geht, Dateien zu synchronisieren und das über FTP mit auswertung der Zeit usw. Wieso nutzt du kein fertiges Programm?

Ich verwende für sowas SyncBackSE ist in der Version 3.2 Freeware und man kann eigentlich alles einstellen und es automatisch laufen lassen.


das liegt daran, dass ich eigentlich eine GUI am schreiben bin, bei der ein FTP notwendig ist, da SVN FTP nicht unterstützt.
Das GUI soll alle Softwarestände der Maschinen "OS, Typ und Optionsbezogen" verwalten. Da jedoch der Nutzer zwar mit einem FTP Client umgehen kann, sich aber nicht, oder aber nicht immer um eine ausreichende Dokumentation kümmert wollte ich dass ganze in eine GUI verpacken, die den FTP nutzt um alle Dateien im jeweils entsprechenden Arbeitsverzeichniss nach dem einchecken aktuell hält. Die GUI ruft dann außerdem noch die entsprechenden zur Verwaltung oder Bearbeitung notwendigen Programme auf.

Den FTP Teil habe ich jetzt, glaube ich, auch mit Hilfe dieser außerordentlich positiven Forums-Runde im wesentlichen abgeschlossen.
Nun kenne ich mich dann schon etwas besser mit Lazarus aus :wink:

Als nächstes folgt dann noch der SVN Teil, (der mir momentan wesentlich schwieriger erscheint) da bin ich jetzt dann auch schon wieder einige Tage am suchen. Ich glaube da werde ich dann das Forum wieder einmal bemühen, da ich ja noch Anfänger bin und so wesentliche Dinge wie einbinden von dll's nicht ausreichend kenne, außerdem kenne ich die Funktionen der DLL's mcht. Was macht z.B. eine SlikSvn-svn_client-1.dll oder SlikSvn-svn_diff-1.dll :| .

Vielen Dank noch einmal für eure Tatkräftige Unterstützung :wink:

Mit freundlichem Gruß

Ralph
Fehler sind wie Berge, man steht auf dem Gipfel seiner eigenen und redet über die der anderen.

Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 6198
Registriert: So 7. Jan 2007, 10:20
OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
CPU-Target: 32Bit (64Bit)
Wohnort: Burgenland
Kontaktdaten:

Re: Dateivergleich FTP Server - Client

Beitrag von af0815 »

Ralph59 hat geschrieben: außerdem kenne ich die Funktionen der DLL's mcht. Was macht z.B. eine SlikSvn-svn_client-1.dll oder SlikSvn-svn_diff-1.dll

Versuch doch damit, das SVN Programm mal direkt aus Lazarus aufzurufen und es erst später direkt mit der dll zu versuchen. Der Vorteil dabei ist, das du alles zuerst händisch auch auf der Konsole austesten kannst. Beispiele dazu in der Lazarus Wiki bzw. ist es hier im Forum auch schon öfters besprochen worden.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

Ralph59
Beiträge: 145
Registriert: So 22. Mär 2009, 07:48
OS, Lazarus, FPC: WIN 11 (momentan )
CPU-Target: 64 und 32Bit
Wohnort: Hessen
Kontaktdaten:

Re: Dateivergleich FTP Server - Client

Beitrag von Ralph59 »

Hallo,
Versuch doch damit, das SVN Programm mal direkt aus Lazarus aufzurufen...

hab ich getan, und es funktioniert auch recht gut. Mit dem svn diff habe ich noch einige Probleme, aber TortoiseMerge läuft dagegen einwandfrei.

:wink: Danke noch einmal für die Anregung, ich werde wenn ich dazu fragen habe, oder eine Diskussion anstrebe noch einmal in einem anderen Eintrag im Forum melden.

Mit freundlichem Gruß

Ralph
Fehler sind wie Berge, man steht auf dem Gipfel seiner eigenen und redet über die der anderen.

Antworten