29 votes

rsync : transfert de fichiers dans une seule direction

Est-il possible d'utiliser rsync pour copier des fichiers dans un seul sens ?

Par exemple, supposons que nous avons :

left/a.txt

right/a.txt

où les fichiers sont initialement identiques.

Si on modifie ensuite right/a.txt alors :

rsync -avv left/ right/

copiera right/a.txt sur left/a.txt .

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

46voto

jdw Points 3715

Vous ne comprenez pas bien rsync. Cette commande :

rsync -avv left/ right/ 

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

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

0 votes

Il est intéressant de noter que lorsque l'on utilise au moins la version Mac de rsync pour synchroniser un répertoire distant via ssh, la synchronisation est bidirectionnelle - par ex. rsync -avzz -e "ssh -p 2222" /source/ /target/

4voto

Michael Lawton Points 113

Il devrait être rsync [OPTION...] SRC... [DEST] donc cela fonctionne dans cette direction (à moins que vous ne changiez dest et src).

left/a.txt doit ê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 voulez pas voir inclus par rsync, jetez un coup d'œil à la page suivante --exclude=PATTERN et --exclude-from=FILE .

4 votes

Et n'oubliez pas, en cas de doute, le --dry-run vous montrera une liste des fichiers qui auraient été transférés mais n'effectuera pas réellement le transfert. J'ajoute cette option au début de chaque rsync juste par précaution, même si je suis sûr que la commande est correcte.

1 votes

Compte tenu de la confusion qui règne au sujet du fonctionnement de rsync, il est peut-être utile de noter que rsync --update qui permet d'ignorer (ne pas synchroniser) les fichiers dont la date d'expiration est plus récente. modified temps du côté de la réception.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X