Daten synchronisieren mit Unison

Aus LinuxUser 02/2004

Daten synchronisieren mit Unison

Datentandem

Wenn Sie Datenbestände auf verschiedenen Rechnern bearbeiten, stellt sich schneller als gedacht ein unüberschaubares Versionswirrwarr ein. Unison hilft, Dateien und Verzeichnisse “unisono” zu halten.

Für die Dateisynchronisation existieren bereits diverse Werkzeuge. Am bekanntesten sind sicherlich rsync und CVS. Dabei stellt rsync eher eine Einbahnstraße dar und führt Änderungen nicht in beiden Richtungen auf einmal durch. Ein CVS bietet zwar prinzipiell diese Funktionalität, ist für einen schnellen, unkomplizierten Abgleich einer Ordnerstruktur aber schlicht zu umständlich.

Klonen leicht gemacht

Was sind nun die Voraussetzungen? Sie wollen Unterschiede schnell und verlässlich erkennen, so dass ein Abgleich – über Betriebssystemgrenzen hinweg – leicht wird. Einfache Bedienung, sichere Übertragung der Änderungen, eine intelligente Abgleichsautomatik und dennoch differenzierte Eingriffsmöglichkeiten stehen ebenso auf der Wunschliste.

Dazu noch eine einfache Installation und eine komfortable Oberfläche, garniert mit kostenloser Verfügbarkeit – das bietet Ihnen das Tool unison von Benjamin C. Pierce [1].

Installation

Die Software ist für viele Plattformen verfügbar, was neben Linux, Solaris und Windows auch FreeBSD und MacOS X umfasst. Die aktuellste Version ist gewöhnlich nur im Quellcode vorhanden. Bei SuSE Linux 8.2 Professionell ist unison bereits enthalten. Sie installieren es bequem mit YaST.

Alternativ steht eine Binärversion auf der Unison-Homepage [1] zur Verfügung. Es handelt sich dabei lediglich um ein Archiv mit einer ausführbaren Datei. Dieses entpacken Sie in ein Verzeichnis, welches im Pfad liegt. Damit ist die Installation unter Linux bereits beendet.

Die Binärversion mit gtkui im Dateinamen enthält sowohl das Text- als auch das Grafik-Interface. Soll unison ausschließlich von einem Rechner aus eingesetzt werden, reicht auf dem entfernten Rechner die Textmodusversion.

Installieren Sie das Programm auf allen Rechnern, die Sie synchronisieren möchten. Dabei setzen Sie am besten jeweils die gleiche Version ein. Im Internet sind diverse RPM-Pakete und ein Debian-Paket verfügbar. Für die Installation des Programms auf anderen Plattformen beachten Sie Kasten 1, “Andere Betriebssysteme”.

Gegebenfalls müssen Sie noch SSH installieren. Bei den üblichen Distributionen ist das in der Regel schon passiert.

Kasten 1: Andere Betriebssysteme

Windows und MacOS X unterscheiden leider nicht zwischen Klein- und Großschreibung. Probleme bereiten auch Umlaute in Dateinamen. Deshalb müssen per Hand vor dem ersten Replizieren die entsprechenden Dateien umbenannt werden.

Eine Windows-Version von unison ist im Internet [2] erhältlich, während Mac-User auf fink[3] zurückgreifen können. Außerdem sollte ein X-Server installiert sein. Die FAQ auf der Homepage [1] hilft hier weiter.

Erste Schritte

Das Prinzip ist immer das gleiche: Möglicherweise sind Sie viel auf Reisen oder arbeiten häufig mit einem Laptop an verschiedenen Orten, sichern Ihre Daten aber auf einem PC. Sie duplizieren also einen Ordner mit Ihren Dateien und arbeiten anschließend in diesem Ordner an einer Datei, erstellen eine neue oder löschen ein altes Dokument. Nun sind die Bestände nicht mehr synchron.

Starten Sie unison, scannt die Software die Verzeichnisse und gibt die Unterschiede aus. Sie übernehmen die Vorschläge oder ändern sie. Anschließend stoßen Sie die eigentliche Synchronisation an.

Für einen ersten Test auf dem lokalen Rechner verwenden Sie zwei beliebige Verzeichnisse. In unserem Bespiel benutzen wir die Verzeichnisse doc und doc-sync, in denen jeweils unterschiedliche Dateien fehlen.

