3 votos

error con rsync cambiando las fechas de modificación incluso con la opción -a

He estado probando rsync y he encontrado un error extraño al copiar archivos y carpetas de una partición a otra:

Si hago esto:

rsync -avE --delete '/Volumes/disk1/origin/' '/Volumes/disk2/destination/'

Copia/sincroniza correctamente.

La próxima vez que utilice rsync para la misma sincronización, algunas fechas de modificación de los archivos (¡no de las carpetas!) se vuelven incorrectas (se cambian a la fecha y hora actuales), aunque haya utilizado la opción -a en el rsync que debería conservarlo.

Lo más raro es que si lo rehago, las fechas que estaban mal ahora son correctas, lo que significa que rsync está cambiando las fechas de modificación cada dos veces que se ejecuta, y cuando cambia las fechas, es siempre a los mismos archivos, no veo un patrón más que el de afectar a los archivos y a los mismos archivos.

¿Qué estoy haciendo mal y se puede arreglar?

Esto es con OS X 10.9.5, usando la terminal, rsync 2.6.9

1 votos

¿Cuáles son los sistemas de archivos de estos dos volúmenes? FAT tiene un notorio problema de diseño en el que los tiempos de modificación sólo pueden representarse con una resolución de 2 segundos. rsync no siempre maneja esto bien.

0 votos

@ChrisHarrington ambos son con Mac OS Extended (Journaled), y con una Tabla de Partición GUID estándar.

3 votos

Ver comentarios aquí rsync 2.6.9 tiene un error conocido en los tiempos de modificación - consiga una versión más reciente

1voto

Michael Zhou Puntos 167

Permítanme corregir mi comentario: Una marca de tiempo de 64 bits consiste en access-modification-change-birthtime .

Desde man 2 stat las siguientes llamadas al sistema cambian los tiempos respectivos.

Los campos relacionados con el tiempo de la estructura stat son los siguientes:

 st_atime         Time when file data last accessed.  Changed by the mknod(2), utimes(2) and read(2) system calls.

 st_mtime         Time when file data last modified.  Changed by the mknod(2), utimes(2) and write(2) system calls.

 st_ctime         Time when file status was last changed (inode data modification).  Changed by the chmod(2), chown(2), link(2), mknod(2), rename(2),
                  unlink(2), utimes(2) and write(2) system calls.

 st_birthtime     Time of file creation. Only set once when the file is created. This field is only available in the 64 bit inode variants. On filesys-
                  tems where birthtime is not available, this field holds the ctime instead.

Herramientas como cp , ditto y pax pueden preservar los metadatos de OS X cuando son llamados para copiar archivos. Estas herramientas no conservarán la hora de nacimiento si la hora de modificación es más reciente que la hora de nacimiento del archivo original. La hora de nacimiento del nuevo archivo se ajusta a la hora de modificación del archivo original.

Si compilas rsync con los parches fileflags, crtimes, hfs-compression entonces rsync puede manejar los metadatos de OS X y preservar el tiempo de nacimiento del archivo original en el nuevo archivo.

Por lo tanto, usted llamaría a rsync así.

rsync -avXN --delete SOURCE DESTINATION

Te sugiero que leas detenidamente el manual de rsync y entiendas las opciones que te he sugerido antes de intentar aplicarlas.

0 votos

Siguiendo tu sugerencia y este tutorial para actualizar rsync selfsuperinit.com/2014/01/04/ Utilicé el rsync -avXN --delete SOURCE DESTINATION y funciona muy bien, todas las fechas de modificación, de creación, etc, se conservan, así que problema resuelto, ¡gracias!

0 votos

-N no es una opción. ¿Te refieres a -n para el funcionamiento en seco? Sin embargo, esto sigue sin funcionar para mí. MacOS Sierra 10.12 con rsync 3.1.2 (actualizado manualmente). La fecha de creación en el destino está copiando la fecha de modificación en el origen.

0 votos

@lukejanicke- ¿Aplicaste los parches que mencioné? Si lo hiciste entonces el -N debería estar disponible. En rsync -h : -N, --crtimes preserve create times (newness) .

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X