¿Cómo decide exactamente rsync qué sincronizar?

Pregunta:

Estoy encontrando múltiples respuestas a la pregunta, así que quería preguntarle a las personas que realmente lo usan, en lugar de simplemente querer hacer el blog más grande llenándolo con información aleatoria semi inútil.

Escenario: I rsync -av --progress /dir/a /dir/b hace lo suyo.

Agrego nuevos archivos a / dir / ay ejecuto el mismo comando nuevamente, sabe lo que hizo y solo copia los nuevos archivos.

Agrego nuevos archivos a / dir / ay cambio el nombre de algunos archivos en / dir / b, y tal vez elimino algunos también.

Si ejecuto rsync -av --progress /dir/a /dir/b nuevamente, ¿qué se copiará? Solo los archivos nuevos porque sabe lo que se ha copiado anteriormente, o los archivos que se renombraron / eliminaron también, porque ya no están presentes.

Y como beneficio adicional, si los archivos copiados previamente se copian nuevamente, ¿hay alguna manera de evitarlo, de modo que solo se copien las nuevas adiciones a / dir / a?

Por el momento, estoy feliz de verificar las cosas manualmente, pero a medida que los datos crezcan, necesitaré más automatización para realizar esta tarea.

Respuesta:

Agrego nuevos archivos a / dir / ay ejecuto el mismo comando nuevamente, sabe lo que hizo y solo copia los nuevos archivos.

No, no sabe qué hizo en una ejecución anterior. Compara los datos del lado receptor con los datos que se enviarán. Con datos lo suficientemente pequeños, esto no será evidente, pero cuando tiene directorios lo suficientemente grandes, el tiempo dedicado a comparar antes de que realmente comience la copia se siente fácilmente.

La verificación predeterminada es para tiempos y tamaños de modificación de archivos. Desde man rsync :

-c, --checksum
      This changes the way rsync checks if the files have been changed
      and  are in need of a transfer.  Without this option, rsync uses
      a "quick check" that (by default) checks if each file’s size and
      time of last modification match between the sender and receiver.
      This option changes this to compare a 128-bit checksum for  each
      file  that  has a matching size.  Generating the checksums means
      that both sides will expend a lot of disk I/O  reading  all  the
      data  in  the  files  in  the transfer (and this is prior to any
      reading that will be done to transfer changed  files),  so  this
      can slow things down significantly.

Y:

-u, --update
      This  forces  rsync  to  skip  any  files  which  exist  on  the
      destination  and  have  a  modified  time that is newer than the
      source  file.   (If  an  existing   destination   file   has   a
      modification time equal to the source file’s, it will be updated
      if the sizes are different.)

Tenga en cuenta que estas opciones no están implícitas en las opciones que utilizó. -a es:

-a, --archive               archive mode; same as -rlptgoD (no -H)
-r, --recursive             recurse into directories
-l, --links                 copy symlinks as symlinks
-p, --perms                 preserve permissions
-o, --owner                 preserve owner (super-user only)
-g, --group                 preserve group
    --devices               preserve device files (super-user only)
    --specials              preserve special files
-D                          same as --devices --specials
-t, --times                 preserve times

Leave a Comment

Your email address will not be published.

Scroll to Top

istanbul avukat

-

web tasarım