Comando rsync básico para copias idénticas a los bits

16

Por lo que entiendo, el siguiente comando:

sudo rsync --delete -azvr /home/oshiro/Desktop/source/ /home/oshiro/Desktop/destination

¿Es esto todo lo que necesito para crear una sincronización simple de archivos de una ubicación a otra? ¿O el comando anterior hace algo más en segundo plano que no conozco? Por ejemplo, ¿crea algún tipo de control de versiones, en el que puedo especificar un tiempo pasado para obtener archivos de dónde se pasaron?

Esa es una característica que no quiero habilitar en esta etapa. Todo lo que quiero es una copia idéntica de los archivos de una ubicación a otra. ¿Puedo deshacerme de alguno de esos parámetros o debo agregar más parámetros para hacer que las copias sean idénticas a bits sin versiones? Básicamente, no quiero crear copias de seguridad de cómo el sistema de copia de seguridad de Mac Time Machine crea copias de seguridad.

oshirowanen
fuente

Respuestas:

16

Rsync no realiza ningún tipo de control de versiones ni mantiene ningún historial a menos que se le indique con opciones como --backup. Hay herramientas de respaldo que usan rsync, pero rsync en sí mismo no es una herramienta de respaldo, ya que cuatro ruedas no hacen un automóvil. Rsync solo maneja la sincronización.

Con respecto a las opciones que usó o puede que quiera usar:

  • -asignifica "copiar casi todo" (copiar directorios de forma recursiva, copiar enlaces simbólicos como tales, preservar todos los metadatos, etc.). Use esta opción a menos que esté haciendo algo inusual.
  • Además -a, es posible que desee utilizar -Hpara preservar los enlaces duros, -Apara preservar las ACL ( -asolo conserva los permisos tradicionales de Unix) o -Xpara preservar los atributos extendidos.
  • -rya está incluido en -a.
  • -v significa detallado.
  • -z es inútil para una copia local.
  • --delete elimina archivos en el destino que no están presentes en la fuente.

Entonces, este es el comando básico para hacer que el destino sea idéntico a la fuente (ausencia de enlaces duros, ACL y atributos extendidos):

rsync -a --delete SOURCE/ DESTINATION/
Gilles 'SO- deja de ser malvado'
fuente
5

Usualmente uso el comando de esta respuesta . La ventaja es que también conserva atributos extendidos y ACL.

rsync -avxHAX --progress / /new-disk/

Las opciones son:

-a  : all files, with permissions, etc..
-v  : verbose, mention files
-x  : stay on one file system
-H  : preserve hard links (not included with -a)
-A  : preserve ACLs/permissions (not included with -a)
-X  : preserve extended attributes (not included with -a)
Benedikt Köppel
fuente
3

Este comando debería ser todo lo que necesitas. rsyncpor defecto usa lo que se llama un algoritmo de verificación rápida:

Rsync encuentra archivos que necesitan ser transferidos usando un algoritmo de "verificación rápida" (por defecto) que busca archivos que han cambiado de tamaño o en el último tiempo modificado. Cualquier cambio en los otros atributos conservados (según lo solicitado por las opciones) se realiza directamente en el archivo de destino cuando la comprobación rápida indica que no es necesario actualizar los datos del archivo.

Esto a menudo está bien en la mayoría de las aplicaciones. Es más rápido que el método alternativo que calcula una suma de verificación para cada archivo. Este segundo método garantizará las diferencias de seguimiento que podrían pasar por el primer método.

En cualquier caso rsync, no guarda múltiples copias de archivos, es una copiadora / sincronizadora de archivos gruesos que mantiene un directorio sincronizado con otro según las opciones que le da.

Método de suma de control

Si tiene curiosidad, aquí está el cambio que utilizo rsyncpara realizar este tipo de sincronización:

$ rsync -avvz -O --stats --checksum --human-readable --acls \
    --itemize-changes --progress \
    --out-format='[%t] [%i] (Last Modified: %M) (bytes: %-10l) %-100n' \
    "SRC" "DEST"

Esto genera este tipo de salida:

