rsync zum syncronisieren benutzen

Status
Für weitere Antworten geschlossen.

mkottke1

Benutzer
Mitglied seit
07. Feb 2010
Beiträge
30
Punkte für Reaktionen
0
Punkte
0
Hallo Gemeinde,
ich habe es endlich geschafft, rsync zum laufen zu bringen.

Ich habe zwei Verzeichnisse, die ich auf gleichen Stand halten will.
Nennen wir das erste Verzeichnis /volume1/web/a und das zweite /volume1/web/b

der rsync Befehl zum syncronisieren ist nun

/opt/bin/rsync -aHKxvu --delete-after '/volume1/web/a/' '/volume1/web/b/'; /opt/bin/rsync -aHKxvu --delete-after '/volume1/web/b/' '/volume1/web/a/'

dem geübten Auge fällt auf, dass der rsync Befehl zweimal aufgerufen wird. Erst für die eine Richtung, dann für die andere.

Und hier ist auch mein Problem. Wenn ich Daten in web/a lösche, werden sie auch in web/b gelöscht. (Das will ich auch)
Wenn ich Daten in web/a anlege, dann werden sie auch in web/b angelegt. (Das will ich auch)

Wenn ich aber Daten auf web/b lösche oder anlege, werden diese nicht auf web/a gelöscht oder angelegt.
Ursache ist der Master / Slave Effekt, der durch die Reihenfolge der Befehle sich ergibt. Zuerst wird a nach b abgeglichen mit allen Nebeneffekten (wenn eine Datei auf a nicht existiert, hat sie auf b auch nicht zu existieren. Also wird auf b gelöscht)

Wenn nun der zweite rsync Befehl ausgeführt wird, gibt es auf b keine Dateien mehr, die auf a noch nicht existierten. Daher ist bei mir der zweite rsync Befehl umsonst. Oder sehe ich das falsch?

Gibt es bei den Optionen irgend etwas, was man noch einstellen kann, damit es ein wirkliches synchronisieren in beide Richtungen gibt?

Danke für Eure Zeit...
 

jahlives

Benutzer
Mitglied seit
19. Aug 2008
Beiträge
18.275
Punkte für Reaktionen
4
Punkte
0
Wenn du nach dem Absetzen des ersten rsync eine Datei in b anlegst, dann sollte der zweite Befehl etwas zum Kopieren haben. Allerdings machen diese beiden Befehle nur dann Sinn wenn du wirklich auch in b Daten.
rsync kennt in dem Sinn Master/Slave ned. Die Quelle ist die Referenz und bestimmt was im Ziel ankommt. Ich würde daher rsync eher als Backuptool sehen. Zum reinen Abgleichen von Verzeichnissen gibt es verschiedene andere Tools, die auch Master/Slave kennen.
 

mkottke1

Benutzer
Mitglied seit
07. Feb 2010
Beiträge
30
Punkte für Reaktionen
0
Punkte
0
Es ist ja so, wenn ich die Sync mit dem Admintool von Itari versuche, dann werden beide Syncbefehle sofort nacheinander ausgeführt.

Welche Tools gibt es denn sonst noch. Habe da was von Unison gelesen. Aber für die Diskstation bzw. in meinem Fall auch eine Rackstation gibt es das wohl nicht. Oder lieg da falsch?

Hat sonst noch jemand eine Idee?
Zweck der Übung ist es, eine Diskstation mit einer Rackstation auf gleichen Stand zu halten, wobei auf beiden Daten gelöscht und angelegt werden. Dabei spreche ich noch nicht mal von der gleichen Datei, sondern von unterschiedlichen Dateien. In meinem Fall soll auf beiden Stationen das public Verzeichnis syncronisiert werden via Crontab...

Bin offen für alle Lösungsvorschläge...
 

itari

Benutzer
Mitglied seit
15. Mai 2008
Beiträge
21.900
Punkte für Reaktionen
14
Punkte
0
damit es ein wirkliches synchronisieren in beide Richtungen gibt?

