Se um conjunto de arquivos (vários GBs cada um) e cada um muda um pouco todos os dias (em locais aleatórios, não apenas as informações anexadas no final), como ele pode ser copiado com eficiência? Quero dizer, no sentido de que apenas as partes alteradas são atualizadas, e não os arquivos inteiros. Isso significaria a diferença entre copiar alguns Kb aqui e ali ou alguns GBs.
9
diff
vai fazê-lo #diff
pode ser capaz de relatar diferenças, mas aqui o problema está copiando as pequenas diferenças.rsync
é melhorRespostas:
O programa rsync faz exatamente isso. Na página do manual:
fonte
rsync
compara partes de arquivos usando somas de verificação contínuas.rsync -av --progress --partial --inplace arch-test1.qcow2.bak arch-test1.qcow2
Você provavelmente deseja um programa de backup com desduplicação moderno. Confira o BorgBackup .
Isso fará vários backups de cada versão do seu arquivo grande, mas compartilhará o conteúdo comum entre as diferentes versões; portanto, o espaço total usado para uma determinada versão do seu arquivo grande será apenas um pouco mais do que o espaço total em disco para um único versão, assumindo que as diferentes versões diferem apenas ligeiramente.
fonte
Se você tiver IO limitado de alguma forma, use um sistema de arquivos como o BTRFS ou o ZFS que suporte diretamente backups incrementais sem precisar encontrar as diferenças nos arquivos, como o que
rsync
deve ser feito.O uso
rsync
será lento e intensivo em IO.Como se qualquer aplicativo que estiver gravando alterações nos arquivos tiver alguma limitação de IO, o uso
rsync
levará ciclos significativos de IO para fora do aplicativo, e é por isso que os arquivos existem. E se o seu processo ou sistema de backup tiver IO-limitado,rsync
você retirará os ciclos de IO da sua largura de banda de backup disponível.Apenas o Google "rsync está lento". Por exemplo: o rsync é muito lento (fator 8 a 10) comparado ao cp na cópia de arquivos do nfs-share para o dir local
fonte