Sicherung per Unison

Im privaten Bereich laufe ich noch immer in Gefahr, dass ich die Geschichte mit der Sicherung meiner Daten zu wenig ernst nehme. Schon einige male habe ich Daten verloren, teilweise konnte ich sie wieder herstellen, teilweise nur einen Teil davon und es ist auch schon vorgekommen, dass das Sicherungsmedium nicht lesbar war oder schlicht keine Sicherung bestanden hat. Wenn ich meine Sicherungen sauber und zuverlässige fahren will, brauche ich ein einfaches Tool, das selbständig funktioniert und sichere Backups erstellt. Dazu gibt es ja eine ganze Reihe von Programmen für Linux.

unisonEine Möglichkeit ist, die Daten mit einem andern Gerät zu synchronisieren. Dazu gibt es nebst rsync die Anwendung Unison, die rsync (das Netzwerk-Protokoll, nicht die zuvor genannte Anwendung) nutzt. Ganz gut gefällt mir daran, dass damit mehrere Rechner synchron gehalten werden können und dass es auf einfache, aber recht sichere Mechanismen wie SSH zurückgreift. Ich will Daten von meinem Laptop regelmässig in ein Verzeichnis auf meinem Server schreiben, beide Geräte befinden sich im selben Netzwerk. Dazu habe ich zunächst auf beiden Geräten den quelloffenen SSH-Server installiert:

sudo apt-get install openssh-server

Der SSH-Server ist sogleich nach der Installation einsatzbereit. Als vorteilhaft bei einer SSH-Verbindung erachte ich, dass keine Laufwerke gemountet werden müssen. Danach installierte ich auf dem Server die Unison-Anwendung, allerdings ohne grafische Unterstützung:

sudo apt-get install unison

Auch hier muss weiter nichts mehr eingestellt werden, den Rest der Arbeit erledigt dann die Installation auf dem Client. Auf jenem wollte ich dann aber die Unison-Version für einen X-Server und installierte deshalb:

sudo apt-get install unison-gtk

Als abschliessende Vorbereitung braucht es jetzt nur noch ein Verzeichnis auf dem Server, worauf der User, der bei der Sicherung angegeben wird, Lese- und Schreibrechte besitzt. Ich habe dazu bei den variablen Daten ein Verzeichnis erstellt:

sudo mkdir /var/daten
sudo chmod 0764 /var/daten

Der Benutzer muss natürlich in der Gruppe sein, um auf die Daten zugreifen zu können. Möchte man diese Einstellungen nicht vornehmen, sollte man die Daten einfach in das Home-Verzeichnis des entsprechenden Users schreiben.

Und dann kann es schon losgehen. Beim Aufruf von Unison in der grafischen Version (auf dem Client, ab dem die Daten gesichert werden sollten) über das Gnome Menü unter Anwendungen / Zubehör / Unison erscheint zunächst ein Fenster, bei dem der lokale Pfad der zu sichernden Daten angeben wird. Will man mehrere Verzeichnisse aus verschiedenen Orten sichern, erstellt man einfach mehrere Profile.

Lokales Verzeichnis wählen

Anschliessend folgt der Dialog für das Zielgerät. Dort habe ich SSH als Protokoll gewählt und den Rechner, das Verzeichnis sowie den User angegeben. Die Portnummer habe ich nicht verstellt.

Ziel angeben

Damit erstellt Unison zunächst ein Art Inventar der zu synchronisierenden Daten, das kann etwas dauern. Danach werden die Dateien geschrieben. Beim zweiten Aufruf prüft Unison auf beiden Seiten die Versionen und Vorkommnisse der Daten und synchronisiert in beiden Richtungen (falls auf dem Server die Daten verändert würden) den Datenbestand. Dabei wird nur jener Teil der Datenblöcke kopiert, die sich verändert haben. Und das ist zugleich der Vorteil der Geschichte, dass Unison nicht die gesamte Datei bei einer Veränderung kopiert, sondern bloss den Teil daraus, der sich tatsächlich verändert hat; Unison arbeitet also auf Blockebene und nicht auf dem Prinzip der logischen Dateien.

Synchronisierung

Damit sind die Daten synchron. Ruft man Unison ein weiteres mal auf, begüsst die Anwendung den Benutzer mit der Auswahl der bestehenden Profile. Dort kann man dann ein Neues erstellen, worauf sich der zuvor beschriebene Vorgang wiederholt oder ein bestehende aufrufen.

Profil Auswahl

