Kapitel 16. Datei-Synchronisation

Inhaltsverzeichnis

16.1. Software zur Datensynchronisation
16.2. Kriterien für die Programmauswahl
16.3. Einführung InterMezzo
16.4. Einführung unison
16.5. Einführung CVS
16.6. Einführung mailsync

Zusammenfassung

Viele Menschen benutzen heutzutage mehrere Computer. Ein Computer zu Hause, ein oder mehrere Rechner am Arbeitsplatz und eventuell noch einen Laptop oder PDA für unterwegs. Viele Dateien benötigt man auf allen Computern und möchte sie auch bearbeiten. Dennoch sollen alle Daten überall in aktueller Version zur Verfügung stehen.

16.1. Software zur Datensynchronisation

Auf Computern, die ständig miteinander über ein schnelles Netzwerk in Verbindung stehen, ist die Datensynchronisation kein Problem. Man wählt ein Netzwerkdateisystem, wie zum Beispiel NFS, und speichert die Dateien auf einem Server. Alle Rechner greifen dabei über das Netzwerk auf ein und dieselben Daten zu.

Dieser Ansatz ist unmöglich, wenn die Netzverbindung schlecht oder teilweise gar nicht vorhanden ist. Wer mit einem Laptop unterwegs ist, ist darauf angewiesen, von allen benötigten Dateien Kopien auf der lokalen Festplatte zu haben. Wenn Dateien bearbeitet werden stellt sich aber schnell das Problem der Synchronisierung. Wird auf einem Computer eine Datei verändert, muss man tunlichst aufpassen, dass man die Kopie der Datei auf allen anderen Rechnern auch aktualisiert. Dies kann bei seltenen Kopiervorgängen von Hand mit Hilfe von scp oder rsync erledigt werden. Bei vielen Dateien wird das schnell aufwändig und erfordert hohe Aufmerksamkeit vom Benutzer, um Fehler, wie zum Beispiel das Überschreiben einer neuen mit einer alten Datei, zu vermeiden.

[Warning]Datenverlust droht

Man sollte in jedem Fall sich mit dem verwendeten Programm vertraut machen und seine Funktion testen, bevor man seine Daten über ein Synchronisationssystem verwaltet. Für wichtige Dateien ist ein Backup unerlässlich.

Um diese zeitraubende und fehlerträchtige Handarbeit der Datensynchronisation zu vermeiden, gibt es Software, die mit verschiedenen Ansätzen diese Arbeit automatisiert. Die folgenden Kurzeinführungen sollen dem Nutzer eine Vorstellung davon liefern, wie diese Programme funktionieren und genutzt werden können. Vor dem tatsächlichen Einsatz empfehlen wir, die Programmdokumentation sorgfältig zu lesen.

16.1.1. InterMezzo

Die Idee von InterMezzo ist es, ein Dateisystem zu konstruieren, das wie NFS die Dateien über Netzwerk austauscht, dabei aber auf jedem Computer lokale Kopien speichert, sodass auch bei Verlust der Netzwerkverbindung die Dateien zur Verfügung stehen. Die lokalen Kopien können bearbeitet werden. In einer speziellen Logdatei werden alle Veränderungen notiert. Bei Wiederherstellung der Verbindung werden diese Veränderungen dann automatisch weitergegeben und die Dateien abgeglichen. Mehr Informationen zu intersync finden Sie sofern das Paket installiert ist unter /usr/share/doc/packages/intersync/doc/InterMezzo-HOWTO.html.

16.1.2. unison

Bei unison handelt es sich nicht um ein Netzwerkdateisystem. Stattdessen werden Dateien ganz normal lokal gespeichert und bearbeitet. Von Hand kann das Programm unison aufgerufen werden, um Dateien zu synchronisieren. Beim ersten Abgleich wird auf den beteiligten zwei Computern eine Datenbank angelegt, in der Prüfsummen, Zeitstempel und Berechtigungen der ausgewählten Dateien gespeichert sind.

Beim nächsten Aufruf kann unison erkennen, welche Dateien verändert wurden und die Übertragung vom oder zum anderen Rechner vorschlagen. Im besten Fall kann man alle Vorschläge annehmen.

16.1.3. CVS

Meist zur Versionsverwaltung von Quelltexten von Programmen benutzt bietet CVS die Möglichkeit, Kopien der Dateien auf mehreren Computern zu haben. Damit eignet es sich auch für unseren Zweck.

Bei CVS gibt es eine zentrale Datenbank (repository) auf dem Server, welche nicht nur die Dateien, sondern auch die Veränderungen an ihnen abspeichert. Veränderungen, die man lokal durchführt, werden in die Datenbank eingecheckt (commit) und können von anderen Computern wieder abgeholt werden (update). Beides muss vom Benutzer initiiert werden.

Dabei ist CVS bei Veränderungen auf mehreren Computern sehr fehlertolerant: Die Veränderungen werden zusammengeführt und nur wenn in den gleichen Zeilen Veränderungen stattfanden, gibt es einen Konflikt. Die Datenbank bleibt im Konfliktfall in einem konsistenten Zustand und der Konflikt ist nur auf dem Client Computer sichtbar und zu lösen.

16.1.4. mailsync

Im Vergleich zu den bisher erwähnten Synchronisationswerkzeugen dient Mailsync einzig und allein der Aufgabe, E-Mails zwischen Mailboxen zu synchronisieren. Es kann sich sowohl um lokale Mailbox-Dateien als auch um Mailboxen handeln, die auf einem IMAP-Server untergebracht sind.

Dabei wird für jede Nachricht aufgrund der im E-Mail-Header enthaltenen Message-ID einzeln entschieden, ob sie synchronisiert bzw. gelöscht werden muss. Es ist sowohl die Synchronisation zwischen einzelnen Mailboxen, als auch zwischen Hierarchien von Mailboxen möglich.