Conservar la fecha de modificación en directorios/carpetas con rsync

Conservar la fecha de modificación en directorios/carpetas con rsync

Estoy intentando hacer una copia de seguridad de un disco duro defectuoso y rsync sería ideal debido a las características que tiene, como el indicador de progreso y la capacidad de detenerlo y reanudarlo. El único problema que tengo es que, aunque se conserva el atributo de fecha de modificación del archivo, los directorios obtienen un nuevo atributo de fecha. Esto causa problemas ya que ordeno muchos archivos por fecha para saber qué se agregó más recientemente. ¿Es posible conservar el atributo de fecha de modificación del directorio con rsync?

sudo rsync -avhX --progress --info=progress2 /mnt/failing/ /mnt/new/

La opción -t (incluida con -a) conserva los atributos del archivo pero no menciona los directorios. ¿Existe algún requisito especial de propiedad/permisos de la partición /mnt/new para preservar ciertos atributos correctamente?

Respuesta1

La hora de la última modificación de los directorios se conserva en -a, pero solo puede verla cuando finaliza rsync. No intenta establecer la hora en directorios que se actualizan constantemente con nuevos archivos.

Puedes probar esto tú mismo. Cree un directorio y establezca la fecha en ayer, luego cópielo con rsync:

$ mkdir d1 d2
$ ls -ld d1
drwxr-xr-x 2  40 Nov  4 14:41 d1
$ touch -d 'yesterday' d1
$ ls -ld d1
drwxr-xr-x 2  40 Nov  3 14:41 d1
$ rsync -i -avR d1 d2
$ ls -ld d1 d2/d1/
drwxr-xr-x 2  40 Nov  3 14:41 d1
drwxr-xr-x 2  40 Nov  3 14:41 d2/d1/

El directorio d2/d1 tiene la fecha de ayer. Podemos anularlo y ver si rsync soluciona cosas:

$ touch d2/d1
$ ls -ld d1 d2/d1/
drwxr-xr-x 2  40 Nov  3 14:41 d1
drwxr-xr-x 2  40 Nov  4 14:42 d2/d1/
$ rsync -i -avR d1 d2
.d..t...... d1/
$ ls -ld d1 d2/d1/
drwxr-xr-x 2  40 Nov  3 14:41 d1
drwxr-xr-x 2  40 Nov  3 14:41 d2/d1/

rsync -imuestra que la marca de tiempo es incorrecta en d2/d1 y la soluciona.

Respuesta2

Terminé escribiendo un artículo sobre este tema por si le resulta útil a alguien. Prácticamente todos los metadatos se pueden conservar con Rsync como se explica en la publicación.

Reemplace las unidades de almacenamiento con Rsync en Arch Linux

Aquí hay un fragmento para sincronizar todo:

sudo rsync -avihXP --info=progress2 --stats --dry-run /mnt/disk?/ /mnt/temp/

Respuesta3

rsync -avzestá haciendo todo por mí
- ves detallado
- aes para el modo de archivo (similar a -rlptgoD)
- zes para usar compresión

información relacionada