Starten Sie das Programm stets aus einem Terminal durch Eingabe des Dateinamens. Sie erhalten das Startfenster (Abbildung 1), welches zur Auswahl des Profils dient. In diesem fassen Sie die zu einer Synchronisation notwendigen Angaben zusammen.

Abbildung 1: Das Startfenster von Unison

Abbildung 1: Das Startfenster von Unison

Wählen Sie Create new profile und geben im erscheinenden Fenster einen Namen für das Profil ein (Abbildung 2).

Abbildung 2: Das Profil wird benannt

Abbildung 2: Das Profil wird benannt

Auf diese Weise lassen sich beliebig weitere Profile anlegen. Im ersten Fenster wählen Sie Ihr frisch angelegtes Profil und müssen im nächsten Fenster das erste, lokale Verzeichnis angeben (Abbildung 3).

Abbildung 3: Angabe des ersten Verzeichnisses

Abbildung 3: Angabe des ersten Verzeichnisses

Bestätigen Sie die Angaben und tragen Sie anschließend das zweite Verzeichnis ein (Abbildung 4). Es kann sich sowohl um ein lokales als auch um ein entferntes Verzeichnis handeln, das über SSH, RSH oder ein Socket angesprochen wird. Der entfernte Host und der Nutzername sind gegebenenfalls einzutragen, was in diesem Beipiel zunächst entfällt.

Abbildung 4: Angabe des zweiten Verzeichnisses

Abbildung 4: Angabe des zweiten Verzeichnisses

Drücken Sie Continue, dann gibt unison den Hinweis aus, dass es keine Archiv-Files findet (Abbildung 5). Diesen Dialog können Sie ohne weiteres bestätigen, wenn Sie unison zum ersten Mal einsetzen. Es bedeutet lediglich, dass die Datenbestände noch nicht gescannt wurden.

Abbildung 5: Noch fehlen die Archivdaten

Abbildung 5: Noch fehlen die Archivdaten

Nun beginnt der initiale Datenvergleich, und das Erstellen der Archivdateien dauert einige Zeit. Innerhalb des Hauptfensters (Abbildung 6) sehen Sie den Verlauf des ersten Abgleichs.

Stellt unison Unterschiede fest, schlägt die Software Aktionen zum Datenabgleich vor. Die darauf folgenden Synchronisationen verlaufen wesentlich schneller, da das Programm auf die bereits erstellten Archivinformationen zurückgreift und lediglich die Änderungen überträgt.

Abbildung 6: Das Hauptfenster von Unison

Abbildung 6: Das Hauptfenster von Unison

Das Hauptfenster zeigt Ihnen eine tabellarisch angeordnete Übersicht über die Dateien, bei denen unison Unterschiede zwischen den beiden Verzeichnissen festgestellt.

Die erste Spalte gehört zum lokalen und die dritte zum zweiten, möglicherweise entfernten Verzeichnis. Ein kurzer Text erläutert den Grund für eine vorgeschlagene Aktion.

Spalte 2 zeigt uns durch Symbole an, welche Aktionen unison vorschlägt. Grüne Pfeile stehen für das Kopieren von fehlenden oder aktualisierten Dateien oder Verzeichnissen.

Ein rotes Fragezeichen erfordert einen Benutzereingriff: Hier konnte die Software keinen sinnvollen Vorschlag machen. Das kommt zum Beispiel bei unterschiedlichen Zugriffsrechten oder Versionskonflikten vor.

Im darunter liegenden Fenster finden Sie detaillierte Informationen über die zu übertragenden Dateien. Wenn Ihnen ein Vorschlag nicht gefällt, klicken Sie die entsprechende Zeile an und drücken den Button Skip. Das Programm führt die jeweilige Aktion dann nicht durch. Ein Ändern der Synchronisationsrichtung erreichen Sie mit den beiden Pfeiltasten.

Damit haben Sie unison erfolgreich gestartet und einen ersten Vergleich durchgeführt. Bevor Sie aber mit Go die Synchronisation anstoßen, werfen Sie einen Blick auf die weiteren Einstellmöglichkeiten.

Fein-Tuning

Möchten Sie zum Beispiel dauerhaft verhindern, dass Dateien im Verzeichnis .xvpics übertragen werden, weil darin nur die Vorschaubilder des Konquerors enthalten sind, hilft Ihnen das Menü Ignore weiter (Abbildung 7).