Will man nun eine Sicherung direkt aufrufen, so reicht es, wenn im Terminal unison gefolgt vom Profilnamen (steht im Homeverzeichnis unter ~/.unison/ProfilName.prf) eingetippt wird. Dazu lässt sich auch ein Desktop- oder Panel-Symbol einrichten. Bei einer SSH-Verbindung muss dann noch das Kennwort eingegeben werden. Will man auch dies automatisieren, zum Beispiel per Cron-Job, dann braucht es dazu ein dsa-Schlüssel, damit die Kennwort-Eingabe wegfällt. Auf meinem “Arbeitsrechner” will ich aber keine solchen Cron-Jobs, sondern möchte einfach und schnell die Sicherung von Hand aufrufen können. Und mit Unison klappt das ganz gut.

Ähnliche Artikel

Schlagwörter: , , , , ,

8 Kommentare to “Sicherung per Unison”

  1. Gordon SchultzNo Gravatar schrieb:

    Hallo,

    interessanter Bericht. Datensicherung ist ja ein Thema, mit dem man sich nicht gerne auseinander setzt.
    Du schreibst, dass die Daten bidirektional synchronisiert werden, wenn auf einer Seite Änderungen vorgenommen werden. Wie verhält es sich, wenn auf beiden Seiten geändert wurde?
    Gibt es eine Benutzerabfrage, bekommt eine Datei einen Namenszusatz oder gewinnt einfach die zuletzt bearbeitet Datei?
    Das wäre eine Interessante Sache, gerade, wenn man sich von außen auf seinen Server einloggt, um mit den Daten zu arbeiten.

  2. Roman HanhartNo Gravatar schrieb:

    Gordon, Unison, beziehungsweise das Sync-Protokoll synchen ja nicht auf Dateiebene, sondern auf der tiefer unten liegenden Blockebene. Jene Blöcke werden so zusammengestellt, dass immer die neuesten davon aus beiden Seiten benutzt werden. Ist diese Zusammenstellung nicht per Automatismus möglich, frägt Unison nach. Sollte man einmal testen. was dann passiert ;-)

  3. zefanjaNo Gravatar schrieb:

    Hallo Roman,

    will man einen alternativen SSH Port benutzen, kann man ihn folgendermaßen hinzufügen:

    ssh://benutzer@rechner:Port//pfad/fuer/sync

    (in der ~/.unison/profil.prf ändern).

    Gruß, Stephan

  4. Gordon SchultzNo Gravatar schrieb:

    Hallo Roman,
    das sollte man meiner meinung nach wirklich testen.
    Denn wenn einfach die aktuellste Änderung gewinnt, kann ein Klick auf ein Icon schnell (mit unter wichtige) Änderungen verschwinden lassen.
    Wenn allerdings nachgefragt wird, erschwert dies ein automatisches synchronisieren.

  5. BjörnNo Gravatar schrieb:

    Unison ist wirklich ein sehr schönes Programm, wenn man zwischen PCs seine Daten abgleichen will. Ich verwende es schon länger um meinen Laptop und meinen PC abzugleichen und bin sehr zufrieden damit.

    Was man vielleicht noch sagen kann: Wenn man die Profil-Datei von Hand bearbeitet hat man noch einige mehr Optionen. Mann kann z.B. mehrere Verzeichnisse angeben, Unterverzeichnisse oder bestimmte Dateinamen/-endungen wieder ausschließen usw. Unison ist wirklich sehr mächtig und gleichzeitig mit der GUI, diff Möglichkeiten usw. sehr Benutzerfreundlich.

  6. timNo Gravatar schrieb:

    Ich benutze Unison schon lange um Daten zwischen meinen beiden PCs und dem Laptop zu synchronisieren. Sollte sich eine Datei auf beiden Rechnern geändert haben wird diese nicht automatisch synchronisiert. in der Oberfläche erscheint dann ein ? bei der Datei, und der Benutzer kann auswählen welche Version verwenden soll. Man kann auch einen Diff erstellen und die Unterschiede sehen. Das kommt aber bei mir selten vor, wenn ich den Rechner wechsle wird einfach schnell synchronisiert…

  7. XFS unter Ubuntu nutzen » Von Roman Hanhart » ubuntublog.ch schrieb:

    [...] werden sollen, kommen auf der USB-Festplatte in den Ordner Archiv. Zusätzlich nutze ich noch Unison, um meine Daten mit dem lokalen Server zu synchronisieren. Ganz gute Programme sind sbackup oder [...]

  8. EasyLinux zu Back In Time » Von Roman Hanhart » ubuntublog.ch schrieb:

    [...] dieses Artikels erzeugen Ähnliche Artikel15. Mai 2009 — Sicherung per Unison (7)30. März 2009 — partimage für Ubuntu einsetzen (4)21. Mai 2009 — MySQL-Dump auf ein [...]

Hinterlasse einen Kommentar

blogoscoop Blogverzeichnis - Blog Verzeichnis bloggerei.de