Linux NTFS para NTFS rsync repetidamente recopiando arquivos

5

Desejo fazer backup de dados montados em uma partição NTFS de uma máquina linux para a partição NTFS de outra máquina linux. A unidade NTFS local é montada com todos os arquivos pertencentes a root.root, mas a unidade NTFS remota é montada usando plugdev (portanto, a propriedade do arquivo é root.plugdev).

O rsync aparentemente não pode copiar informações de proprietário / grupo e permissão nessa situação, então eu tenho tentado executar

sudo rsync -rltDvO --delete /ntfs/src/ [email protected]:/ntfs/dest/

No entanto, toda vez que eu executo esse comando, ele copia novamente TODOS os arquivos, em vez de apenas transferir os arquivos alterados. Eu tentei usar o sinalizador --modify-window, mas isso também não ajudou.

Atualização: não está recopiando todos os arquivos, mas está recalculando as somas de verificação (ou fazendo algum outro processamento, fazendo com que o nome do arquivo seja impresso) para cada arquivo. Isso se opõe ao que acontece entre as unidades e2fs, em que nenhum nome de arquivo é impresso se nenhuma alteração tiver sido feita na origem e no destino desde o último rsync. Eu estou supondo que este processamento é porque os timestamps não estão disponíveis em NTFS (?)

Próxima atualização: As permissões certamente parecem fazer parte dela: primeiro, usar também -u como um sinalizador rsync interrompeu o processamento de todos os arquivos no destino, mas isso não é o que eu quer. Em segundo lugar, se eu usar uma conta com acesso root (e sinalizadores rsync -avz) na máquina remota, posso alterar os registros de data e hora em arquivos e diretórios. No entanto, alguns arquivos continuam sendo recopiados, e a janela --modify-window parece ajudar um pouco (mas não completamente, parece - ainda estou tentando descobrir o porquê).

    
por Steve Kroon 19.07.2011 / 15:04

3 respostas

7

De acordo com minha segunda atualização, as permissões do meu usuário não permitiram que eu definisse os horários. Executar o rsync usando a conta raiz na máquina de destino, juntamente com --modify-window=5 , me deu o comportamento adequado. (Se você não tem acesso root no destino, o sinalizador -u pode ajudar, mas somente se você tiver certeza de que ninguém irá alterar os arquivos no sistema remoto.)

    
por 30.08.2011 / 13:18
4

O ideal é que você sempre queira usar robocopy ao lidar com variações de timestamps (até 2 segundos para FAT). Você pode entrar no Wine, mas conectar-se ao host remoto pode ser inconveniente.

link

edit: por comentário de Steve, esse recurso parece estar agora no rsync 3.0:

--modify-window

When comparing two timestamps, rsync treats the timestamps as being equal if they differ by no more than the modify-window value. This is normally 0 (for an exact match), but you may find it useful to set this to a larger value in some situations. In particular, when transferring to or from an MS Windows FAT filesystem (which represents times with a 2-second resolution), --modify-window=1 is useful (allowing times to differ by up to 1 second).

    
por 30.08.2011 / 11:59
0

Um petisco adicional que encontrei em casos como este: Padrão vs. Horário de verão. Eu tive um monte de arquivos em um rsync start syncing logo após mudança de fuso horário de um ano. Eu usei --modify-window = 3605 e consertei o problema. A desvantagem é que ele iria ignorar arquivos com uma data de modificação dentro de uma hora um do outro. No meu caso, não era esperado que os arquivos mudassem, exceto a cada poucos dias ou semanas, então tudo bem.

    
por 16.09.2016 / 18:19