Sie können Pfade oder Dateien mit einer bestimmten Dateierweiterung oder einem bestimmten Dateinamen ausschließen. Der planvolle Einsatz der Ignore-Optionen lässt das Fenster von unison in der Folgezeit sehr übersichtlich werden.

Abbildung 7: Auswahl der Ignore-Optionen

Abbildung 7: Auswahl der Ignore-Optionen

Jetzt ist es Zeit für den Go-Button. Zeilenweise arbeitet unison die Aktionen ab und quittiert erfolgreiche Dateitransfers mit einem grünen Häkchen. Sie haben es geschafft – Ihre Daten sind wieder einheitlich.

Entfernter Aufruf

Für einen Abgleich mit einem entfernten Verzeichnis erstellen Sie ein neues Profil und geben beim zweiten Verzeichnis den Pfad relativ zu Ihrem Home-Verzeichnis an. Wenn Sie also auf dem entfernten Rechner das Verzeichnis /home/nutzer/doc synchronisieren wollen, tragen Sie lediglich doc ein.

Als Übertragungsprotokoll kommt aus Sicherheitsgründen nur SSH in Frage. Mit SSH kann weiterhin eine Port-Umleitung und eine Komprimierung bei der Übertragung eingestellt werden – die Dokumentation beschreibt dies genauer. Besitzen Sie auf dem entfernten Rechner einen anderen Nutzernamen, ist dieser ebenfalls anzugeben (Abbildung 8).

Abbildung 8: Auswahl des entfernten Verzeichnisses

Abbildung 8: Auswahl des entfernten Verzeichnisses

Zur Identifizierung auf dem entfernten Rechner verlangt unison das Passwort in der Konsole, von der das Programm aufgerufen wurde. Starten Sie deshalb die Software nicht über das K-Menü, mit [Alt-F2] oder dergleichen, da sonst der Verbindungsaufbau fehlschlägt.

Sollte trotz korrekter SSH-Verbindung der entfernte Aufruf nicht funktionieren, ist der Pfad zum Programm eventuell nur in der Login-Shell verfügbar. Entweder installieren Sie das Programm in einem systemweiten Programmverzeichnis oder probieren es kurzerhand mit einem kleinen “Workaround”: Aktivieren Sie das so genannte X-Forwarding:

ssh -X nutzer@maschine

Rufen Sie nun das entfernte unison auf. Vergessen Sie nicht, dass nun lokale und entfernte Verzeichnisse quasi vertauscht sind.

Konflikte lösen

Zwei Buttons haben Sie noch nicht ausprobiert: Diff und Merge. Stellen Sie sich vor, Sie haben eine Textdatei auf dem PC bearbeitet. Bevor Sie jedoch synchronisieren, fällt ihnen unterwegs etwas ganz Wichtiges ein, das Sie auf dem Notebook in der Komplementärdatei ändern.

Jetzt haben Sie einen klassischen Versionskonflikt: Beide Dateien wurden seit dem letzten Synchronisationslauf geändert, was unison prompt durch ein rotes Fragezeichen mitteilt. Das Programm schafft es nicht, diesen Konflikt automatisch aufzulösen (Abbildung 9).

Abbildung 9: Ein Versionskonflikt

Abbildung 9: Ein Versionskonflikt

Ein Klick auf Diff fördert die Unterschiede zutage. Leider funktioniert der Merge-Button nicht wie erwartet – hierzu müssen Sie erst in der Profildatei festlegen, wie das Zusammenfügen ablaufen soll. Dazu ergänzen Sie die entsprechende Profildatei um die Optionen merge und merge2.

Wenn eine Backup-Datei existiert, wird merge verwendet, sonst merge2. Die Dokumentation enthält diverse Vorschläge für den Aufruf der passenden Programme, die eine dritte Datei als Zwischenablage benutzen (siehe auch Help/Running Unison/Merging Conflicting Versions).

Diese resultierende Datei enthält die Unterschiede übersichtlich im Kontext. Letztlich müssen Sie hier von Hand eine finale Version erzeugen.

Profile bearbeiten

Die eben erwähnten Profile liegen im Ordner .unison im Home-Verzeichnis und tragen die Endung .prf. Haben Sie sich zum Beispiel beim Erstellen eines Profils vertippt, können Sie die Profildatei nachträglich in einem Editor bearbeiten.

