Daten zwischen unterschiedlichen Systemen, Geräten oder Anwendungen zu synchronisieren – das ist eine Aufgabe, die kein Anwender von Hand erledigen möchte. Verschiedene Tools helfen beim Abgleich .
Die meisten Benutzer speichern ihre Daten nicht nur auf verschiedenen Computern, sondern verteilen sie auch noch an Internetdienste wie etwa Flickr, Facebook oder Picasa. Dazu kommen meist noch mobile Geräte, deren Daten es mit dem Kalender des PC abzugleichen gilt. Diese Datenflut einigermaßen synchron zu halten ist kein leichtes Unterfangen. Mehrere Tools empfehlen sich für die unterschiedlichen Aufgaben; wo ihre Stärken und Schwächen liegen, das zeigt diese Bitparade.
Rsync
Rsync ist der Klassiker, wenn es darum geht, Datenbestände synchron zu halten ([1], [2]). Das 1999 von Samba-Entwickler Andrew Tridgell geschaffene Werkzeug für den Datenabgleich erledigt seine Arbeit zuverlässig und flott. Einziges Manko: Rsync überträgt nur in eine Richtung von der Quelle zum Ziel.
Rsync zerlegt Dateien in Blöcke, vergleicht diese mit Hilfe von Prüfsummen und überträgt schließlich nur die geänderten Teilstücke. Dieses Feature sorgt unter anderem dafür, dass das Tool abgebrochene Datenübertragungen wieder aufnimmt. Es setzt bei wiederholter Ausführung dann einfach die Synchronisation an der Bruchstelle fort.
Rsync beherrscht nicht nur den Abgleich von Daten im lokalen System, sondern auch über das Netzwerk. Mit verschiedenen Aufrufoptionen teilt der Anwender der Software mit, welches Protokoll sie verwenden soll. Zur Wahl stehen RSH, SSH oder ein eigenständiger Rsync-Server-Prozess; Verschlüsselung bietet aber nur die Variante mit dem Datenaustausch via SSH.
Rsync verrichtet seine Arbeit vornehmlich auf der Konsole, es stehen aber einige grafische Aufsätze zur Verfügung, die per Mausklick Zugriff auf die wichtigsten Features bieten (siehe Abbildung 1). Ein Blick auf Gadmin-Rsync [3], Grsync [4] oder Backup Monitor [5] lohnt sich.

Abbildung 1: Für Rsync stehen verschiedene, mehr oder weniger komfortable grafische Frontends zur Verfügung (hier Grsync und Gadmin-Rsync).

