Eu quero clonar um diretório muito grande (muitos terabytes de arquivos de vários gigabytes) em outro em outra unidade. Eu tenho usado este comando:
ionice -c 3 rsync -avz /path/to/sourcedir/ /path/to/destdir/
O processo leva mais de um dia e, na maioria das vezes, é interrompido, portanto, o uso de rsync
pode ser retomado sem reiniciar do zero. A teoria deveria ser que o comando acima é idempotente, então, quando qualquer coisa falhar, eu deveria ser capaz de reemitir o mesmo comando para que ele funcione onde foi interrompido e continue a partir daí.
Agora, como o objetivo da operação é retirar e reciclar a unidade de origem, antes de fazer isso, eu queria ter certeza de que todos os arquivos foram copiados corretamente. Então eu usei a abordagem em esta questão para comparar cada byte byte de arquivo. Com certeza, havia vários arquivos que tinham um hash diferente.
Portanto, a questão da teoria: o rsync
, diferentemente do que eu pensava ter entendido, funcionava meramente em nomes de arquivos, em vez de conteúdo, ou pelo menos comprimento?
E a (mais importante) questão prática: há outras opções que eu poderia estar usando para forçar o rsync
a produzir um clone exato do diretório fonte? Em particular, no caso em que rsync
é iniciado quando o diretório dest já possui um arquivo com o mesmo nome de um no diretório de origem, mas com conteúdo diferente, quero que o comando assegure que seja substituído (ou "concluído" ") com o arquivo original real do diretório de origem.