Beispiele für Profildateien finden sich in der Dokumentation. Im selben Verzeichnis liegen auch die Archivdateien, erkennbar an einem mit ar beginnenden Dateinamen. Wenn Sie unison eine “Gehirnwäsche” verpassen wollen, löschen Sie einfach diese Dateien.

Die Dokumentation auf der Homepage oder im Menü Help liefert genauere Erklärungen zu den Optionen. Die Behandlung von symbolischen Links, der Umgang mit wechselnden IP-Adressen bei Laptops und das Erstellen von Backup-Archiven werden beispielsweise dort erklärt.

Nicht alle Optionen sind über die grafische Oberfläche verfügbar, so dass diese entweder für den einmaligen Gebrauch beim Aufruf von unison mitzugeben oder in die entsprechende Profildatei einzutragen sind.

Textmodus

Läuft kein X-Server oder soll die Synchronisation batch-gesteuert ablaufen, steht der Textmodus zur Verfügung. Bei laufendem X-Server erreichen Sie diesen durch die Option -ui text. Dazu kommt der Profilname; alternativ geben Sie die beiden Verzeichnisse an.

Die ermittelten Unterschiede müssen zeilenweise interaktiv abgearbeitet werden, auf Eingabe von ? listet das Programm alle verfügbaren Befehle auf. unison -help informiert Sie kurz über alle Optionen. Die Dokumentation ist im Textmodus verfügbar. Eine Übersicht über die Hilfethemen erhalten Sie mit:

unison -doc topics

Ersetzen Sie anschließend topics durch das gewünschte Thema.

Fazit

Die Software hält, was Sie verspricht – einen weitgehend automatisierten Datenabgleich mit flexiblen Möglichkeiten zur Feineinstellung. Hinzu kommen die einfache Installation und eine ausführliche Dokumentation.

Schwächen zeigt unison bei Versionskonflikten. Sollte so etwas öfters auftreten, bietet sich eher ein CVS an. Mit dem Schwerpunkt auf schnelle, unkomplizierte Dateiensynchronisation bietet unison zur Zeit noch kein ausgefeiltes Versionsmanagement.

Hingegen sind neue Dateien und komplette Verzeichnisstrukturen im Handumdrehen repliziert – das ist eindeutig die Stärke des Programms. Wenn die passenden Profile und Optionen erst einmal eingerichtet sind, steht einem reibungslosen Einsatz nichts mehr im Weg.

Der Autor

Daniel Rohark ist Verkehrsingenieur und auf dem Daten-Highway stets mit dem Tux-Mobil unterwegs. Hat er genug vom Datenabgleich, ist er oft auf Schusters Rappen oder per Rad anzutreffen.

Glossar

rsync

Ein Programm zum Spiegeln entfernter Verzeichnisse (“remote synchronisation”).

CVS

Concurrent Versions System, erlaubt den wechselseitigen Abgleich der Änderungen bei Projekten mit meist vielen Mitarbeitern.

SSH

Secure Shell (SSH) ist ein Protokoll, das ähnliche Dienste realisiert wie “telnet”. Das heißt, Sie loggen sich mit dem “ssh”-Programm interaktiv auf anderen Rechnern im Netz ein. Im Unterschied zu “telnet” wird die Kommunikation dabei aber vollständig verschlüsselt.

Pfad

Hier: Die Verzeichnisse, in denen nach ausführbaren Dateien gesucht wird. Das ist in der Variablen $PATH gespeichert.

X-Forwarding

Dient zur Grafikausgabe auf einem entfernten Rechner. Das Netzwerk überträgt dabei die Steuerbefehle von einem Rechner an den X-Server eines anderen Rechners.

Infos

[1] Unison-Homepage: http://www.cis.upenn.edu/~bcpierce/unison

[2] Unison-Binärpakete: http://www.cis.upenn.edu/~bcpierce/unison/download/stable/latest

[3] Fink – Freie Software für MacOS X: http://fink.sourceforge.net

LinuxUser 02/2004 KAUFEN
EINZELNE AUSGABE
ABONNEMENTS
TABLET & SMARTPHONE APPS
E-Mail Benachrichtigung
Benachrichtige mich zu:

Hinweis: Dieser Artikel ist älter als ein Jahr, enthaltene Informationen sind möglicherweise veraltet.

0 Kommentare
Älteste
Neuste Beste Bewertung
Inline Feedbacks
Alle Kommentare anzeigen
Nach oben