Abbildung 2: Über Drag & Drop wandern die Quell- und Zielorte nach rechts, wo der Anwender sie in Synchronisationsgruppen anordnet.
Unison
Ändern sich Quelle und Ziel gleichermaßen, braucht es ein Werkzeug, das die Unterschiede auf beiden Systemen untersucht und sie auf den gleichen Stand bringt. Im Gegensatz zu Rsync, das nur in eine Richtung arbeitet, berücksichtigt Unison beim Synchronisieren beide Seiten [6]. Genau wie Rsync unterstützt Unison die Netzwerkprotokolle RSH und SSH. Alternativ arbeitet es über einen Socket als eigenständiger Prozess.
Die Software werkelt sowohl auf der Konsole als auch im mitgelieferten, eher rudimentär wirkenden grafischen Interface. Der Anwender automatisiert viele Vorgänge über eine oder mehrere Konfigurationsdateien, die verschiedene Orte und Datensätze enthalten. Die Verwaltung dieser Profile, die im versteckten Verzeichnis »~/.unison« liegen, erfolgt entweder im Texteditor oder über das GUI [7].
Befinden sich zwei verschiedene Versionen einer Datei auf beiden Seiten, kann Unison diese zusammenführen. Allerdings ist diese auf Diff3 basierende Merge-Funktion zur Konfliktbewältigung nicht einfach zu bedienen. Außerdem fehlt die Unicode-Unterstützung – Unison rekodiert Umlaute bei der Übertragung in eine nicht mehr lesbare Form. Dass sich dies in Zukunft ändert, ist zu bezweifeln: Unison wird nicht weiterentwickelt.
Conduit
Das in Python und PyGTK geschriebene Tool Conduit wird als Nachfolger von Unison gehandelt [8]. Die Software ist ebenfalls in der Lage, beidseitig abzugleichen – und das nicht nur lokal, auf USB-Medien und über NFS- oder CIFS-/SMB-Shares, sondern auch mit Evolution und mit Onlinediensten wie zum Beispiel Picasa, Shutterfly, F-Spot, Flickr oder Facebook. Auch vor der Synchronisation mit verschiedenen Office-Applikationen, mit Tomboy oder Backpack scheut Conduit nicht zurück. Dabei berücksichtigt das Programm Konflikte, die sich ergeben. Der Anwender stellt im Konfigurationsdialog ein, ob Conduit nachfragt, die ältere Version ersetzt oder Konflikte einfach übergeht.
Die Synchronisation mit Daten über das Netzwerk funktioniert derzeit nicht über bekannte Protokolle wie RSH oder SSH. Conduit setzt auf Avahi [9], um Geräte zu vernetzen, ohne dass der Anwender diese vorher einrichten muss.
Das Programmfenster ist zweigeteilt: Links befinden sich die Sychronisationsorte (Quellen und Ziele), rechts ein Panel zur Verknüpfung der einzelnen Komponenten (siehe Abbildung 2). In diesen Bereich zieht der Anwender von links per Drag & Drop eine Komponente und öffnet damit eine neue Gruppe für Synchronisationsobjekte. Von diesen definiert der Benutzer optional gleich mehrere. Will er die eigene Bildersammlung nicht nur mit Picasa teilen, fügt er der Gruppe beispielsweise als weitere Ziele Facebook oder Flickr hinzu.
Auch Ordner auf externen USB-Medien oder mobilen Endgeräten (Nokia N800, I-Pod und so weiter) sind möglich. In der Voreinstellung läuft die Verbindung in eine Richtung; sind zwei Synchronisationspartner allerdings in der Lage, beidseitig abzugleichen, definiert der Anwender dies bequem über das Kontextmenü der rechten Maustaste.
Praktischerweise konvertiert Conduit Dateiformate beim Abgleich. Lädt der Anwender etwa Bilder von Flickr herunter, kann er im Kontextmenü des Flickr-Elements angeben, in welcher Auflösung diese auf der Platte landen.
Opensync
Opensync ist derzeit wohl das leistungsstärkste Synchronisations-Werkzeug [10]. Das Programm gleicht Adressen, Kalendereinträge und andere Daten zwischen verschiedenen Geräten (Computern, PDAs oder Handys) oder Programmen ab. Der Multisync-Nachfolger ist modular aufgebaut und hat eine Vielzahl von Plugins im Gepäck. Zurzeit arbeitet Opensync beispielsweise mit Evolution, Gnokii, Sunbird (Synchronisation über Webdav) und Google Calendar zusammen. Zudem sind Synchronisationen mit verschiedenen Handhelds oder Mobiltelefonen möglich.
Das Opensync-Framework bietet eine Programmierschnittstelle (API) und Bindings für Python an, sodass ambitionierte Bastler ein Fundament für professionelle Eigenentwicklungen haben. Die Entwickler warnen ausdrücklich davor, Opensync ohne vorherige Datensicherung einzusetzen – das Projekt befindet sich noch im Entwicklungsstadium.
Zunächst legt der Anwender eine Gruppe an. Diese enthält dann die benötigten Plugins für die Mitglieder, also die Programme oder Geräte, die es zu synchronisieren gilt. Die entsprechenden Erweiterungen für die gewünschten Aufgaben sollten installiert sein, bevor der Benutzer die einzelnen Synchronisations-Wege vereinbart. Dazu arbeitet er wahlweise mit einem der grafischen Frontends oder auf der Kommandozeile.

Abbildung 3: Achtung, Verwechslungsgefahr: Das GTK-Programm Multisync heißt genauso wie der Vorgänger des Opensync-Framework.

