rsync copia arquivos não modificados entre diferentes sistemas de arquivos

4

Eu tento sincronizar arquivos entre duas máquinas usando o rsync, mas parece copiar todos os arquivos independentemente do tempo de modificação do arquivo. Duas chamadas consecutivas do comando produzem os mesmos resultados, por isso está claramente quebrado.

O comando em questão é:

rsync -r local/path user@host:/remote/path -v

O sistema de arquivos local é ext4 enquanto o controle remoto é ext3. Eu suspeito que o problema está aqui, como eu tive problemas semelhantes quando tentei sincronizar arquivos entre o mesmo sistema ext3 e uma unidade NTFS. A conversão do último para ext3 resolveu o problema.

Não posso recorrer à conversão desta vez. Alguém sabe a origem exata do problema e de qualquer solução possível?

    
por Joó Ádám 06.01.2013 / 02:54

1 resposta

6

Por padrão, o rsync não copia arquivos com base no tempo e tamanho de modificação.

Se você não estiver usando -t na linha de comando, o rsync não preservará os tempos de modificação e a verificação de tamanho + tempo obviamente falhará.

Também há uma boa chance de que a precisão do registro de data e hora de seus sistemas de arquivos diferentes esteja causando o problema - ext4 suporta microssegundos, enquanto ext3 está limitado a segundos.

Tente adicionar um --modify-window=1 à linha de comando, para informar ao rsync para tratar os registros de data e hora com precisão de um segundo.

Como alternativa, você pode atribuir -c para forçar a soma de verificação dos arquivos, mas isso será, naturalmente, muito mais lento que a verificação mtime + size, mesmo que isso economize a largura de banda.

    
por 06.01.2013 / 03:03