Datensynchronisation mehrer Rechner

PUBLISHED ON 3 SEPTEMBER 2007 / 2 MIN READ

[Update 2009] Mittlerweile gibt es die nette Applikation Dropbox die das ganze einfacher, effizienter und schneller macht. Nur mit dem Nachteil das die Daten in der „Wolke“ liegen. Trotzdem empfehle ich diesen Dienst zu nutzen. Im Zweifel mit einem Verschlüsselten Truecrypt/DMG-Image.

Für die Synchronisation von mehr als 2 Rechnern braucht man eine Zentrale Instanz, die alle Daten verwaltet und änderungen abgleicht.

Als erstes muss auf allen Rechnern auch auf dem Server das Programm „Unison“ installiert werden.
Dieses Programm gibt es eigentlich für alle gängingen Betriebsysteme.

Unter Ubuntu installiert man entwerder über die Synaptic Paketverwaltung, oder über apt-get die Pakete:

unison
unison-gtk

Als erstes Starten wir Unison auf dem Server, indem wir ein Terminal aufmachen und folgendes eingeben:

unison -socket 6666
wobei der Socket 6666 (Port) beliebig ist. Um das bei einem neustart des Servers nicht immer neu einzugeben kann man noch unter System –> Einstellungen –> Sitzungen einen neuen Starter mit diesem Befehl eintragen.

zusätzlich erstellen wir im Homeverzeichnis des einen Ordner  z.b.
**mkdir daten
**
Als nächstes Starten wir auf einem anderen Rechner Unison. Wenn man unison-gtk richtig installiert hat findet man unter es unter:
Anwendungen –> Internet — > Unison

Sollte noch kein default Eintrag vorhanden sein, geht man auf „Create New Profile“ und erstellt ein „default“ Profil.

Anschließend auf OK und es folgt dieses Fenster:

Unison 1

in dem wählt man den zu synchronisierenden Ordner aus und wieder auf OK.

Unison 2

hier gibt man als Directory den oben auf dem Server erstellten Ordner relativ zum Homeverzeichniss ein.
Socket lässt man ausgewählt und unter Host noch die IP-Adresse des Servers eingeben (falls man die nicht weiß, im Terminal  „ifconfig“ eingeben) und als Port den oben gewählten 6666 eingeben und  OK.

Das wars erstmal schon nun nur noch die Seite auswählen, also von wo nach wo gesynct werden soll und ein Klick auf „Go“ startet den Vorgang.
Je nach Datenmenge und Übertragungsgeschwindigkeit kan dies nun einige Zeit dauern.

Man kann den Syncronisationsvorgang nun immer über das default Profil starten oder einfach im Terminal „unison“ eingeben.

Allerdings ist dies mir immernoch zu aufwendig, ich mochte das alles Automatisch im Hintergrund passiert.
Daher lege ich noch einen Cronjob an:

Terminal starten und crontab -e eingeben.
crontab editieren
es erscheint folgendes Fenster:
crontab editieren nano

Wichtig ist die markierte Zeile:
19    *    * * *   unison -silent
Diese Besagt das immer zur Minute 19 einer Stunde (14:19,15:19,16:19) der Befehl „unison silent“ aufgeführt wird.
Man kann natürlich auch 00 vorne eingeben damit es zu jeder vollen Stunde ausgeführt wird.

mit Strg + O kann man alles Speichern und mit Strg + X den Editor verlassen.

Alles führt man nun genauso auf allen anderen Rechnern durch, somit haben alle Rechner immer die selben Daten.