Por que o rsync está vinculando apenas alguns arquivos inalterados?

Por que o rsync está vinculando apenas alguns arquivos inalterados?

Estou usando rsyncpara backups incrementais, usando a --link-destopção de apontar para o backup anterior para que os arquivos inalterados sejam vinculados a ele.

Isso está funcionando, mas não para todos os arquivos. Por exemplo, tenho um diretório no backup contendo arquivos que não foram modificados há mais de três anos. Mas, por alguma razão bizarra, apenas alguns deles são links físicos.

Inconvenientemente, os arquivos maiores são todos cópias (ou seja, há apenas um link para o arquivo, verificado via ls -l). Mas esse também é o caso de alguns arquivos menores e, de fato, alguns arquivos vinculados são maiores do que alguns arquivos copiados.

Não parece haver nenhum padrão que me permita prever quais serão as cópias e quais serão os links físicos. O comprimento e o tamanho do nome do arquivo parecem irrelevantes, assim como a data de modificação: há uma mistura de tudo isso nas listas copiadas e vinculadas. Dito isto, os arquivos fazemparecerpara ser consistente em vários backups, então o que aconteceu com um backup parece ter acontecido com o próximo backup também.

Existe algum atributo (técnico ou não) de um arquivo, algum recurso, que faria com que rsyncele fosse copiado em vez de vinculá-lo?

EDITAR 1:Mencionar "atributo" me fez pensar se havia algum atributo que ls -lnão está listado e que pode ter um impacto, mas fazer isso lsattrno diretório de origem mostra que todos os arquivos têm atributos idênticos.

EDITAR 2:Eu disse anteriormente (agora excluído) que as permissões eram todas iguais, mas isso estava errado. As permissões eram as mesmas no diretório de destino (backup). Estou usando --perms(para preservar permissões), então não sei por que as permissões não estão sendo preservadas. Eu também estava executando anteriormente como um usuário não root, mas agora estou tentando como root, caso isso faça diferença, mas as permissões ainda não estão sendo preservadas, o que talvez seja o motivo pelo qual alguns arquivos parecem ter sido alterados - o arquivo foi 't, mas suas permissões aparentemente têm (pelo menos, quando comparado ao backup anterior com suas permissões incorretas).

EDITAR 3:Agora acho que tem algo a ver com meu servidor CIFS. Há algo na mount.cifspágina de manual sobre a file_modeopção: "Se o servidor não suportar as extensões CIFS Unix, isso substituirá o modo de arquivo padrão." Quando executo mounto comando sem argumentos para listar as montagens, as opções listadas incluem file_mode=0755e dir_mode=0755qual está de acordo com o que vejo. Não consigo chmodum arquivo na montagem, então os arquivos que originalmente não tinham 0755permissões são considerados alterados e copiados novamente - e mais uma vez obtêm as permissões erradas no backup por causa da montagem.

Responder1

Mais uma solução alternativa do que uma solução, agora evito usar --perms/ -pou qualquer coisa que implique isso. Obviamente, minhas permissões não são copiadas, mas pelo menos ele não acha que um arquivo inalterado foi alterado apenas porque suas permissões são diferentes.

informação relacionada