rsync: transfert de fichiers dans une seule direction

21

Est-il possible d'utiliser rsync pour copier des fichiers dans une seule direction?

Par exemple, supposons que nous ayons:

left/a.txt

right/a.txt

où les fichiers sont initialement identiques.

Si l'on modifie right/a.txtalors, alors:

rsync -avv left/ right/

copiera right/a.txtsur left/a.txt.

Est-il possible de restreindre rsync à la copie de left/à right/(c'est- à -dire de l'empêcher de copier de right/à left/)?

artella
la source

Réponses:

33

Vous comprenez mal rsync. Cette commande:

rsync -avv left/ right/ 

ne synchronisera rien de droite à gauche. Comme @atbg le dit, il ne se synchronisera que de gauche à droite. Rsync n'est pas un synchroniseur bidirectionnel. Il synchronise le dest avec la source.

Page de manuel pour référence: http://linux.die.net/man/1/rsync

jdw
la source
Fait intéressant, lorsque vous utilisez au moins la version Mac de rsync pour synchroniser le répertoire distant via ssh, elle est bidirectionnelle - par exemplersync -avzz -e "ssh -p 2222" /source/ /target/
geotheory
4

Il devrait en être rsync [OPTION...] SRC... [DEST]ainsi pour que cela fonctionne dans cette direction (sauf si vous changez dest et src).

left/a.txtdoit être copié dans 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

S'il y a des fichiers spécifiques que vous ne souhaitez pas inclure par rsync, jetez un œil à --exclude=PATTERNet --exclude-from=FILE.

agtb
la source
2
Et rappelez-vous qu'en cas de doute, l' --dry-runoption vous montrera une liste des fichiers qui auraient été transférés mais qui n'effectuent pas réellement le transfert. J'ajoute cela au début de chaque par rsyncmesure de précaution, même si je suis sûr que la commande est correcte.
slillibri
1
Compte tenu de la confusion concernant le fonctionnement de rsync, il convient peut-être de noter l' --updateoption de rsync , qui ignorera (et non synchronisera) les fichiers qui ont un temps plus récent modifieddu côté de la réception.
Richard Michael