unison statt rsync

  • Ab sofort steht euch hier im Forum die neue Add-on Verwaltung zur Verfügung – eine zentrale Plattform für alles rund um Erweiterungen und Add-ons für den DSM.

    Damit haben wir einen Ort, an dem Lösungen von Nutzern mit der Community geteilt werden können. Über die Team Funktion können Projekte auch gemeinsam gepflegt werden.

    Was die Add-on Verwaltung kann und wie es funktioniert findet Ihr hier

    Hier geht es zu den Add-ons

Status
Für weitere Antworten geschlossen.

mkottke1

Benutzer
Registriert
07. Feb. 2010
Beiträge
30
Reaktionspunkte
0
Punkte
0
Hallo Leute,
ich habe mich jetzt lange mit dem Thema synchronisieren auseinander gesetzt.

Unison ermöglicht bi-direktionales synchronisieren von verzeichnisbäumen. rsync beherrscht im Gegensatz dazu nur uni-direktionales syncen. d.h. es ist nicht möglich in beiden Verzeichnisbäumen Dateien hinzuzufügen und zu löschen.

Sobald man Daten löscht (also --delete anhängt) muss man bei rsync einen master festlegen (tut man meistens unbewusst) es wird also nicht mehr wirklich gesynct. Sobald man jetzt aber einen File am slave hinzufügt wird diese beim nächsten sync gelöscht. Ihr könnt es euch durchüberlegen, es geht nicht man legt immer implizit einen master fest.

Jetzt aber unison.
Ich habe mir für meine beiden Station (DS209+II und RS409+) die Unison version folgendermaßen installiert

ipkg install http://www.tupperclub.de/blog/wp-content/uploads/2009/02/unison_2.27.57_powerpc.ipk

Es wird unison und anschließend ocaml installiert. Geht vollautomatisch.
Danach ist unison bereits einsatzbereit
Es muss natürlich bei einem Remotesystem auf beiden Seiten installiert werden.

Um es remote nutzen zu können, geht ssh oder per socket Verbindung. Alles sehr gut beschrieben (englisch) unter:

http://urd.kph.de/wiki/index.php/Unison

Da bei mir es über ssh nicht ging, habe ich die socket Version genommen.
Dabei führt man auf dem server unison als daemon aus

unison -socket XXX

XXX steht hier für eine freie Portnummer. Kann jeder selbst wählen, solange sie frei ist. (An mögliche Routerfreigaben denken, wenn via Internet)

Auf der client Seite ruft man unison wie folgt auf

unison /quelle socket://remotehostname:XXX//ziel

mit der option -batch geht alles ohne Nachfragen.

unison /quelle socket://remotehostname:XXX//ziel -batch

Jetzt kann man auf beiden Seiten Daten anlegen, löschen, ändern etc. Nach dem Sync sind auf beiden Seiten alle Daten gleich.


Jetzt bin ich noch dabei auf der Server Seite ein Script zum Starten des daemon zu schreiben...
 
Status
Für weitere Antworten geschlossen.
 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat