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
0 votos
@Mark sospechaba que había que actualizar el rsync, cosa que he hecho para probar (actualizado a la versión 3.1.0) pero la fecha de creación (en el caso de esta nueva versión) no se conserva... Así que parte del problema está resuelto, ahora tengo uno nuevo. Tal vez tengo que utilizar diferentes opciones y no sólo el
-avE
?0 votos
@jackJoe la fecha de creación siempre cambia cuando un archivo obtiene un nuevo inodo (bueno, un ID de nodo de catálogo en hfs). Asumo que estás ejecutando un kernel de 64 bits, en cuyo caso la fecha de creación debería conservarse. ¿Compilaste rsync tú mismo?
0 votos
@fd0 sip, kernel de 64bit, y he compilado el nuevo rsync. Copiando con el finder (arrastrando y soltando) se conserva todo como se desea. También esta nueva cuestión es que la fecha de creación pasa a ser la misma que la de modificación (en este nuevo caso la fecha de modificación es correcta).
0 votos
@jackJoe Puedo reproducir algunas de tus observaciones. Para mayor claridad, las marcas de tiempo de 64 bits consisten en
access-modification-creation-birthtime
. En términos de Finder, la hora de nacimiento es la hora de creación. Una ejecución inicial dersync -av SOURCE DESTINATION
preserva la modificación del acceso y la hora de creación - la hora de creación se convierte en la hora en que rsync creó el inodo. Si los archivos se modifican en la carpeta SOURCE en la siguiente ejecución dersync
la hora de nacimiento del archivo DESTINO se cambia por la hora de creación del archivo FUENTE. - OS X 10.6, 64bit con rsync 3.1.1. Creo que es un problema de OS X y no de rsync, lo investigaré más a fondo.