2014/02/20 09:51:49 INFO sending incremental file list 
2014/02/20 09:51:49 INFO delta-transmission disabled for local transfer or --whole-file 
2014/02/20 09:51:49 INFO [2014/02/20 09:51:48] [.d..t......] (Last Modified: 2014/02/19-15:51:34) (bytes: 0         ) ./
2014/02/20 09:51:49 INFO [2014/02/20 09:51:48] [>f+++++++++] (Last Modified: 2014/02/19-15:51:33) (bytes: 27981892  ) somefile.zip
      27.98M 100%   82.27MB/s    0:00:00 (xfer#1, to-check=0/2) 0
2014/02/20 09:51:49 INFO total: matches=0  hash_hits=0  false_alarms=0 data=27981892 
2014/02/20 09:51:49 INFO  
2014/02/20 09:51:49 INFO rsync[25205] (sender) heap statistics: 
2014/02/20 09:51:49 INFO   arena:        1060864   (bytes from sbrk) 
2014/02/20 09:51:49 INFO   ordblks:            1   (chunks not in use) 
2014/02/20 09:51:49 INFO   smblks:             4 
2014/02/20 09:51:49 INFO   hblks:              1   (chunks from mmap) 
2014/02/20 09:51:49 INFO   hblkhd:        135168   (bytes from mmap) 
2014/02/20 09:51:49 INFO   allmem:       1196032   (bytes from sbrk + mmap) 
2014/02/20 09:51:49 INFO   usmblks:            0 
2014/02/20 09:51:49 INFO   fsmblks:          304 
2014/02/20 09:51:49 INFO   uordblks:      667008   (bytes used) 
2014/02/20 09:51:49 INFO   fordblks:      393856   (bytes free) 
2014/02/20 09:51:49 INFO   keepcost:      393552   (bytes in releasable chunk) 
2014/02/20 09:51:49 INFO  
2014/02/20 09:51:49 INFO rsync[25207] (server receiver) heap statistics: 
2014/02/20 09:51:49 INFO   arena:         286720   (bytes from sbrk) 
2014/02/20 09:51:49 INFO   ordblks:            2   (chunks not in use) 
2014/02/20 09:51:49 INFO   smblks:             3 
2014/02/20 09:51:49 INFO   hblks:              3   (chunks from mmap) 
2014/02/20 09:51:49 INFO   hblkhd:        667648   (bytes from mmap) 
2014/02/20 09:51:49 INFO   allmem:        954368   (bytes from sbrk + mmap) 
2014/02/20 09:51:49 INFO   usmblks:            0 
2014/02/20 09:51:49 INFO   fsmblks:          224 
2014/02/20 09:51:49 INFO   uordblks:      174480   (bytes used) 
2014/02/20 09:51:49 INFO   fordblks:      112240   (bytes free) 
2014/02/20 09:51:49 INFO   keepcost:      102352   (bytes in releasable chunk) 
2014/02/20 09:51:49 INFO  
2014/02/20 09:51:49 INFO rsync[25206] (server generator) heap statistics: 
2014/02/20 09:51:49 INFO   arena:         135168   (bytes from sbrk) 
2014/02/20 09:51:49 INFO   ordblks:            2   (chunks not in use) 
2014/02/20 09:51:49 INFO   smblks:             6 
2014/02/20 09:51:49 INFO   hblks:              2   (chunks from mmap) 
2014/02/20 09:51:49 INFO   hblkhd:        401408   (bytes from mmap) 
2014/02/20 09:51:49 INFO   allmem:        536576   (bytes from sbrk + mmap) 
2014/02/20 09:51:49 INFO   usmblks:            0 
2014/02/20 09:51:49 INFO   fsmblks:          400 
2014/02/20 09:51:49 INFO   uordblks:       82960   (bytes used) 
2014/02/20 09:51:49 INFO   fordblks:       52208   (bytes free) 
2014/02/20 09:51:49 INFO   keepcost:       32816   (bytes in releasable chunk) 
2014/02/20 09:51:49 INFO  
2014/02/20 09:51:49 INFO Number of files: 2 
2014/02/20 09:51:49 INFO Number of files transferred: 1 
2014/02/20 09:51:49 INFO Total file size: 27.98M bytes 
2014/02/20 09:51:49 INFO Total transferred file size: 27.98M bytes 
2014/02/20 09:51:49 INFO Literal data: 27.98M bytes 
2014/02/20 09:51:49 INFO Matched data: 0 bytes 
2014/02/20 09:51:49 INFO File list size: 93 
2014/02/20 09:51:49 INFO File list generation time: 1.277 seconds 
2014/02/20 09:51:49 INFO File list transfer time: 0.000 seconds 
2014/02/20 09:51:49 INFO Total bytes sent: 27.99M 
2014/02/20 09:51:49 INFO Total bytes received: 34 
2014/02/20 09:51:49 INFO  
2014/02/20 09:51:49 INFO sent 27.99M bytes  received 34 bytes  11.20M bytes/sec 
2014/02/20 09:51:49 INFO total size is 27.98M  speedup is 1.00 
slm
fuente