Retoma a transferência de um único arquivo por rsync

20

No Ubuntu, eu quero copiar um arquivo grande do meu disco rígido para uma unidade removível pelo rsync. Por alguma razão ou outra, a operação não pode ser concluída em uma única execução. Então eu estou tentando descobrir como usar o rsync para retomar a cópia de arquivos de onde foi deixado da última vez.

Eu tentei usar a opção --partial ou --inplace, mas junto com --progress, achei rsync com --partial ou --inplace realmente começa do início ao invés do que foi deixado da última vez. Chegar a interromper o rsync manualmente e verificar o tamanho do arquivo recebido também confirma o que eu encontrei.

Mas com o --append, o rsync começa do que foi deixado da última vez.

Estou confuso como eu vi na manpage --partial, --inplace ou --append parecem estar relacionados a retomar a cópia do que foi deixado da última vez. Alguém pode explicar a diferença? Por que --partial ou --inplace não funcionam para retomar uma cópia? É verdade que para resumir uma cópia, o rsync tem que trabalhar com a opção --append?

Além disso, se um arquivo parcial foi deixado por mv ou cp não por rsync, o rsync --append corretamente?

Obrigado e cumprimentos!

    
por Tim 25.09.2010 / 22:32

1 resposta

23

Olhando algumas páginas para o rsync:

--append
This causes rsync to update a file by appending data onto the end of the file, which presumes that the data that already exists on the receiving side is identical with the start of the file on the sending side.

--inplace
This option changes how rsync transfers a file when its data needs to be updated: instead of the default method of creating a new copy of the file and moving it into place when it is com- plete, rsync instead writes the updated data directly to the destination file.

--partial
By default, rsync will delete any partially transferred file if the transfer is interrupted. In some circumstances it is more desirable to keep partially transferred files.

Parece que, se o arquivo for muito grande, você desejaria usar --partial --append . ( --append implica --inplace ) Se este arquivo grande mudar, então, elimine o --append e o rsync verificará o início do arquivo para garantir que ele também corresponda ao arquivo de origem. --inplace parece perigoso, exceto se você estiver rsyncing um arquivo grande, você não quer que o rsync crie um novo arquivo temporário da parte inicial, continue a transferência, então remova o arquivo antigo para colocar o novo arquivo no lugar . A transferência seria mais rápida se você pudesse usar o mesmo arquivo, sem mencionar que o espaço em disco necessário para a transferência seria menor.

Além disso, descobri que, de um ponto de suporte de transferência de arquivos inteiro, uma cópia é mais rápida que o rsync. No entanto, se eu precisasse atualizar um arquivo, eu fiz o rsync sincronizar o arquivo mais rápido do que retransferindo o arquivo inteiro novamente. (como eu disse acima) o Rsync deve ser capaz de retomar a partir de um cp.

Espero que isso ajude.

    
por 26.09.2010 / 21:40

Tags