Hierfür gibt es eine recht konfortable Lösung: das Kommandozeilenprogramm unison. Ich habe hier ein Tutorial geschrieben, das es erleichtern soll sich selbst einen solchen Synchronisierungsdienst einzurichten. Einige werden möglicherweise vor dem Terminal zurückschrecken, aber ich denke, dass ich dieses Tutorial recht verständlich und einfach geschrieben habe, um diesen Dienst recht leicht selbst zu realisieren.
Folgendes Szenario: Wir haben ein MacBook und einen iMac. Diese zwei Computer sollen immer über den gleichen Dateienbestand verfügen. Also wenn man zu Hause am iMac an einem Dokument arbeitet, wird automatisch die neuste Version auf dem MacBook übertragen und ich kann später einfach an meinem MacBook mobil an diesem Dokument weiterarbeiten. Wenn ich wieder nachhause komme wird das jetzt aktuellere Dokument auf den iMac übertragen und ich kann dort weiterarbeiten.
Es ist nichteinmal soviel Arbeit es so einzurichten, dass dies automatisch geschiet, denn unser UNIX Betriebssystem Mac OS X liefert schon (fast) alles mit.
Vorteil des ganzen Aufwands: Wir haben jetzt nicht nur synchrone Computer, sondern auch gleichzeitig ein Backup der Dateien! Das finde ich geschickter als Timemachine …
1. unison Installation
Wie schon erwähnt, liefert Mac OS X fast alles mit – bis auf unison selbst. Dies kann aber einfach nachinstalliert werden:
http://www.cis.upenn.edu/~bcpierce/unison/download.htmlMac OS X Binary heraussuchen und herunterladen oder gleich hierhttp://alan.petitepomme.net/projets/unison/index.htmldie „Text version“ laden.- das zip-Paket entpacken.
- zum entpackten Ordner im Terminal navigieren:
- cd irgendwo/auf/der/festplatte
- dann die Datei „unison“ kopieren
- sudo cp unison /usr/bin
Jetzt sollte sich die ausführbare Datei in /usr/bin befinden. Das kann man nachprüfen indem man whereis unison in das Terminal eintippt. Wenn dann der Output /usr/bin/unison erscheint – herzlichen Glückwunsch!
2. Einrichtung unison-socket via Agent.
unison muss auf beiden System installiert werden, also auf dem MacBook sowie auf dem iMac. Aber wie kommunizieren beide Systeme nun miteinander? unison bietet dafür mehrere Möglichkeiten: zum einen über ssh, zum anderen über ein socket. Ich habe mich für eine socket-Verbindung entschieden, da sie leichter zum einrichten ist und der Nachteil der weniger sicherern Übertragung spielt kaum eine Rolle, da wir uns im lokalen-Netzwerk befinden. Eine socket-Verbindung setzt im Gegensatz zu ssh keine Verschlüsselung ein.
Mac OS X bietet eine einfache Möglichkeit dies zu realisieren, indem man den unison-socket automatisch als Agent starten läßt. Ich lasse den unison-socket auf meinem MacBook starten (somit könnte sich der iMac mit dem MacBook verbinden und eine Synchronisierung durchführen).
Ich habe eine korrekte Datei vorbereitet, die hier runtergeladen werden kann:
Nach dem Herunterladen kann man die Datei nach ~/Library/LaunchAgents verschieben. Falls der Ordner noch nicht existiert, einfach anlegen. Beim nächsten Login des Benutzers wird ein unison-socket auf Port 7777 gestartet. Man kann die Datei natürlich modifizieren, z.B. den Port ändern. Diese Agent-Datei führt, als der eingeloggte Benutzer, den Terminal-Befehl unison -socket 7777 im Hintergrund aus. Ob der Agent erfolgreich gestartet ist kann man in der Aktivitätsanzeige (zu finden unter Dienstprogramme) herausfinden, dabei ist darauf zu achten, dass alle Prozesse angezeigt werden. Es sollte ein Prozess namens unison aufgeführt sein.
3. unison konfigurieren
Da jetzt das MacBook einen unison-socket hat, der auf eine eingehende Verbindung wartet, können wir eine erste Synchronisierung durchführen. Dazu muss auf dem iMac eine entsprechende Konfigurationsdatei vorliegen, in der beschrieben steht, was unison überhaupt machen soll.
Diese Konfigurationsdateien werden in ~/.unison abgelegt (auf dem iMac). Dazu öffnet man ein Terminal (zu finden unter den Dienstprogrammen) und tippt folgendes ein:
- mkdir .unison
- cd .unison
- nano default.prf
Nun haben wir den Ordner .unison im Homeverzeichnis erstellt und sind mit cd in diesen gewechselt. Jetzt erstellt der Kommandozeileneditor nano die Datei default.prf, die o.g. Konfigurationsdatei. Hier können nun Optionen für unison eingetragen werden.
# localhost (imac)
root = /Users/svenhodapp
# remote (macbook) via socket
root = socket://ip-adresse-macbook:7777/Users/svenhodapp
# Unterordner die synchron gehalten werden.
path = Documents
path = Sites
path = Pictures
# Backup Verzeichnisse (was entfernt wird, landet hier)
backupdir = /Users/svenhodapp/.backup
maxbackups = 5
backups = true
# Ignorierenliste
ignore = Name {.DS_Store}
root gibt das zu synchronisierende Verzeichnis an. In diesem Fall ist das mein Homeverzeichnis. Das zweite root ist das Verzeinis auf dem Rechner im Netzwerk, in diesem Fall ist es das MacBook. Mit der path-Variable wird angegeben, welche Unterordner synchron gehalten werden sollen (gilt auf beiden Systemen). Also die Ordner, Dokumente, Webseiten und Bilder aus meinem Homeverzeichnis werden auf dem iMac bzw. MacBook von unison synchronisiert.
Mit strg + o kann man die Datei mit nano speichern und mit strg + x wird nano beendet. Jetzt sollte die Konfigurationsdatei default.prf angelegt sein.
Die Einstellungen werden von unison benutzt, wenn man in das Terminal unison default eintippt. Es sollte dann ein Synchronisierungsprozess mit den Optionen der Konfigurationsdatei starten. Aber zuvor sollte man sicherheitshalber ein Backup anlegen, am besten auf einer externen Festplatte – man weiß nie!
Man könnte jetzt immer durch eintippen von unison default, ein Synchronisieren der beiden Systeme einleiten. Aber jetzt wollen wir das Ganze noch automatisieren, so dass regelmäßig und automatisch eine Synchornisierung der beiden Computer statt findet.
4. Cron-Job einrichten
Mac OS X bietet uns für diesen Zweck eine komfortable Lösung: Cron-Jobs. Cron-Jobs können zu beliebigen Zeiten bzw. in beliebigen Zeitabständen Aufgaben erfüllen – Aufgaben wie ein Terminalbefehl ausführen.
Man kann die Cron-Job-Konfigurationsdatei eines Benutzers mit dem Befehl crontab -e editieren. Man erhält eine leere Datei, wenn man noch keine Cron-Jobs für den momentan angemeldeten Benutzer angelegt hat. Die Datei wird übringens mit vim geöffnet. Um etwas hineinschreiben zu können muss a gedrückt werden. Jetzt kann der Text eingefügt werden. Wenn man damit fertig ist, kann die Datei gespeichert werden. Dazu drückt man esc, um den editier-Modus zu verlassen und dann :wq um die Datei zu speichern und vim zu verlassen. Ab jetzt wird der Cron-Job, so wie definiert, ausgeführt.
# Shell variable for cron
SHELL=/bin/bash
# PATH variable for cron
PATH=/usr/bin
# cron table
# = = = = = = = = = = = = = =
# M S T M W Command
5 * * * * unison -auto -batch default > /dev/null 2>&1
# = = = = = = = = = = = = = =
Mit 5 * * * * unison -auto -batch default > /dev/null 2>&1 würde unison alle Stunde und 5 Minuten ausgeführt werden (also 13:05 14:05 …). Mit der Einstellung > /dev/null 2>&1 werden Logdateien unterdrückt, denn cron protokolliert den ganzen Output und schickt ihn an /var/mail/benutzername.
Mit der Einstellung */15 * * * * unison -auto -batch default > /dev/null 2>&1 würde unison alle 15 Minuten ausgelöst werden.
Jetzt wäre es geschafft, die Datenbestände würden mit diesen Einstellungen jede volle Stunde und 5 Minuten abgeglichen. Allerdings wäre zu beachten, dass man nicht die gleiche Datei gleichzeitig auf beiden Systemen verändert, dies würde zu Konfikten führen, da unison nicht wüsste, welche Datei synchronisiert werden soll. Jeder kann natürlich frei nach seinen/ihren Wünschen unison konfigurieren! Dazu können die Webseiten in den Quellenangaben sehr hilfreich sein.
Zudem werde ich dieses Tutorlial immer wieder verbessern und ergänzen …
Quellen:
- https://www.adminlife.net/howto/unison-desktop-und-laptop-synchronisieren/
- http://www.cis.upenn.edu/~bcpierce/unison/
- http://wiki.ubuntuusers.de/Unison
- http://wiki.ubuntuusers.de/Baustelle/Unison_automatisieren
- http://wiki.ubuntuusers.de/Cron
- http://osx.realmacmark.de/osx_launchd.php
Der Artikel „Zwei oder mehrere Mac’s synchron halten.“ wurde von Sven verfasst und am 07.01.2008 um 18:55 Uhr unter der Kategorie Allgemein veröffentlicht. Dieser RSS 2.0 Feed informiert über die neusten Kommentare. Über einen Kommentar, oder Trackback würde ich mich freuen.
Hallo Wolfgang,
vielen Dank für deinen Kommentar. Natürlich kann ich versuchen dir zu helfen! Aber es gibt auch noch andere Möglichkeiten die besonders für Benutzer geeignet sind die mit der Computerei nicht so bewandert sind. Es kommt auf deine Anforderungen an.
Als dieser Artikel entstand gab es noch nicht so wirklich anwenderfreundliche Anwendungen bzw. zu dieser Zeit war Dropbox noch nicht mit der _LAN sync Funktionalität_ ausgestattet — und es sollte auch noch einige Zeit vergehen bis diese kam.
Daher ist es mein Geheimtipp an dich: Dropbox mit LAN sync. Es gibt auch noch einige andere Tools (die mir spontan nicht einfallen) mit denen ähnliches möglich ist.
Kurz zu Dropbox: Das ist ein Internetdienst der es dir ermöglicht beliebige Daten zwischen deinen Computer zu synchronisieren. Eine 2 GB Dropbox ist umsonst. Über das lokale Netz darfst du *glaube* ich auch mehr kopieren — bin mir aber nicht sicher. Jedenfalls schaue es dir mal an!