¿Por qué Rsync vuelve a copiar los archivos cuando el tamaño y la fecha mostrada coinciden?

Eva Wong es la Redactora técnica y manitas residente en ZimaSpace. Una geek de toda la vida con pasión por los homelabs y el software de código abierto, se especializa en traducir conceptos técnicos complejos en guías accesibles y prácticas. Eva cree que el autoalojamiento debe ser divertido, no intimidante. A través de sus tutoriales, empodera a la comunidad para desmitificar las configuraciones de hardware, desde construir su primer NAS hasta dominar los contenedores Docker.

Rsync puede volver a copiar archivos cuyo tamaño visible y fecha coinciden cuando sus tiempos de modificación sin procesar, reglas de comparación u opciones de transferencia aún difieren.

Los exploradores de archivos suelen ocultar las marcas de tiempo de subsegundos y mostrar solo una fecha local redondeada, mientras que Rsync compara los metadatos expuestos por cada extremo y también puede recibir instrucciones para ignorar las coincidencias de tiempo, comparar sumas de comprobación o actualizar metadatos. Por lo tanto, un trabajo puede mostrar el mismo tamaño y fecha legibles para una persona y aun así seleccionar el archivo porque los nanosegundos difieren, un sistema de archivos redondea la hora, un cliente SMB reescribe la marca de tiempo o el comando omite explícitamente la comprobación rápida normal.

Confirma que Rsync está seleccionando el archivo para transferir sus datos

Ejecuta el trabajo como una simulación con cambios detallados y guarda el comando exacto, la ruta de origen, la ruta de destino, las versiones de Rsync y un nombre de archivo representativo.

El manual oficial de Rsync explica que la comprobación rápida predeterminada compara el tamaño del archivo y la fecha de modificación, mientras que la salida detallada identifica qué atributos provocaron una actualización.

Si el código detallado muestra solo cambios de permisos, propietario, grupo, ACL o atributos extendidos, es posible que el archivo se vuelva a revisar sin retransmitir toda su carga útil.

Compara los tiempos de modificación sin procesar en lugar de la fecha mostrada

Lee los tiempos de modificación de origen y destino con precisión de nanosegundos y compara sus valores numéricos de época desde los sistemas que ejecutan el emisor y el receptor.

La estructura stat de Linux admite marcas de tiempo de nanosegundos, por lo que dos archivos que se muestran en el mismo segundo aún pueden tener valores diferentes.

Un explorador que muestra solo minutos o segundos no puede demostrar que los tiempos de modificación subyacentes coincidan. Registra los valores sin procesar antes de volver a modificar los archivos.

Comprueba la precisión de las marcas de tiempo y la ventana de modificación

Identifica todos los sistemas de archivos de la ruta, incluidos FAT, exFAT, NTFS, SMB, NFS, la extracción de archivos comprimidos y los volúmenes extraíbles de preparación.

El manual de Rsync de Debian documenta el comportamiento de modify-window, incluida la tolerancia para sistemas de archivos que no pueden almacenar una precisión idéntica en las marcas de tiempo.

Usa una ventana distinta de cero solo después de medir la diferencia. Una ventana demasiado amplia puede ocultar un archivo realmente cambiado del mismo tamaño.

Audita las opciones que anulan la comprobación rápida normal

Inspecciona el comando programado completo y cualquier script envoltorio, interfaz del NAS, variable de entorno, archivo de inclusión o ajuste predefinido que añada opciones.

La referencia de Rsync de Ubuntu indica que ignore-times fuerza las actualizaciones, el modo de suma de comprobación sustituye la prueba de tiempo y size-only ignora la fecha de modificación.

Elimina únicamente la opción cuya causa hayas confirmado. El modo de suma de comprobación puede añadir lecturas intensivas incluso cuando se transfieren pocos datos por la red.

Comprueba si SMB o Windows reescriben la hora de destino

Calcula el hash y registra la marca de tiempo del destino inmediatamente después de la transferencia, después de cerrar la sesión SMB y después de volver a abrirla desde otro cliente.

Microsoft documenta que las aplicaciones pueden establecer y recuperar las marcas de tiempo de los archivos, mientras que los sistemas de archivos y las aplicaciones pueden actualizar campos individuales en momentos diferentes.

Si la hora del destino cambia solo después de que un indexador, una aplicación multimedia, un cliente en la nube o un flujo de trabajo SMB lo modifica, corrige ese proceso en lugar de Rsync.

Separa la fecha de modificación de otros metadatos

Compara la fecha de modificación, la fecha de cambio de estado, los permisos, la propiedad, las ACL, los atributos extendidos, los enlaces físicos y los enlaces simbólicos.

La utilidad stat de NetBSD expone los campos sin procesar del estado de los archivos, lo que ayuda a distinguir la fecha de modificación del contenido de otros cambios de metadatos.

Las opciones de archivos comprimidos, ACL, atributos extendidos, propietario o grupo pueden activar operaciones sobre los metadatos. Lee el código detallado en lugar de tratar cada ruta indicada como una transferencia completa de la carga útil.

Realiza una prueba con un archivo y corrige la diferencia mínima confirmada

Copia un archivo de prueba cerrado, conserva los metadatos previstos, vuelve a ejecutar el comando idéntico y compara la salida detallada, los bytes transferidos y las marcas de tiempo sin procesar.

El artículo de ZimaSpace sobre copias de seguridad incrementales inesperadamente grandes aborda causas más generales de las cadenas de copias de seguridad; este artículo aísla las reglas de selección de archivos de Rsync.

El problema se resuelve cuando una segunda ejecución sin cambios omite el archivo de prueba o realiza únicamente la actualización de metadatos que configuraste intencionadamente.

Preguntas frecuentes

¿Por qué las fechas parecen idénticas en el explorador de archivos?

El explorador puede redondear a segundos o minutos y mostrar la hora local, mientras que Rsync recibe una marca de tiempo de modificación más precisa.

¿El modo de suma de comprobación detendrá las copias innecesarias?

Puede evitar la transferencia cuando el contenido coincide pese a que las horas difieren, pero debe leer y calcular el hash de los archivos del mismo tamaño en ambos lados.

¿Las zonas horarias pueden causar transferencias repetidas de Rsync?

La visualización de la zona horaria por sí sola no debería cambiar las marcas de tiempo numéricas, pero las aplicaciones o los sistemas de archivos que las convierten o redondean sí pueden hacerlo.

Soporte y Consejos

Más para leer

Get More Builds Like This

Stay in the Loop

Get updates from Zima - new products, exclusive deals, and real builds from the community.

Stay in the Loop preferences

We respect your inbox. Unsubscribe anytime.