Normalmente, rsync
ignora os arquivos quando eles têm tamanhos e horários idênticos nos lados de origem e de destino. Essa é uma heurística que geralmente é uma boa ideia, pois evita a rsync
necessidade de examinar o conteúdo de arquivos que provavelmente são idênticos nos lados de origem e de destino.
--ignore-times
diz rsync
para desativar a heurística de horários e tamanhos de arquivo e, assim, transferir incondicionalmente TODOS os arquivos da origem para o destino. rsync
irá então ler todos os arquivos no lado da fonte, pois precisará usar seu algoritmo de transferência delta ou simplesmente enviar todos os arquivos por inteiro, dependendo se a --whole-file
opção foi especificada.
--checksum
também modifica a heurística de horários e tamanhos de arquivo, mas aqui ignora horários e examina apenas tamanhos. Os arquivos nos lados de origem e destino que diferem em tamanho são transferidos, pois são obviamente diferentes. Arquivos com o mesmo tamanho são rsync
somados de verificação (com o MD5 na versão 3.0.0+ ou com o MD4 nas versões anteriores), e os arquivos com somas diferentes também são transferidos.
Nos casos em que os lados de origem e destino são basicamente os mesmos, a --checksum
maioria dos arquivos é somada em ambos os lados. Isso pode levar muito tempo, mas o resultado é que o mínimo de dados mínimo será realmente transferido pela conexão, especialmente se o algoritmo de transferência delta for usado. Obviamente, isso é apenas uma vitória se você tiver redes muito lentas e / ou CPU muito rápida.
--ignore-times
por outro lado, enviará mais dados pela rede e fará com que todos os arquivos de origem sejam lidos, mas pelo menos não imporá o ônus adicional de computar muitos hashsums criptograficamente fortes nas CPUs de origem e de destino. Eu esperava que essa opção tivesse um desempenho melhor do que --checksum
quando suas redes são rápidas e / ou sua CPU relativamente lenta.
Eu acho que jamais usaria --checksum
ou estaria --ignore-times
transferindo arquivos para um destino em que suspeitava que o conteúdo de alguns arquivos estivesse corrompido, mas cujos tempos de modificação não foram alterados. Não consigo realmente pensar em outra boa razão para usar qualquer uma das opções, embora provavelmente existam outros casos de uso.
Steven segunda-feira
fonte
--checksum
útil junto com--itemize-changes
a verificação de backups. De vez em quando, meus scripts de backup executam uma comparação completa dessa maneira após a conclusão das atualizações diárias / semanais atuais. Recebi um e-mail com a mensagem urgente, se--itemize-changes
gerar algo inesperado, por isso sei que há um problema em potencial que devo investigar.--ignore-times
e especialmente--checksum
são necessários se um dos seus "arquivos" for um contêiner de arquivos Truecrypt, pois, por padrão, o carimbo de data e hora do arquivo não é atualizado. Consulte productforums.google.com/forum/#!topic/drive/gnmDp3UXEgs e ask-leo.com/why_wont_my_truecrypt_volume_backup.html--checksum
soma de verificação apenas os nomes de arquivos de origem na máquina de destino ou todos os arquivos no diretório de destino?a soma de verificação também é útil se você estiver usando outro sistema para sincronizar arquivos, que não preservou os carimbos de data e hora. A soma de verificação transfere apenas arquivos diferentes E atualiza todos os carimbos de data e hora no lado de recebimento para que correspondam
fonte
Um detalhe: a opção de soma de verificação verifica um arquivo inteiro em uma extremidade e depois o arquivo inteiro na outra extremidade. Se seus arquivos são um pouco grandes, esse tipo de paralelismo.
Além disso, se você tiver arquivos enormes, é mais provável que o tempo limite seja atingido
--checksum
, como não ocorre-I
.fonte
Em
info rsync
relação à--checksum
opção - "Como essa soma de verificação de todo o arquivo de todos os arquivos nos dois lados da conexão ocorre, além das verificações automáticas de soma de verificação que ocorrem durante a transferência de um arquivo, essa opção pode ser bastante lenta".fonte
A
--ignore-times
opção provavelmente resultará em todos os arquivos codificados em delta e o algoritmo de transferência delta (codificação delta) é pelo menos tão lento quanto a soma de verificação.Não sei se o rsync
--ignore-times
é inteligente o suficiente para evitar a "verificação automática após a transferência" no caso frequente em que a transferência delta resultará em nada sendo transferido.Para
--ignore-times
:Ambos
--checksum
e--ignore-times
serão "bastante lentos", mas--ignore-times
provavelmente ainda mais lentos (devido às 2 possibilidades acima).Boa pergunta - poste se encontrar alguma diferença de desempenho na prática.
fonte