Eine echte beiderseitige Synchronisation gibt es nicht wirklich, da es ja immer irgendwann eine Entscheidung geben muss, wer gewinnt. Egal welches Tool du dir auch irgendwo ansiehst, immer wird es unzulänglich sein.

Angenommen du erzeugt auf a eine Datei1 und auf b auch eine Datei1 und beide sind unterschiedlich, musste du irgendein Entscheidungskriterium haben, welche Datei1 am Ende gewinnen soll. Dieses Entscheidungskriterium ist willkürlich und nicht automatisierbar. Daher ist ein Lösung Datei1 auf a gewinnt immer auch ein 'richtige' Lösung (selbst wenn es dir nicht gefällt), genauso wie umgekehrt.

Der rsync bietet dir eine Menge Optionen und du kannst ja mit dem AdminTool immer rsync-Trockenläufe machen und dir im Protokoll anschauen, wie sich eine Veränderung einer Option auswirkt. Und ja, man kann da wochenlang mit herumspielen und entdeckt immer wieder etwas neues. Ich habe bestimmt auch erst 1% der Möglichkeiten entdeckt ... :D

Itari
 

mkottke1

Benutzer
Mitglied seit
07. Feb 2010
Beiträge
30
Punkte für Reaktionen
0
Punkte
0
Hallo Itari,
mir ist klar, dass die Entscheidung für Datei1 auf a und auch eine Datei1 auf b zwangsläufig zum Problem wird. Aber so weit wollte ich ja noch gar nicht gehen. Ich möchte doch nur ein abgleich zweier Verzeichnisse. Ich nutze zum Beispiel Allway sync für den Abgleich meines Notebooks mit einem Netzwerklauf. Und egal auf welcher Seite ich Daten hinzufüge, ich habe nach einem Abgleich immer alle Daten auf allen Seiten.

Nochmal zu meiner Überlegung.
Wenn ich ein rsync SYNC (kein Backup) also zwei Befehle mit Vertauschten Quellen und Senken durchführe, und dabei jedesmal den delete Befehl nutze, lösche ich mir auf der Senke Daten, die es noch nie auf der Quelle gegeben hat.
Um dieses Problem zu beheben, müsste ich also ohne --delete arbeiten. Dann würde ich bei ersten Befehl die Daten von a nach b kopieren, und mit dem zweiten Befehl die Daten von b nach a (nähmlich die, die dort erstellt wurden)

Aber was ist, wenn ich jetzt wirklich Daten auf a lösche (weil ich sie nicht mehr brauche), die ich auch auf b nicht mehr brauche? Dann werden sie beim zweiten rsync Befehl wieder dort hin geschoben.

Mir schwebt für die Lösung in etwa folgendes vor:
Ich erzeuge beim Urbackup (also beim ersten Mal) eine Fileliste auf jeder Seite. Beim zweiten und jeden weiteren Backup müsste man diese Fileliste als Hilfe zur Hand nehmen, um zu schauen, welche Datei neu hinzu gekommen sind oder vorher existierten und nun nicht mehr. Das für beide Seiten (also a und b) und ich habe eine Liste was noch fehlt oder was noch gelöscht werden soll. Dies dann mal mit delete und ohne oder exclusiv oder was auch immer durchlaufen lassen, und dann könnte es klappen.

Dies könnte ich ohne Probleme in visual basic oder c hinbekommen. Aber auf Unix oder Linux hätte ich da so meine Schwierigkeiten.

Jetzt beim Schreiben merke ich auch, wie aufwendig das ganze wohl wird. Alleine das erstellen der Liste. Ganz zu schweigen das Vergleichen der Listen.

Wenn also jemand dem gewachsen ist, würde ich mich über ein paar Zeilen Code freuen. Ist ja Weihnachten...

Oder hat noch jemand eine Idee?
Danke für Eure Zeit
 
Zuletzt bearbeitet:
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