rsync: Dateien nur in eine Richtung übertragen

21

Kann man mit rsync Dateien nur in eine Richtung kopieren?

Nehmen wir zum Beispiel an, wir haben:

left/a.txt

right/a.txt

wo die dateien anfangs identisch sind.

Wenn man dann modifiziert right/a.txt, dann:

rsync -avv left/ right/

kopiert right/a.txtauf left/a.txt.

Ist es möglich, nur zu beschränken rsync Kopieren von left/zu right/(dh verhindert , dass es das Kopieren von right/zu left/)?

artella
quelle

Antworten:

33

Sie verstehen Rsync falsch. Dieser Befehl:

rsync -avv left/ right/ 

synchronisiert nichts von rechts nach links. Es wird, wie @atbg sagt, nur von links nach rechts synchronisiert. Rsync ist kein bidirektionaler Synchronisator. Es synchronisiert das Ziel mit der Quelle.

Manpage als Referenz: http://linux.die.net/man/1/rsync

jdw
quelle
Interessanterweise, wenn zumindest die Mac - Version von rsync zu sync Remote - Verzeichnis via ssh arbeitet , ist es bidirektional - zBrsync -avzz -e "ssh -p 2222" /source/ /target/
geotheory
4

Es sollte rsync [OPTION...] SRC... [DEST]so sein, dass es in diese Richtung funktioniert (es sei denn, Sie wechseln zwischen dest und src).

left/a.txtsollte kopiert werden nach right/a.txt:

$ echo 'left' > left/a.txt
$ echo 'right' > right/a.txt
$ cat left/a.txt && cat right/a.txt
left
right
$ rsync -avv left/ right/
sending incremental file list
delta-transmission disabled for local transfer or --whole-file
a.txt
total: matches=0  hash_hits=0  false_alarms=0 data=5

sent 95 bytes  received 34 bytes  258.00 bytes/sec
total size is 5  speedup is 0.04
$ cat left/a.txt && cat right/a.txt
left
left

Wenn es bestimmte Dateien gibt, die nicht von rsync aufgenommen werden sollen, schauen Sie sich --exclude=PATTERNund an --exclude-from=FILE.

agtb
quelle
2
Und denken Sie daran, wenn Sie Zweifel --dry-runhaben, zeigt Ihnen die Option eine Liste der Dateien an, die übertragen worden wären, aber die Übertragung nicht tatsächlich durchführen. Ich füge dies rsyncvorsichtshalber zum Anfang jedes Befehls hinzu, auch wenn ich sicher bin, dass der Befehl korrekt ist.
Slillibri
1
In Anbetracht der Verwirrung über den Betrieb von rsync ist es vielleicht erwähnenswert, die --updateOption von rsync zu erwähnen , die Dateien überspringt (nicht synchronisiert), die modifiedauf der Empfängerseite eine aktuellere Zeit haben.
Richard Michael