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 -i
muestra 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 -avz
está haciendo todo por mí
- v
es detallado
- a
es para el modo de archivo (similar a -rlptgoD)
- z
es para usar compresión