Ich versuche, eine bidirektionale oder bidirektionale Synchronisierung mit rsync einzurichten. In meinem Fall muss ich die Dateien nur löschen, wenn ich von B nach A synchronisiere. Daher habe ich mir überlegt, rsync zweimal wie folgt auszuführen:
rsync -rtuv ./A/ ./B/
rsync -rtuv --delete ./B/ ./A/
Dieses Problem bei dieser Lösung besteht darin, dass beim Ausführen von rsync (B-> A), das direkt nach dem Ausführen von rsync (AB) ausgeführt wird, alle neuen Dateien, die zwischen der Synchronisierung erstellt werden, ebenfalls entfernt werden.
Gibt es eine Möglichkeit, einen Zeitstempel als Bedingung anzugeben, dass die Datei nur gelöscht wird, wenn sie vor diesem Datum / dieser Uhrzeit erstellt wurde?
Aktualisiert:
Ich verstehe, dass es eine unisono Lösung gibt, aber das Problem mit unison muss an beiden Enden installiert werden. Ich synchronisiere mit einem Remote-Server und kann nicht unisono auf dem Remote-Ende installieren.
quelle
Antworten:
Sie können osync ausprobieren, das genau für diese Aufgabe entwickelt wurde. Ich habe einmal eine komplexe Folge von rsync-Befehlen eingerichtet, um den Job zu erledigen, aber jetzt verwende ich osync.
https://github.com/deajan/osync
Es verwendet rsync intern, daher sollte es für jede Situation geeignet sein, in der Sie rsync verwenden könnten.
quelle
rsync
ist das falsche Werkzeug für diese Aufgabe, genau aus den Gründen, auf die Sie gestoßen sind. Verwenden Sie stattdessenunison
:Wenn Sie dies zum ersten Mal ausführen, werden Dateien identifiziert, die eindeutig vorhanden sind
A
, und solche, die eindeutig vorhanden sindB
. Außerdem werden diejenigen markiert, die sich an beiden Stellen befinden, und Sie werden aufgefordert, zu identifizieren, welche überschrieben werden sollen.Wenn Sie dies das nächste Mal ausführen, werden Änderungen von
A
nachB
und auchB
nach kopiertA
, wobei alle Dateien, die an beiden Stellen geändert wurden, für die manuelle Auflösung markiert werden.Es gibt eine Reihe nützlicher Flags, mit
unison
denen Sie den Prozess automatisieren können, indem Sie Annahmen definieren und dadurch die Anzahl der Fragen reduzieren, die Ihnen während der Synchronisierung gestellt werden.quelle
Was Sie wirklich brauchen, ist Rclone . Rclone ist rsync für Cloud-Speicher (Box, Dropbox, Nextcloud, FTP usw.) und lokalen Speicher.
quelle