¿Por qué rsync solo vincula algunos archivos sin cambios?

¿Por qué rsync solo vincula algunos archivos sin cambios?

Lo estoy usando rsyncpara copias de seguridad incrementales, usando la --link-destopción para apuntar a la copia de seguridad anterior para que los archivos sin cambios estén vinculados allí.

Esto funciona, pero no para todos los archivos. Por ejemplo, tengo un directorio en la copia de seguridad que contiene archivos que no se han modificado en más de tres años. Pero por alguna extraña razón, sólo algunos de ellos son vínculos físicos.

Lo inconveniente es que los archivos más grandes son todas copias (es decir, solo hay un enlace al archivo, verificado a través de ls -l). Pero ese también es el caso de algunos archivos más pequeños y, de hecho, algunos archivos vinculados son más grandes que algunos archivos copiados.

No parece haber ningún patrón que me permita predecir cuáles serán copias y cuáles enlaces físicos. La longitud y el tamaño del nombre de archivo parecen irrelevantes, al igual que la fecha de modificación: hay una combinación de todos estos en las listas copiadas y vinculadas. Dicho esto, los archivos noparecerser coherente en múltiples copias de seguridad, por lo que lo que sucedió con una copia de seguridad parece haber sucedido también con la siguiente.

¿Existe algún atributo (técnico o de otro tipo) de un archivo, alguna característica, que haría que rsyncse copie en lugar de vincularlo?

EDITAR 1:Mencionar "atributo" me hizo preguntarme si había algún atributo que ls -lno figura en la lista y que podría tener un impacto, pero hacerlo lsattren el directorio de origen muestra que todos los archivos tienen atributos idénticos.

EDITAR 2:Dije anteriormente (ahora eliminado) que los permisos eran todos iguales, pero eso estaba mal. Los permisos eran los mismos en el directorio de destino (copia de seguridad). Estoy usando --perms(para conservar los permisos), así que no sé por qué no se conservan los permisos. Anteriormente también estaba ejecutando como usuario no root, pero ahora lo estoy intentando como root en caso de que eso haga una diferencia, pero los permisos aún no se conservan, lo que tal vez podría ser la razón por la que algunos archivos parecen haber cambiado: el archivo no No, pero aparentemente sus permisos sí los tienen (al menos, en comparación con la copia de seguridad anterior con sus permisos incorrectos).

EDITAR 3:Ahora creo que tiene algo que ver con mi servidor CIFS. Hay algo en la mount.cifspágina de manual sobre la file_modeopción: "Si el servidor no admite las extensiones CIFS Unix, esto anula el modo de archivo predeterminado". Cuando ejecuto mountun comando sin argumentos para enumerar los montajes, las opciones enumeradas incluyen file_mode=0755y dir_mode=0755se relacionan con lo que veo. No puedo colocar chmodun archivo en el montaje, por lo que se considera que los archivos que originalmente no tenían 0755permisos han cambiado y, por lo tanto, se copian nuevamente y, una vez más, obtienen permisos incorrectos en la copia de seguridad debido al montaje.

Respuesta1

Más una solución alternativa que una solución, ahora evito usar --perms/ -po cualquier cosa que lo implique. Obviamente, entonces mis permisos no se copian, pero al menos no cree que un archivo sin cambios se cambie solo porque sus permisos son diferentes.

información relacionada