Estou tentando sincronizar literalmente milhares de arquivos de vários tamanhos e gostaria de ter uma cópia 1:1 dos arquivos. Isso significa que a integridade dos arquivos já presentes deve ser verificada e, se houver uma soma de verificação errada, o arquivo precisará ser sobrescrito. A chamada transferência delta só é necessária neste momento devido à falha parcial da transferência.
Aparentemente minha montagem é meio instável e falha após 300-400GB de transferência usando cp
ou rsync
.
Eu fiz o seguinte antes disso:
- Montei o armazenamento e fiz isso
cp -r src dest
, ele falhou depois de 300 GB porque a montagem caiu e ocorreu um erro (aparentemente não tenho mais o erro) - Montei o armazenamento novamente e fiz isso
rsync -aP src dest
, ele falhou depois de 400 GBrsync error: some files/attrs were not transferred (see previous errors) (code 23) at main.c(1338) [sender=3.2.7]
porque a montagem falhou novamente. Considerando o tamanho do arquivo, ele provavelmente substituirá a maioria dos arquivos. - Eu verifiquei meu log do kernel e não encontrei nada (
sudo dmesg
)
Encontrei um sinalizador de reconexão para minha montaria, mas não seria instantâneo.
- Há um sinalizador rsync chamado
-c
que calcula as somas de verificação, mas ele também faz a chamada transferência delta ou preciso adicionar mais sinalizadores?
Qual a melhor forma de resolver esse problema em questão?
ATUALIZAÇÃO 1
Corrija-me se estiver errado, mas acho que o problema em questão era que o armazenamento tinha proprietários e grupos de usuários e grupos diferentes dos do rsync. Para elaborar: cp -r
copiou os arquivos e alterou sua propriedade e propriedade do grupo para a cópia do usuário, enquanto o rsync parece copiar o arquivo 1:1 com o mesmo usuário e propriedade do grupo... Provavelmente é por isso que a transferência estava sobrescrevendo arquivos antigos...