Abbildung 4: Die KDE-Oberfläche des Opensync-Framework heißt Kitchensync – genau wie ein nicht mehr länger gepflegtes Synchronisationstool.
GUI oder Shell
Die grafische Oberfläche Multisync wirkt auf den ersten Blick recht spartanisch (siehe Abbildung 3). Der Schein trügt nicht: Die GTK-Anwendung erledigt zurzeit nur einfache Aufgaben; Konfigurationen für komplexere Synchronisationsvorgänge erfordern Handarbeit und gute XML-Kenntnisse.
Alternativ bietet sich Kitchensync als GUI an (siehe Abbildung 4). Aber Vorsicht: Die Entwicklung des alten KDE-Synchronisationstools Kitchensync ist schon vor einiger Zeit eingeschlafen. Damals entschloss sich das KDE-Team, die eigenen Ansätze zur Synchronisation aufzugeben und sich dem Opensync-Projekt zuzuwenden. Der Name ist allerdings geblieben – Kitchensync heißt nun die grafische KDE-Oberfläche von Opensync.
Ein Opensync-Plugin für die KDE-PIM-Suite fehlt momentan – ein weiteres Opfer der Umstellung von KDE 3 auf KDE 4. Anwender, die Kontact unter KDE 4 synchronisieren wollen, müssen sich noch ein wenig gedulden. Das Opensync-Projekt entwickelt zurzeit ein Plugin für Akonadi [11]. Dieser Dienst kümmert sich unter KDE 4 um die Verwaltung der PIM-Einträge. Das Plugin soll wahrscheinlich mit Version 0.40 von Opensync ausgeliefert werden (aktuell ist 0.39).
Shell-Fans dürften sich über »msynctool« freuen. Das Kommandozeilentool stellt Aufrufoptionen bereit, mit denen der Anwender beispielsweise eine neue Gruppe anlegt (»–addgroup Gruppenname«), die verfügbaren Plugins auflistet (»–listplugins«), Plugins zu einer Gruppe hinzufügt (»–addmember Gruppenname Plugin-Name«) und die einzelnen Plugins konfiguriert (»–configure Gruppenname 1«, um das erste Plugin einzurichten, »–configure Gruppenname 2« für das zweite und so weiter). Für viele Plugins stehen im Netz Rezepte bereit, die als Vorlage für die eigene Einrichtung dienen können. Das Ubuntu-Users-Wiki ist eine gute Anlaufstelle und enthält Artikel zur Konfiguration der gängigsten Opensync-Erweiterungen [12].
Anschließend bringt der Anwender beide Seiten zunächst auf den gleichen Stand. Dazu synchronisiert er in eine Richtung und gibt so automatisch einer Quelle den Vorrang. Bei der späteren Benutzung nimmt Opensync dann den Zeitstempel zu Hilfe, um Prioritäten zu setzen und eventuelle Konflikte aufzulösen.
Fazit
Für jede Synchronisationsaufgabe steht ein passendes Werkzeug bereit. Leider gibt es aber kein Tool, das alles kann. Wer Daten über SMB oder via NFS synchronisieren möchte, sollte sich Conduit ansehen, muss aber vorher Avahi installieren. Alternativ macht er die Daten vorher lokal verfügbar und gleicht mit Rsync oder Unison ab. Bei letzterer Variante sollte der Benutzer jedoch unbedingt darauf achten, dass Dateinamen und Verzeichnisse keine Umlaute enthalten.
Als modulares Framework hat Opensync gute Chancen, sich zum Standard für künftige Synchronisations-Werkzeuge zu mausern. Leider macht der Umstieg von KDE 3 auf 4 der KDE-PIM-Erweiterung einen Strich durch die Rechnung und verhindert derzeit noch einen Abgleich mit Kontact. Wer Evolution als Groupware-Client nutzt, profitiert aber jetzt schon von Opensync. (hej)
|
Infos |
|---|
|
[1] Rsync: [http://www.samba.org/rsync] [2] Achim Leitner, “Recycling-Meister”: Linux-Magazin 08/2007, S. 46, [https://www.linux-magazin.de/Heft-Abo/Ausgaben/2007/08/Recycling-Meister] [3] Gadmintools: [http://gadmintools.org] [4] Grsync: [http://www.opbyte.it/grsync] [5] Backup Monitor: [http://sourceforge.net/projects/backupmon] [6] Unison: [http://www.cis.upenn.edu/~bcpierce/unison] [7] Dmitri Popov, Anika Kehrer, “Der Klassiker: Unison – der Nachwuchs: Conduit”: Linux-Magazin Online vom 25.01.2008, [https://www.linux-magazin.de/Online-Artikel/Synchronisation-mit-Unison-und-Conduit] [8] Conduit: [http://live.gnome.org/Conduit] [9] Lennart Poettering, “Null Arbeit”: Linux-Magazin 03/2006, S. 64, [https://www.linux-magazin.de/Heft-Abo/Ausgaben/2006/03/Null-Arbeit] [10] Opensync: [http://www.opensync.org] [11] Akonadi: [http://pim.kde.org/akonadi] [12] Opensync-Artikel im Ubuntu-Users-Wiki: [http://wiki.ubuntuusers.de/OpenSync] |





