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.
Hui jui jui! Ich bin erstaunt!
Finde es allerdings schade, dass es nicht einfach ein schönes Programm für solche Sachen gibt (jedenfalls ist mir keines bekannt,welches die exakt gleiche Funktion von deiner Methode erfüllt).
Danke, ich werds bei Gelegenheit mal ausprobieren
Greetz
Nimm dir einen Nachmittag dafür zeit und du hast einen zuverlässigen Dienst eingerichtet. Vorteil der “self-made” Methode: Du hast absolute Transparenz und weißt was das Programm macht.
Es würde mich freuen, wenn du ein kleines Feedback geben könntest, wenn du eine “Gelegenheit” gefunden hast.
Für Cronjobs gibts auch ein kleines graphisches Tool namens Cronnix und für die Launchd das Tool lingon
Schöne Sache eigentlich, leider zeigt mir mein Terminal immer “Can’t connetc to server” an. Dabei laäuft der Server (s. Aktivitätsanzeige) und die IP-Adresse sollte auch stimmen. Die Rückmeldung kommt übrigens sowohl für meine AirPort IP wie für die Ethernet IP. Würd mich über Hilfe freuen!
Hast du in edu.upenn.cis.UnisonSocket.plist die richtigen Parameter eingestellt (Ip, Port)?
Versuche mal den socket manuell zu starten: http://www.cis.upenn.edu/~bcpierce/unison/download/releases/stable/unison-manual.html#socketmeth
Hallo Sven, ich suche einer Lösung mit der ich mein macbook mit meinen imac synchronisiere (Bilder, Musik etc). Leider bekomme ich es nicht hin, deine Anleitung ist super, aber dennoch weiss ich nicht wie es geht. Vielleicht kannst du mir per E-Mail nochmal ausführlich und evtl. mit Bildern erklären was ich tun muss. Das wäre echt nett.
LG Regina
Hi Sven!
Danke für die Arbeit, die du dir gemacht hast…
Könnte man mit Unison auch wie folgt synchronisieren?
iMac externe HDD (USB)
MacBook externe HDD (USB)
Je nachdem, wo ich die externe anschliesse, soll der Datenbestand abgeglichen werden…
Wenn es sich hierbei um die gleiche Festplatte handelt, sollte es möglich sein.
Ich denke, du kannst einfach anstelle der IP-Adresse die Festplatte nennen. Diese unter /Volumes/NameDerFestplatte bei Mac OS X zu finden ist. Du kannst einfach mit einen kleinen Datenbestand herumexperimentieren.
Für weitere Fragen, stehe ich gerne zur Verfügung.
Hi Sven,
klasse Gschichte. Auch ich stehe mit nun zwei Macs vor der großen Datensicherungs,Datenabgleichs und Datenberetstellungsfragen
Danke für diesen wirklich guten Hinweis. Werd ich mir mal durchcoden.
Greetings,
Michael
Hi Sven,
also ich hab da noch ein kleines Problem. Hab mal alles so eingestellt wie du es beschrieben hast.
Nun funktioniert das ganze so:
- start des Prozesses über Terminal unison default
- es öffnet sich das unison GUI
- die Verbindung zum Remote wird gesucht
- die Datenbestände werden grafisch Dargestellt
So, an dieser Stelle passiert nun nichts mehr. Soll bedeutetn ich muss in der GUI selbst auf den GO Buttom klicken damit der Vorgang beginnt und die Daten kopiert werden.
Ich habe dann auch mal versucht im Terminal es mit dem Befehl “unison -auto -batch default” auszuführen, führt aber auch nicht zum gewünschten Ergebnis.
Kann es sein, dass ich wirklich nur die “Text Version” von Unison benötige und es zusammen mit der GUI Version zu Problemen kommt? Wenn ja, kannst du mir deine verwendete Version von Unison nennen, damit ich diese downloaden kann.
Vielen Dank für das interessante Projekt!
PS: Was sagst du eigentlich zu den negativen Stimmen über unison – siehe Wikipedia?
Hallo Michael,
danke für dein positives Feedback. Ich selbst setze nur die ‘text-verion’ ein, da man bei richtiger Konfiguration keine GUI verwenden muss, es kann gut sein, dass es Probleme mit der GUI+textversion gibt. Aber dazu kann ich leider keine Tipps äußern, da ich, wie gesagt, keine GUI einsetze.
Du musst darauf achten, dass auf allen Systemen die gleiche Version vorliegt, sonst kann es zu Problemen kommen.
Funktioniert der Synchronisationsvorgang überhaupt nicht oder nur nicht ohne Nachfragen seitens unison?
Zu den angesprochenen Problemen in Wikipedia: Da ich und du wahrscheinlich auch, auf beiden Seiten Macs einsetzen, läuft der Synchronisierungsprozess sauber ab. Bis jetzt hatte ich noch keine Probleme mit der Kodierung.
Ich habe höchstens das Problem, dass ich machmal die Signaturdateien löschen muss, wenn mein MacBook lange nicht mehr an war und synchronisiert wurde …
Ich hoffe dir bei der Problemlöung etwas geholfen zu haben! Wenn weitere Frage bestehen, kannst du sie gerne stellen und ich werde versuchen sie bestmöglich zu beantworten.
Gruß,
Sven
Hi Sven,
vielen Dank für die schnelle Antwort.
“Funktioniert der Synchronisationsvorgang überhaupt nicht oder nur nicht ohne Nachfragen seitens unison?”
Der Syncvorgang ansicht läuft schon, jedoch nicht ohne manuelles dazutun von meiner Seite. Es kommt anch dem Aufruf von “unison default” eben die GUI aufgepoppt und dann zeigt er mir an, welche Daten genau sich verändert haben etc. Er führt den Vorgang ansich, das kopieren der Daten, aber nicht durch. Diesen Vorgang kann ich nur manuell starten. Dann ist die Automatisierung natürlich hin.
Interessant währe für mich zu wissen, was du genau für eine Versionsnummer du benutzt, da die aktuelle Version nur noch mit GUI ausgeliefert wird (siehe: http://alan.petitepomme.net/projets/unison/index.html )
Sobald ich diese Version entpacke und installiere, habe ich unison im Verzeichnis /usr/bin. Lösche ich dann aber das unison.app wird mir beim Aufrufen von Unison eine Fehlermeldung ausgegeben.
Danke dir!
Hast du, wie auf der Webseite angegeben, in der GUI von unison das Command line tool installiert?
Ich habe momentan unison version 2.27.47, wenn es weiter hilft. Eigentlich dürfte das Terminal-Programm nicht die GUI aufrufen, außer es hat den Befehl dazu bekommen.
Ja, klar. Das ist installiert und befindet sich ja auch im richtigen Verzeichnis. Ich werde jetzt mal deine Version von Unison installieren und gebe dann bescheid.
Sooo, jetzt läufts doch. Man muss also wirklich die Text Version benutzen. Die für den Leopard gibt es hier: http://www.cs.haifa.ac.il/~shuly/unison/
Jetzt funktioniert das ganze sehr gut.
Das einzige was ich noch komisch finde, ist, das der Ordner .backup nicht in meinem Benutzerordner zu finden ist. Ich weiß, dieser wird nicht angezeigt aber ich benutze ja das TinkerTool und auch dort kann ich den Ordner nicht finden.
Was ich allerdings sehen kann sind .bak Daten im Dokumenteordner. Sind das die Backups?
Danke für den Link.
Um das Backup habe ich mich leider noch nicht gekümmert, da es ja auf meinem Laptop gespiegelt ist. Schonmal ls -a im Terminal versucht, um alle Dateien und Ordner anzuzeigen?
Bitte.
Ich dachte auch eher an ein Backup wenn man die Datei löscht und wiederherstellen will. Ich weiß, da gibt es auch andere Methoden über den Papierkorb, aber darum geht es mir nicht.
Wofür ist denn die Programmzeile:
# Backup Verzeichnisse (was entfernt wird, landet hier)
backupdir = /Users/svenhodapp/.backup
maxbackups = 5
backups = true
Soll doch bedeuten, dass Daten, die gelöscht werden als Backup angelegt werden? Oder habe ich das falsch Verstanden?
PS: auch mit ls -a finde ich den .backup Ordner nicht.
Ja das soll dem dienen, aber ich habe es nicht explizit nachgeprüft – sorry. Du kannst versuchen den Ordner mithilfe des Befehls mkdir .backup anzulegen … möglicherweise braucht unison auch noch einen extra Parameter, damit der Backup-Ordner benutzt wird.
Gruß,
Sven
So, ich habe mich jetzt dazu entschlossen, dass Backup ganz sein zu lassen. Hintergrund. Die Backupdateien fressen mir zuviel Speicherplatz. Lösche ich z.B. einen großen Ordner, wird dieser als Backup angelegt und verweilt unsichtbar auf der Platte. Da man diese Dateien schnell vergisst, wird die Platte auch relativ schnell voll. Das wollte ich nicht.
Desweiteren habe ich mich dran gesetzt die Spieglung beider Platten auch auf andere User zu übertragen. Somit werden auf beiden Macs die unterschiedlichen User auch gespiegelt. Probleme hatte ich da mit der Datei unison im Verzeichnis /usr/bin/ . Ich denke das die Probleme waren auf ein Rechteproblem zurückzuführen. Bis jetzt läuft also alles gut
Vielen Dank für dein gutes Feedback und weiterhin viel Erfolg!
Gruß,
Sven
Hi,
noch ganz kurz zu Michaels anfänglichen Problemen mit der “GUI-Version”:
wenn man die GUI-Version installiert hat muss man in der Kommandozeite den Schalter -ui text angeben, dann funktioniert es auch damit wie von Sven beschrieben.
Die Optionen bekommt man mit unison –help angezeigt.
Viele Grüße
Lars
PS: Sven: toller Artikel, hat mir sehr geholfen
Vielen Dank für diese Information und das gute Feedback Lars!
Grüße,
Sven
Vielen Dank Lars für den hilfreichen Tipp.Danke Sven für die Benachrichtigung
Ich nochmal
ich versuche momentan über ein Script das Terminal dazu zu bewegen ein Programm zu starten. Hierfür habe ich auch einen funktionierenden Code gefunden:
tell application “Terminal”
open file “Macintosh HD:usr:bin:unison”
end tell
Soweit sogut. Nun möchte ich aber das Programm Unison mit einer Option ausführen die da währe: -auto
Füge ich das -auto zum Pfad dazu, also:
tell application “Terminal”
open file “Macintosh HD:usr:bin:unison -auto”
end tell
bekomme ich eine Fehlermeldung. Nun weiß ich nicht mehr weiter. Gibt es denn eventuell die Möglichkeit mit der “do shell script” anweisung was zu erreichen oder bin ich da komplett auf dem falschen Dampfer?
Grüße,
Michael
Wenn unison in der Unix-Hierarchie installiert ist, kann man es aufrufen indem man unison ins Terminal tippt!
Dazu brauchst du keine Apple-Skripts
[...] nach einem automatisierten Datenabgleich beider Rechner. Nach langem suchen stieß ich auf diesen Artikel über das kostenlose Programm “Unison”. Der Artikel beschreibt sehr gut, wie bei der Installation von Unison vorgegangen werden muss und [...]
Hi Sven,
da ich deinen Artikel so interessant finde, habe ich diesen mal auf meinem Blog verlinkt.
http://www.zeitphase.de/blog
Danke dir nochmals für die tolle Anleitung!
PS: Werde, wenn mir die Zeit reicht, noch etwas näher auf die diversen Einstellungen eingehen.
Hier der genau Trackback:
http://www.zeitphase.de/blog/?p=24
Danke für die Anleitung! Fortan laufen MacBook und mein MacMini synchron. Ich bevorzuge allerdings die manuelle Bedienung über das graphische Interface. So habe ich über alle relevanten Dateien jederzeit die Kontrolle VOR der Synchronisation. Nico
Hallo und danke für die tolle Seite!
habe mich auch daran gewagt und habe path = Dokumente/Schule angegeben, weil das der Pfad ist, denn ich synchronisieren wollte….
Leider bekomme ich die Antwort: Press return to continue.[] Error: path Dokumente/Schule is not valid because Dokumente is not a directory in one of the replicas
Das verstehe ich nicht, da es auf beiden Rechnern das selbe Verzeichnis ist und es dieses wirklich gibt.
Kann sich da ein syntax-Fehler eingeschlichen haben?
Hallo Michael 2, danke für dein Lob!
Sieh dir mal deine Ordnerstruktur im Terminal genauer an (mit ls -a), dann wirst du feststellen, dass Dokumente nur die dt. Lokalisierung ist und nicht dem wahren Pfad entspricht.
Ich denke ‘Documents/Schule’ wird dich eher zum Ziel bringen.
Gruß,
Sven
Erstmal danke für die kleine Einführung, echt super!
Dennoch sollte ein Wort der Warnung angebracht sein. Denn die Socket-Methode ist höchst unsicher, da die Daten einerseits unverschlüsselt übertragen werden und andererseits der Server ohne jede Authentifikation offen für Zugriffe aufs Dateisystem ist. Also entweder sollte man sichergehen, dass der Server (sinnvollerweise der stationäre iMac) in einem geschlossenen Netzwerk sitzt wo keiner einfach so reinkommt (ein Restrisiko bleibt auf jeden Fall, aber ist immerhin besser als den offenen Server in Macbook-Form mit sich herumzutragen und möglicherweise unterwegs in irgendwelchen Netzwerken bei Starbucks oder an der Uni zu sein)…
…oder man macht das Ganze per ssh, was wirklich nicht allzu kompliziert ist. Hier die ergänzende Anleitung:
- Auf dem Server erstmal das LaunchAgents-File wieder rausnehmen und den Server per Aktivitätsanzeige beenden.
- auf dem Server in den Sharing-Einstellungen “Entfernte Anmeldung aktivieren”
Dann müssen wir erstmal ein Key-Paar generieren und dem Server übergeben.
- Im Terminal eingeben: ssh-keygen
Passphrase eingeben und es wird ein Key-Paar generiert welches in ~/.ssh landet
- Im Terminal: cat ~/.ssh/id_rsa.pub | ssh user@hostname ‘umask 077; cat >>.ssh/authorized_keys’
Damit wird der Public-Key auf den Server übertragen.
Zum Test jetzt mal ssh hostname eingeben. Nun müsste man ohne Passworteingabe zu einer Shell auf dem Server kommen.
Im Unison-Profil muss dann die Remote-root geändert werden:
root = ssh://user@hostname/
Das wäre jetzt das Homeverzeichnis des Users. Man kann natürlich auch andere Pfade anhängen.
Wenn man jetzt unison startet, kommt erstmal ein Fenster wo man die Passphrase von gerade eingeben muss. Dort das Häkchen “Im Schlüsselbund speichern” aktivieren und künftige Aufrufe kommen ohne Passwort aus. Das war’s dann auch schon, die Einrichtung des Cronjobs erfolgt wie gehabt.
Danke Hugo für deine Erklärung.
Ich wollte es ursprünglich auch via SSH lösen, aber es stellte sich als äußert knifflig heraus, das Passwort im Cron-Job zu übertragen (also im Hintergrund).
Daher möchte ich dir für den Tipp danken, den ich bei Gelegenheit ausprobieren werde.
Gruß,
Sven
Hierzu eine Korrektur, denn nach meinem Post entwickelte sich die Sache doch kniffliger als ich dachte.
Also bei der Key-Generierung sollte kein Passwort eingegeben werden, da das leider als Cronjob nicht ganz so einfach funktioniert wie beim Aufruf von Hand. Zusätzlich muss dem ssh noch das richtige Keyfile mitgegeben werden, wenn der Sync von cron aus gestartet wird findet er ihn nämlich ausnahmsweise nicht von selbst. Der Aufruf in der crontab lautet dann:
unison -auto -batch -sshargs ‘-i /User/Benutzer/.ssh/id_rsa’ default
Dann klappt’s. Tut jedenfalls bei mir super seinen Dienst.
Hallo,
ist die Beschreibung neben usb-Festplatten auch mit USB-Sticks möglich? Benötigt man dann noch die socket-Verbindung? Würde gerne meine Daten auf dem MacBook mit den Daten auf dem USB-Stick synchron halten, damit ich mit meinem USB-Stick auch an anderen Macs arbeiten kann und sobald ich an meinem MacBook den Stick benutze dieser synchronisiert wird. Oder wenn ich die Daten auf meinem MacBook verändere, dass diese dann auf dem Stich verändert werden sobald ich diesen einstecke.
Es würde natürlich auch mit einem USB-Stick funktionieren — keine Frage. Man muss anstatt die IP-Adresse einfach den USB-Stick angeben. Diesen findest du unter /Volumes/NameDesSticks
Ich würde allerdings hierfür keinen cron-Job ansetzen, sondern es „manuell“ via Terminal in Auftrag geben oder eben eine entsprechende Automator-Action schreiben.
Man kann auch rsync statt unison nutzen, nur als Stichwort …
Das ist auch eine ganz gute Idee, die du hast. Mich persönlich würde es interessieren ob man mit dem Automator und unison eine perfekte Lösung für dich bauen kann. Ich guck mir das mal bei Gelegenheit an und vielleicht kommt ein kleines Workaround dabei raus …
Das wäre natürlich super. Ich arbeite zwar die meiste Zeit auf meinem MacBook, brauch aber auch immer wieder meinen Datenbestand an anderen Macs auf die mein Datenbestand nicht soll, den ich dann mit dem Usb-Stick transportiere. Wenn ich dann sozusagen am MacBook zurück bin sollten die dann gemachten Änderungen eben aufs MacBook.
Bin Umsteiger seit einem halben Jahr und deshalb noch ein wenig “grün” hinter den Ohren.
Über so tolle Ideen und Hilfe bin ich sehr froh, da ich mit dem Mac sehr sehr zufrieden bin.
Ich probier das jetzt einfach mal wie Du geschrieben hast mit unison und dem manuellen Start und schau dann mal weiter.
sorry, noch mal eine kurze Frage. Habe wie beschrieben unison nach usr/bin kopiert und default.prf in .unison ersellt. Beim manuellen ausführen über unison default im Terminal erhalte ich die Meldung permission denied. liegt das an den “falschen” Rechtevergaben oder an einer falschen default.prf??
Was hast du wo wie eingetragen?
Eigentlich sollten ja unison die Rechte des angemeldeten Benutzers reichen.
Versuch einfach mal: sudo unison. Aber zuerst einmal würde ich die Konfiguration überprüfen …
Mit sudo unison wird der Befehl ausgeführt und funktioniert auch sehr gut!
Nur mit unison erhalte ich die Meldung -bash: /usr/bin/unison: Permission denied.
Die Rechte für die Datei unison sollten stimmen. Ich weiß nicht woran es liegen könnte.
Was steht denn in der Unsion Konfigurationsdatei?
Hallo!
Ist es hiermit auch möglich, die Library von Aperture auf zwei Macs synchron zu halten?
Also bidirektional wird vermutlich nicht funktionieren (wegen der Datenbank), also müsstest versuchen es in eine Richtung zu synchronisieren (von dort wo die Änderungen stattgefunden haben).
Also ich hatte für solche Zwecke auch gerne rsync genutzt, um z.B. die iTunes-Library zu synchronisieren.
Hier ein kleines Beispiel:
# Quelle ist der Remote, Ziel der Lokalersync -av --progress --delete --update -e ssh user@192.168.178.31:~/Music/iTunes/ ~/Music/iTunes
In eine Richtung würde mir schon weiterhelfen!
Ich probier das mal aus und melde mich dann gleich wieder!
Ok, jetzt hab ich das selbe Problem wie mein Vorredner, Permission denied!
Ich benutze die gleiche Datei, die du hier zum download anbietest!
Thx für die super Anleitung,
hat auf anhieb geklappt
Hallo,
erstens – vielen Dank an die Entwickler – super Sache!
Eine Frage – wie kommt es, dass die neueste Dateien manchmal super schnell, aber ab und zu mal super langsam gefunden werden. Es scheint mir, dass manchmal alle Dateien überprüft werden, manchmal weisst es schon vorher, welche geändert wurden und findet die ganz schnell.
2. Ab & zu findet iMac den Macbook ja gar nicht. Ich habe die IP schon im Router extra reserviert – trotzdem. Woran kann es liegen?
Vermutlich wenn er die Dateien schon kennt und sie entsprechend in der Cache-Datei liegen hat, muss er keinen großen Aufwand mehr schieben, die Änderungen festzustellen, wenn eine Datei neu angelegt werden muss, bedarf es mehr Aufwand. Aber das ist nur eine Mutmaßung meinerseits.
Zu deiner zweiten Frage habe ich keine Antwort. Wenn die Ports etc. frei sind, sollte es eigentlich keine Probleme geben…
Hi Sven, ich habe angesetzt Deine Lösung zu probieren – das ist genau, was ich brauche!! Allerdings steige ich mangels Kenntnis irgendwann aus. Ich kann mit einzelnen Begriffen nicht anfangen. Am liebsten hätte ich jemand am Schreibtisch, der das für mich einrichtet – Denkbar via Teamviewer?
Mir ist das auch Geld wert.
Freue mich über ein Feedback.
Danke schon mal vorab
Wolfgang
Hi Sven, ich habe angesetzt Deine Lösung zu probieren – das ist genau, was ich brauche!! Allerdings steige ich mangels Kenntnis irgendwann aus. Ich kann mit einzelnen Begriffen nicht anfangen. Am liebsten hätte ich jemand am Schreibtisch, der das für mich einrichtet – Denkbar via Teamviewer?
Mir ist das auch Geld wert.
Freue mich über ein Feedback.
Danke schon mal vorab
Wolfgang