Knowledgebase
1 Apr
Es soll ein Dateibestand über eine beliebige Anzahl an (Linux-) Servern konsistent gehalten werden. In Fällen von Änderungen an einer Datei auf mehr als einem Server, behält die letzte Änderung recht. Nun mögen die Ersten wohl gleich an rsync denken. Aber das ist zu kurz gesprungen. Denn rsync kann dateien nur replizieren, aber nicht synchronisieren. Größter Unterschied im Zweiwegereplica (Aktiv/Aktiv) ist, dass man keine zu löschende Datei mehr losbekommt, diese tauchen immer wieder auf. Als gangbarer Weg hat sich für uns Unison herausgestellt. Obwohl nicht mehr aktiv weiterentwickelt, leistet es nach wie vor hervorragende Dienste (wenn man weiß, was man tut). Es ist sowohl für Linux, Mac und Windows erhältlich. Allerdings kann es beim Sync über untersch. Plattformen zu unvorhergesehenen Ergebnissen kommen, weil es oftmals Probleme mit den Zeichensätzen bei den Dateibezeichnungen gibt.
Über verschiedene vom User verwaltbare Profile ist eine genaue Einstellung der Synchronisierungsparameter möglich. Sogar GUIs gibt es für alle Plattformen, wird hier aber nicht benötigt. Die Übertragung selbst läuft über das rsync-Protokoll, transportiert nur die Deltas, ist verschlüsselt und auf langsame Leitungen optimiert.
Bisher wurden die Server an den Standorten manuell per Samba abgeglichen. Leider schlichen sich so teils andere Schreibweisen bei der Groß-/Kleinschreibung ein. Diese mussten wir zuerst glattziehen, um anschließend Daten nicht mehrfach abgelegt zu haben. Damit kommt zwar Samba, aber kein Windows-Client mehr zurecht. Die kleinen Bash-Einzeiler, die mittels “mv” die Verzeichnisse umbenennen haben allerdings in der Rekursivität große Schwächen. Eine gute Toolsammlung stellen hier die freien FileRenamUtils dar. Nur kann man diese nicht auf die ausschließliche Bearbeitung von Directories eingrenzen. Nach kurzem Hand anlegen und einer Erweiterung des zentralen Scripts “lowercase” um den Parameter “-d” läßt sich dieses Problem elegant umschiffen (Aber auch hier: dt. Umlaute werden zu doppelten Unterstrichen…).
So klappts dann auch mit dem vollautomatischen Synchronisieren.
gute Tips zu Unison: PMT, LinuxJournal
Leave a reply