rsync: transferindo arquivos em apenas uma direção

19

É possível usar o rsync para copiar arquivos em apenas uma direção?

Por exemplo, suponha que tenhamos:

left/a.txt

right/a.txt

onde os arquivos são inicialmente idênticos.

Se um deles modificar right/a.txt , então:

rsync -avv left/ right/

copia right/a.txt para left/a.txt .

É possível restringir o rsync para somente copiar de left/ para right/ (ou seja, impedir que copie de right/ para left/ )?

    
por artella 18.10.2011 / 12:51

2 respostas

29

Você entendeu mal o rsync. Este comando:

rsync -avv left/ right/ 

não sincroniza nada da direita para a esquerda. Ele irá, como diz @atbg, sincronizar apenas da esquerda para a direita. O rsync não é uma sincronia bidirecional. Ele sincroniza o dest com a fonte.

Página man para referência: link

    
por 18.10.2011 / 13:24
4

Deve ser rsync [OPTION...] SRC... [DEST] , então funciona nessa direção (a menos que você mude de destino e src).

left/a.txt deve ser copiado para 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

Se houver arquivos específicos que você não deseja incluir no rsync, dê uma olhada em --exclude=PATTERN e --exclude-from=FILE .

    
por 18.10.2011 / 13:19