Назад | Перейти на главную страницу

rsync: передача файлов только в одном направлении

Можно ли использовать rsync для копирования файлов только в одном направлении?

Например, предположим, что у нас есть:

left/a.txt

right/a.txt

где файлы изначально идентичны.

Если затем изменить right/a.txt, затем:

rsync -avv left/ right/

скопирую right/a.txt на left/a.txt.

Можно ли ограничить rsync копированием только из left/ к right/ (т.е. запретить копирование с right/ к left/)?

Вы неправильно понимаете rsync. Эта команда:

rsync -avv left/ right/ 

не будет ничего синхронизировать справа налево. Как говорит @atbg, он будет синхронизироваться только слева направо. Rsync не является двунаправленным синхронизатором. Он синхронизирует назначение с источником.

Справочная страница: http://linux.die.net/man/1/rsync

Так должно быть rsync [OPTION...] SRC... [DEST] поэтому он работает в этом направлении (если вы не переключите dest и src).

left/a.txt следует скопировать в 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

Если есть определенные файлы, которые вы не хотите включать в rsync, взгляните на --exclude=PATTERN и --exclude-from=FILE.