rsync: transferencia de archivos solo en una dirección


21

¿Es posible usar rsync para copiar archivos en una sola dirección?

Por ejemplo, supongamos que tenemos:

left/a.txt

right/a.txt

donde los archivos son inicialmente idénticos.

Si uno modifica right/a.txt, entonces:

rsync -avv left/ right/

copiará right/a.txten left/a.txt.

¿Es posible restringir rsync a solo copiar de left/a right/(es decir, evitar que copie de right/a left/)?

Respuestas:


33

Usted malinterpreta rsync. Este comando:

rsync -avv left/ right/ 

no sincronizará nada de derecha a izquierda. Como @atbg dice, solo se sincronizará de izquierda a derecha. Rsync no es un sincerizador bidireccional. Sincroniza el destino con la fuente.

Página del manual para referencia: http://linux.die.net/man/1/rsync


Curiosamente, cuando se opera al menos la versión Mac de rsync para sincronizar el directorio remoto a través de ssh, es bidireccional, por ejemplorsync -avzz -e "ssh -p 2222" /source/ /target/
geoteoría

4

Debería ser rsync [OPTION...] SRC... [DEST]así para que funcione en esa dirección (a menos que cambie dest y src).

left/a.txtdebe copiarse a 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

Si hay archivos específicos que no desea incluir por rsync, eche un vistazo a --exclude=PATTERNy --exclude-from=FILE.


2
Y recuerde, cuando --dry-runtenga dudas, la opción le mostrará una lista de los archivos que se habrían transferido pero que en realidad no realizarían la transferencia. Agrego esto al inicio de cada una rsyncsolo como medida de precaución, incluso si estoy seguro de que el comando es correcto.
slillibri

1
Dada la confusión sobre la operación de rsync, quizás valga la pena señalar la --updateopción de rsync , que omitirá (no sincronizará) los archivos que tienen un modifiedtiempo más reciente en el lado receptor.
Richard Michael
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.