Como o rsync sabe quais arquivos transferir?

4

Esta é apenas uma pergunta "sinto curiosidade". Ao sincronizar localmente (ou seja, de uma unidade para outra no mesmo host), como o rsync sabe quais arquivos não valem a pena transmitir? Eu acho que não faz uma comparação completa de arquivos (já que isso seria muito caro). Faz apenas verificação simples, como:

  • tamanho do arquivo
  • tempo de modificação

Nesse caso, acho que seria fácil enganar o rsync alterando o conteúdo do arquivo, mantendo o tamanho e redefinindo o tempo de modificação (se possível).

    
por dangonfast 30.05.2013 / 22:28

2 respostas

2

Isso é um equívoco popular - transferência delta com rsync . rsync foi projetado para fazer cópia mais rápida, não é necessária uma cópia delta. E para fazer cópia delta você precisa fazer checksums. Agora, 'rsync' NÃO verificará quais arquivos transmitir, mas quais arquivos podem ser ignorados. Geralmente, verifica o tamanho do remetente / mtime e compara com o final do recebimento.

Com rsync , você tem a opção de fazer a soma de verificação em cada arquivo (acho que é --checksum ). Claro que isso será lento ...

    
por 30.05.2013 / 22:59
0

O Rsync não faz 'incremental', é mais como 'diferencial'. ele não transfere as alterações (que pressupõem algum conhecimento de uma execução anterior), ele transfere as diferenças (comparando a origem com os arquivos de destino)

  • primeiro verifica o tamanho do arquivo, datas de criação / modificação, sinalizadores ... se for tudo idêntico, pule o arquivo.
  • se não houver arquivo com esse nome no destino, copie o arquivo arquivo inteiro.
  • se houver um arquivo no destino, ele calcula as somas de verificação para cada 2 KB do arquivo e as transferências para o remetente.

para mais informações, por favor, dê uma olhada nas páginas do Rsync Man.

link

    
por 14.06.2018 / 21:23

Tags