A baixa confiabilidade de registros de data e hora correspondentes sempre que os sistemas de arquivos formatados do Windows estão envolvidos, pode fazer com que os arquivos sejam constantemente mal interpretados como sendo diferentes e, portanto, o rsync acaba copiando tudo. Uma solução para essa baixa confiabilidade de registro de data e hora quando se trata de sistemas de arquivos formatados do Windows, é não comparar o registro de data e hora, mas comparar o conteúdo. O rsync tem a opção -c
, então no seu prompt de comando você pode tentar:
$ rsync -c --progress -v -r copy_to_home/ ~/
Explicação
- sem
-c
ou --checksum
, o rsync normalmente determina se deve atualizar um item ou não, comparando o tamanho do arquivo e os tempos de modificação, o que, como você viu, não é tão confiável quando envolve arquivos e diretórios Windows NTFS apesar de qualquer tentativa de fazê-lo funcionar melhor, como você fez com --modify-window=1
- se omitirmos a comparação de registro de data e hora ao comparar o tamanho, ainda poderá haver arquivos que terão o mesmo tamanho de arquivo antes e depois de uma alteração e, portanto, serão perdidos se o rsync comparar os tamanhos de arquivo
- especificar
-c
faz rsync executar somas de verificação nos arquivos de origem e de destino para fazer a comparação e a decisão. Assim, com checksums, o rsync está decidindo se transfere um arquivo ou não com base em seu conteúdo real, não em seus tempos ou tamanhos de modificação, garantindo assim que nada seja perdido nem desnecessariamente copiado
Desvantagens
- quanto maiores os arquivos, mais lento ele é executado, por isso, se você estiver usando o rsync com arquivos de tamanho gigabyte, é claro que seria lento. Seria, no entanto, uma melhoria em relação ao rsync, copiando desnecessariamente arquivos de tamanho gigabyte, se essa for a sua situação atual
- caso contrário, se você tem tipicamente apenas pequenos arquivos de configuração textual em seu diretório inicial que você deseja rsync, então, para computadores modernos, o atraso usando a soma de verificação pode nem ser perceptível
- ou se você tiver arquivos de tamanho gigabyte e esse processo estiver lento, use o cron para planejar o comando para ser executado fora dos horários de pico