![]() |
|
||||||||||||||||||||
|
|||||||||||||||||||||
|
|||||||||||||||||||||
von Heike Jurzik
Mit Unison [1] halten Sie Datenbestände aktuell: Ob Sie verschiedene Verzeichnisse auf einem Linux-System vergleichen oder über die Grenzen hinaus gehen und Daten zwischen Linux und Windows abgleichen wollen -- mit wenigen Mausklicks bringt das Programm Ordnung ins Versionschaos.
Unison arbeitet entweder auf der Kommandozeile oder als komfortabler grafischer Client. Dieser Artikel beschränkt sich weitestgehend auf die Arbeit mit der grafischen Oberfläche -- nur wo es nicht anders geht, müssen Sie kurze Ausflüge auf die Kommandozeile unternehmen. Wer Unison im textbasierten Modus ausprobieren möchte, kann darüber hinaus einen Blick in das englische Benutzerhandbuch [2] werfen, das wertvolle Tipps und Tricks bietet.
Unison finden Sie bei Suse Linux 9.1 und 9.2 auf den Installationsmedien, Sie installieren das Programm wie gewohnt über YaST:
Bei Mandrake Linux 10.1 ist das Programm nicht auf den Installationsmedien zu finden: über RPM-Suchmaschinen wie z. B. rpmseek [3] kommen Sie aber schnell zum richtigen Paket:
Benutzer von Fedora Core 2 finden ein Paket über die Suchmaschine pbone.net [4]:
Sowohl bei Mandrake Linux 10.1 als auch bei Fedora Core 2 fehlt anschließend ein Eintrag im K-Menü. Um diesen hinzuzufügen, gehen Sie wie folgt vor:
Um Unison unter Windows zu installieren, gehen Sie von der Homepage [1] aus zum Download-Bereich. Dort finden Sie Links zu den verschiedenen Versionen. Wählen Sie Current stable version, laden Sie die Datei unison.win32-gtkui.exe herunter und verschieben Sie das Programm an einen Ort Ihrer Wahl oder legen Sie eine Verknüpfung auf dem Desktop ab.
Für die ersten Synchronisationstestläufe legen Sie am besten zwei Testverzeichnisse an und kopieren ein paar Dateien dorthin -- wichtig ist, dass dort gleiche aber auch ein paar unterschiedliche Dateien liegen, damit Sie sehen, wie Unison arbeitet. Auf dem Testsystem haben wir zwei Verzeichnisse mp3_1 und mp3_2 angelegt und ein paar Musikdateien dorthin kopiert (Abbildung 1).
Starten Sie danach das Synchronisations-Tool über das K-Menü oder KDEs Schnellstarter ([Alt-F2] und Eingabe von unison). Das Startfenster begrüßt Sie in englischer Sprache und weist noch einmal darauf hin, dass Sie entweder zwei lokale Verzeichnisse oder einen lokalen und einen auf einem anderen Rechner liegenden Ordner vergleichen können (Abbildung 2).
Tippen Sie für den Testlauf den Pfad zum ersten Verzeichnis in das Feld neben Dir ein oder klicken Sie auf die Schaltfläche Browse, um in einem Dateiauswahl-Dialog mit der Maus an die richtige Stelle zu navigieren. Bestätigen Sie die Auswahl per Klick auf den Button Continue. Fügen Sie im nächsten Dialog auf gleiche Weise das zweite lokale Verzeichnis hinzu.
Unter dem Feld befinden sich mehrere Checkboxen -- für den lokalen Testlauf aktivieren Sie das Kästchen vor Local (Abbildung 3) und klicken wiederum auf Continue.
Den folgenden Hinweis, dass Unison keine Archivdateien findet, können Sie ignorieren und auf OK klicken. Unison beginnt jetzt damit, die Daten zu vergleichen -- das kann eine Weile dauern, wenn es sich um eine große Datenmenge handelt. Anschließend präsentiert Unison das Ergebnis übersichtlich in einer Tabelle (Abbildung 4): Die ganz linke Spalte zeigt das erste lokale Verzeichnis mp3_1, im Bereich Action finden Sie grüne Pfeile, die anzeigen, in welche Richtung Unison jeweils kopieren möchte, daneben das zweite Verzeichnis, den Status und den jeweiligen Dateinamen. Außerdem zeigt das Synchronisations-Tool an, ob es sich bei den Inhalten um Dateien (file) oder Verzeichnisse (dir) handelt.
Unten im Fenster finden Sie genaue Informationen zu den jeweiligen Dateien. Die Angabe
01_Welcome_To_The_Cabaret.mp3 mp3_1 : new file modified at 14:03 on 29 Dec, 2004 size 4706901 rw-r--r-- mp3_2 : absent
verrät beispielsweise, wann die Datei zuletzt geändert (modified) wurde, die genaue Größe, die Zugriffsrechte und dass sie im zweiten Verzeichnis fehlt (absent).
Sind Sie mit allen Vorschlägen zufrieden, klicken Sie auf die Schaltfläche Go. Unison beginnt mit der Arbeit und setzt nun in die Status-Spalte grüne Häckchen, wenn eine Aufgabe erfolgreich erledigt ist. Nach getanem Werk zeigt die untere Statuszeile: Synchronization complete.
Über Unisons Ignore-Menü können Sie gezielt Dateien vom Vergleich ausschließen. Klicken Sie zunächst mit der linken Maustaste auf die entsprechende Datei. Über das Menü legen Sie anschließend fest, dass Unison den ganzen Pfad (Permanently ignore this path), Dateien mit genau dieser Dateiendung (Permanently ignore files with this extension) oder dem Dateinamen (Permanently ignore files with this name) in diesem und natürlich auch eventuellen Unterverzeichnissen von der Bearbeitung ausschließen soll.
Diese Einstellungen können über das Menü leider nicht wieder rückgängig gemacht werden -- eine Option, die ignorierte Dinge wieder einbindet, fehlt. Mit einem Text-Editor ist dieses Problem aber schnell gelöst, denn Unison "merkt" sich Einstellungen zu den Verzeichnissen und den Synchronisationen in so genannten Profiles. Das sind reine Textdateien, die neben den Angaben zu den beiden Verzeichnissen auch die Einstellungen, was beim Synchronisieren zu ignorieren ist, enthalten.
Die Profildateien liegen in Ihrem Home-Verzeichnis im versteckten Ordner .unison. Standardmäßig wählt Unison beim ersten Einsatz den Profilnamen default.prf. Wenn Sie also etwas ignoriert haben und das rückgängig machen möchten, starten Sie beispielsweise den Konqueror, wählen im Menü Ansicht / Versteckte Dateien anzeigen, navigieren ins Verzeichnis .unison und klicken mit der rechten Maustaste auf die Datei default.prf. Aus dem Kontextmenü wählen Sie nun Öffnen mit und dann einen Editor Ihrer Wahl, z. B. Kate oder KWrite. In den Zeilen, die mit ignore beginnen, finden Sie die Einträge für den Pfad, die Dateiendung und den Dateinamen (Abbildung 5). Wenn Sie die entsprechenden Zeilen löschen und das Programm neu starten, ignoriert Unison diese Dinge nicht mehr.
Eine Übersicht über alle Profile und eine Möglichkeit, neue anzulegen, finden Sie im Menü Synchronization / Select a new profile from the profile dialog (deutsch: "Neues Profil im Profildialog wählen"; Abbildung 6). Um ein neues Profil anzulegen, klicken Sie zunächst auf die Schaltfläche Create new profile und wählen dann einen passenden Namen aus. Wer beispielsweise häufig Textdateien abgleicht, kann hier Dokumente eintragen, für das Synchronisieren von digitalen Fotos könnte hier Bilder stehen usw.
Anschließend verraten Sie dem neuen Profil noch, welche Verzeichnisse zu synchronisieren sind. Doppelklicken Sie den neuen Eintrag und wählen Sie wieder über die Schaltflächen Browse die zwei Ordner aus, die das Programm abgleichen soll. Beim nächsten Programmstart zeigt Unison nun direkt den Profiles-Dialog und bietet alle angelegten Profile zur Auswahl an.
Alternativ können Sie das Programm auch direkt mit den Namen des gewünschten Profils aufrufen. Benutzen Sie dazu beispielsweise den KDE-Schnellstarter [Alt-F2] und geben Sie ins Fenster unison Dokumente ein. Das Programm sucht nun im versteckten Verzeichnis .unison nach einer Datei Dokumente.prf und startet direkt mit der gewünschten Ansicht.
Auch unter Windows präsentiert Unison den schon bekannten Dialog zur Verzeichnisabfrage. Ein Klick auf Browse öffnet einen Dateiauswahldialog. Setzen Sie das erste Verzeichnis und nach dem Klick auf Continue auch das zweite. Die Funktionen unterscheiden sich nicht von denen der Linux-Version, und nach einem erfolgreichen Abgleich sollten wieder die grünen Häckchen erscheinen (Abbildung 7).
Profile und temporäre Dateien legt Unison -- abhängig von der Windows-Version -- im versteckten Verzeichnis .unison des Benutzer-Accounts oder unter C:\ ab. Im Explorer sehen Sie versteckte Ordner, indem Sie beispielsweise im Menü auf Extras / Ordneroptionen gehen. Auf dem Reiter Ansicht aktivieren Sie die Checkbox Alle Dateien und Ordner anzeigen. Die Profile-Dateien können Sie genau wie unter Linux mit einem Text-Editor bearbeiten und damit zusätzliche Eigenschaften konfigurieren.
Wenn Sie Unison zum Datenabgleich zwischen Linux- und Windows-Rechnern einsetzen, müssen Sie einige Dinge beachten: Zunächst ist wichtig, dass beide Unison-Installationen dieselbe Versionsnummer tragen.
Ein weiteres Problem beim Abgleich zwischen Windows- und Linux-Systemen stellt die Groß- und Kleinschreibung von Dateinamen da. Während Linux "case sensitive" ist, also einen Unterschied zwischen datei und DATEI erkennt, kann Windows zwar auch mit Groß- und Kleinbuchstaben umgehen, ignoriert die Schreibweise aber beim Dateizugriff. Das heißt: Unter Linux kann ein Verzeichnis zwei Dateien datei und DATEI enthalten, unter Windows geht das nicht.
Eine Möglichkeit ist natürlich, solche "Dateidoppler" vom Datenabgleich auszunehmen (siehe auch Abschnitt "Troubleshooting"); alternativ benennen Sie die Dateien vorher einfach um und achten auf die eindeutige Vergabe von Namen.
Es gibt zwei Möglichkeiten, Daten zwischen zwei entfernten Rechnern zu synchronisieren:
Starten Sie zunächst auf der Linux-Seite Unison im Server-Modus. Dazu öffnen Sie eine Konsole ([Alt-F2] und Eingabe von konsole) und geben
$ unison -socket 6666 server started
ein. Als vierstellige Socket-Nummer können Sie auch eine andere Zahlenkombination wählen -- wichtig ist nur, dass der Port noch nicht benutzt wird. Falls doch, beendet sich Unison mit einer Fehlermeldung.
Anschließend starten Sie auf Windows-Seite Unison und erstellen ein neues Profil. Geben Sie zunächst das Verzeichnis auf dem Windows-Rechner an und klicken Sie wieder auf Continue. Im nächsten Dialog aktivieren Sie die Checkbox Socket und tragen in das Feld Host die IP-Adresse des Linux-Rechners ein. In das Feld Port gehört die vorher gewählte Socket-Nummer. Als Directory geben Sie das Verzeichnis auf dem Linux-Rechner (relativ zum eigenen Home-Verzeichnis) an, also beispielsweise Dokumente (Abbildung 8). Klicken Sie auf Continue; dann geht es weiter wie gehabt.
Das Ganze funktioniert natürlich auch umgekehrt: Wenn Sie unter Windows ein Kommandozeilenfenster (Zubehör / Eingabeaufforderung) öffnen, in das Verzeichnis navigieren, wo das ausführbare Unison-Binary liegt, und dort
unison -socket 6666
eingeben, können Sie von Linux aus mit dem Client auf diesen Server zugreifen.
Um auf Nummer sicher zu gehen, bitten Sie Unison, ein Backup anzulegen. Dieses definieren Sie wiederum in der entsprechenden Profile-Datei im Verzeichnis .unison in Ihrem Home-Verzeichnis. Öffnen Sie die Datei mit einem Text-Editor und fügen Sie eine Leerzeile ein. An den Zeilenanfang kommt das Schlüsselwort
backup =
Danach definieren Sie genauer, was Unison automatisch sichern soll. Das Programm erwartet hier entweder einen Dateinamen, eine Pfadangabe oder einen regulären Ausdruck. Was kompliziert klingt, wird anhand einiger Beispiele etwas übersichtlicher. Sollen beispielsweise alle Dateien mit der Endung .doc gesichert werden, schreiben Sie:
backup = Name *.doc
Ebenso erwischen Sie ein ganzes Verzeichnis, wenn Sie
backup = Name verzeichnis
eintragen. Die Sicherungskopien landen dann später im Unterverzeichnnis .unison/backup Ihres Home-Verzeichnisses -- und zwar alle zusammen. Ältere Backups tragen dabei die Dateiendung .1.unibck, .2.unibck usw. Wer die Sicherungskopien an anderer Stelle aufbewahren möchte, muss eine entsprechende Umgebungsvariable für die Bash setzen. Starten Sie dazu eine Konsole, beispielsweise über [Alt-F2] und Eingabe von konsole. Temporär passen Sie den Backup-Ort durch Eingabe von
export UNISONBACKUPDIR=~/neues/verzeichnis
an, wobei die Tilde für Ihr eigenes Home-Verzeichnis steht und Sie neues/verzeichnis durch ein Verzeichnis Ihrer Wahl ersetzen. Um das Ganze dauerhaft zu verändern, bearbeiten Sie die Bash-Konfigurationsdatei ~/.bashrc in einem Text-Editor und fügen die export-Zeile dort ein. Damit die Änderungen greifen, müssen Sie sich neu anmelden.
Standardmäßig speichert Unison bis zu zwei Sicherungskopien für jede Datei. Öffnen Sie die Profile-Datei und tragen Sie dort beispielsweise die Zeile
maxbackups = 10
ein, wenn Sie zehn Kopien behalten wollen.
Liegen zwei Dateien mit gleichem Namen aber unterschiedlichem Inhalt in den für die Synchronisation ausgewählten Verzeichnissen, ist Unison ratlos und zeigt in der Action-Spalte der Übersichtstabelle ein rotes Fragezeichen an. Praktisch: Handelt es sich um reine Textdateien, verschafft Ihnen ein Klick auf Diff einen Überblick über die Unterschiede. Unison startet dann das gleichnamige Programm und präsentiert in einem Fenster eine Ausgabe, die genauso aussieht wie die des Kommandozeilen-Tools diff (Abbildung 9) -- richtig hilfreich ist das allerdings nur, wenn Sie die Syntax von diff verstehen; Nachhilfe gibt der EasyLinux-Artikel [5]. Ein Klick auf Dismiss schließt das Fenster wieder.
Wenn Ihnen die Ausgabe des Kommandos nicht gefällt, ändern Sie die Standardeinstellung: Soll Unison statt diff beispielsweise das grafische Programm KDiff3 aufrufen, bearbeiten Sie die entsprechende Profile-Datei im Text-Editor. Fügen Sie die Zeile
diff = kdiff3
hinzu, speichern Sie die Änderungen und starten Sie das Programm neu. Eventuell müssen Sie darüber hinaus KDiff3 nachinstallieren. Wie das geht, verrät auch der diff-Artikel [5]. Klicken Sie nun auf Diff, startet das Programm KDiff3 und sorgt mit seinem Syntax-Highlighting für eine besser erkennbare Darstellung der Unterschiede.
Ebenso müssen Sie das Programm definieren, das beim Klick auf den Button Merge (englisch "zusammenführen") zum Einsatz kommt. In der Profile-Datei heißt der Parameter merge, wenn eine Backup-Datei existiert, bzw. merge2, wenn dies nicht der Fall ist. Wenn Sie KDiff3 einsetzen, können Sie sich diese Konfiguration allerdings sparen, denn dieses Tool kann ebenfalls Dateien zusammenführen.
Für das Lösen von Versionskonflikten gibt es mehrere Ansätze. Am einfachsten ist sicherlich, die entsprechende Datei über einen Klick auf den Button Skip vom Synchronisieren auszuschließen. Nach einem Unskip-Button sucht man leider vergebens -- haben Sie aus Versehen eine falsche Datei markiert, hilft nur der Weg über das Menü Actions / Revert to Unison's recommendations (deutsch etwa: "Unison auf Standardeinstellungen zurücksetzen"). Dabei gehen allerdings alle selbst geänderten Einstellungen verloren.
Über das Menü Actions können Sie weiteres Fein-Tuning vornehmen. So ändern Sie auf Wunsch die Richtung, in welche die Datei bewegt wird (Propagate this path left to right oder ... right to left), lösen alle Konflikte zugunsten des ersten (Resolve all conflicts in favor of first root) oder zweiten Verzeichnisses (... second root) oder entscheiden sich dafür, grundsätzlich neuere (Resolve all conflicts in favor of most recently modified) oder ältere Dateien (... least recently modified) zu bevorzugen. Wenn das nicht funktioniert, können Sie diese Einstellungen auch erzwingen, indem Sie aus dem Menü die entsprechende Option mit dem vorangestellten Force wählen -- hier ist jedoch Vorsicht angesagt: Diese Optionen sollten Sie nur wählen, wenn Sie sich absolut sicher sind.
Unison ist ein komfortables Programm, das zuverlässig beim Abgleich von Daten hilft. Die Bedienung über das grafische Frontend ist leicht zu erlernen, und wer im englischen Benutzerhandbuch schmökern mag, findet viele gut dokumentierte Beispiele, mit denen man Unison auf der Kommandozeile noch effizienter einsetzt. Einen textbasierten Synchronisationshelfer stellen wir übrigens auch im Guru-Training ab Seite 78 vor. (hge)
| Infos |
|
[1] Unison-Homepage: http://www.cis.upenn.edu/~bcpierce/unison/index.html
[2] Englisches Benutzerhandbuch für Unison: http://www.cis.upenn.edu/~bcpierce/unison/download/stable/latest/unison-manual.html [3] RPM-Suchmaschine rpmseek: http://rpmseek.com/ [4] RPM-Suchmaschine RPM pbone.net: http://rpm.pbone.net/ [5] Artikel zu diff: Heike Jurzik, "Der feine Unterschied", EasyLinux 10/2004, S. 83 ff., http://www.easylinux.de/Artikel/ausgabe/2004/10/083-guru-diff/ |
Dieser Online-Artikel kann Links enthalten, die auf nicht mehr vorhandene Seiten verweisen. Wir ändern solche "broken links" nur in wenigen Ausnahmefällen. Der Online-Artikel soll möglichst unverändert der gedruckten Fassung entsprechen.
Druckerfreundliche Version |
Feedback zu dieser Seite |
Datenschutz |
© 2012 Linux New Media AG |
Last modified: 2007-04-05 11:10
[Linux-Magazin]
[LinuxUser]
[Linux-Community]
[Admin-Magazin]
[Ubuntu User]
[Smart Developer]
[Linux Events]
[Linux Magazine]
[Ubuntu User]
[Admin Magazine]
[Smart Developer]
[Linux Magazine Poland]
[Linux Community Poland]
[Linux Magazine Brasil]
[Linux Magazine Spain]
[Linux Technical Review]