Verzeichnise synchronisieren...
Severin
- ftp
Hallo miteinander...
Meine Frage...
Wie kann ich ein Verzeichnis mit Unterverzeichnissen, dass auf einem Windows Rechner ist, via FTP mit einem Verzeichnis auf dem Webserver (Linux) synchronisieren.
Ich hab da mal versucht, mit dem Windows internen Ftp-Befehl und einer Batch-Datei was zu basteln. Das funzt auch, aber nur für Dateien und nicht für Verzeichnisse!
Hat jemand ein Script dafür? Oder einen Tipp?
Oder wenigstens ein Tool, mit dem man die Synchronisation automatisieren kann.
Wäre dankbar für jede Hilfe!
Thanks
Severin
Hallo,
hehe namensgliechtheit. Ich hab meinen(unsren? ;) Namen sonst noch niergends gesehen, komisch dass ich ihn (den Namen) gerade hier im Forum zum ersten Mal sehe. Bin also doch nicht alleine ;P
gruß,
Severin
Hey mega...
Dann ist hier noch ein dritter Severin...
Cu
Salute ihr zwei Namensvetter!
Ja finde ich ja auch geil, wär aber trotzdem froh, wenn mir jemand mal ne Antwort auf meine Frage geben könnte...!
Hey mega...
Dann ist hier noch ein dritter Severin...
Cu
Moin!
Meine Frage...
Wie kann ich ein Verzeichnis mit Unterverzeichnissen, dass auf einem Windows Rechner ist, via FTP mit einem Verzeichnis auf dem Webserver (Linux) synchronisieren.
Anhand welcher Merkmale willst du feststellen, ob eine Datei synchronisiert werden muß? Diese Aufgabe ist keinesfalls trivial!
Nur mal so zur grundsätzlichen Überlegung: Wenn du echt synchronisieren meinst, dann bedeutet das, sowohl lokal als auch remote haben sich Dateien geändert und sollen nun in beiden Richtungen ausgetauscht werden.
Dabei treten folgende Problemfälle auf:
1. Es hat sich bei beiden Dateien nichts geändert. Alle Dateiattribute (Größe, Erstelldatum, Änderungsdatum, etc.) sind gleichgeblieben.
2. Die lokale Datei hat sich geändert.
3. Die entfernte Datei hat sich geändert.
4. Beide Dateien haben sich geändert. Das nahezu unlösbare Problem hierbei ist: Wie soll man die Änderungen in der einen Datei in die andere hineinbringen, ohne die Änderungen dort zu überschreiben?
5. Eine Datei ist gelöscht worden.
6. Eine Datei ist neu hinzugefügt worden.
Das Problem hierbei: Wie erkennt man diese beiden Fälle? Wenn eine Datei nur auf einer Seite vorhanden ist: Ist das fehlende Gegenstück gelöscht worden, oder ist die nur einmal vorhandene Datei neu hinzugekommen?
Ich bin sicher, dass es noch weitere Spezialfälle gibt, die mir spontan nicht einfallen.
Alle diese Problematiken haben gemeinsam, dass man im Prinzip ohne das Anlegen einer entsprechenden Transfer- und Abgleichsdatenbank nicht auskommen kann. Wenn beim Abgleich beim Fall 5/6 die Datei in der Datenbank auf beiden Systemen schon mal registriert war, wurde sie wohl offenbar gelöscht. Wenn sie bislang unbekannt war, wird sie wohl neu angelegt worden sein. Und woran erkennt man, dass eine Datei geändert wurde? Die Gleichheit beider Dateien kann man einigermaßen zuverlässig anhand der Dateigröße und des Datums herausbekommen - die Methode versagt allerdings auch gerne mal, wenn das Datum auf beiden Systemen nicht synchron läuft, und diese (eigentlich überall vorhandene) Asynchronität auf das Dateidatum durchschlägt. Soll heißen: Wenn du um 13:22 eine Datei per FTP auf den Server packst, dessen Uhr erst 12:45 zeigt, und der FTP-Transfer sendet keine Uhrzeit mit, mit dem der Server die Datei anlegt, dann hast du trotz identischer Dateien zwei unterschiedliche Daten, die in der Folge alle Synchronisierungsversuche unmöglich werden lassen.
Und allein auf der Dateigröße basierend kann man auch nicht synchronisieren. Stell dir vor, es würde ein "Teppfuhler" in "Tippfehler" berichtigt werden. Die Dateigröße ändert das nicht - aber der Dateiinhalt ändert sich sehr wohl.
Du mußt also im Prinzip den Dateiinhalt beider Dateiversionen vergleichen. Es erscheint empfehlenswert, dafür beispielsweise eine MD5-Checksumme zu erstellen. Allerdings: Nur mit FTP kommst du damit nicht unbedingt weit, weil du dann die gesamten Dateien herunterladen und durch MD5 schleusen mußt. Spart also keine Bandbreite ein.
Ich hätte selbst schon sehr gerne solch ein Tool gehabt. Bislang hat dagegen eigentlich immer nur geholfen, die Datenströme eindeutig nur in eine Richtung fließen zu lassen: HTML-Dateien von local nach remote, und Logfiles von remote nach local. Damit erschlägt man erstmal einiges.
Und für komplexere Projekte, an denen mehrere Leute parallel arbeiten, empfiehlt sich der Einsatz einer Versionierungssoftware wie beispielsweise CVS. Damit werden Änderungen an Dateien protokolliert und lassen sich bei Bedarf durch Aufrufen einer älteren Version wieder rückgängig machen.
- Sven Rautenberg
Ich bin mir dessen bewusst, dass die Aufgabe nicht ganz so trivial ist!
Es muss allerdings keine wirkliche Synchronisation sein.
Es müssten jedeglich die aktualisierten Daten und die neuen Dateien/Verzeichnisse hochgeladen werden.
Eigentlich würde es auch schon reichen, wenn das Script einfach das ganze Verzeichniss hochlädt und alle bestehenden Dateinen/Verzeichnisse überschreibt.
Es geht einfach darum, dass im Verzeichnis auf dem Webserver genau die Dateien und Verzeichnisse liegen müssen, die im Verzeichnis auf dem Windows Server liegen.
Und da hab ich halt an ein Script gedacht. Im Script müsste ich aber auslesen können, welche Unterverzeichnisse existieren und diese dann mit ihrem Inhalt erstellen...
Weiss jemand wie man das lösen könnte?
Hallo Severin
Ich glaube dass ist genau das was du suchst.
Ich dachte immer, alle die SelfHTML nutzen würden automatisch auch HTMLEDIT Phase 5 benutzen und müssten deshalb auch von dem ftp-uploader gehört haben...
cu.Lukas
Hi Severin,
kenne keine Software, aber diese scheint das gewollte zu tun:
http://www.wise-ftp.de/Software/Software.htm
http://de.search.yahoo.com/search/de?p=verzeichnisse+synchronisieren+software
Gruß vom Horst