Sim, desduplicação das ferramentas de backup, como restic
e borgbackup
faria isso.
Eles detectariam que uma determinada quantidade de dados (não necessariamente um arquivo inteiro) já estava presente no backup mais antigo e não o armazenariam novamente. Ele também detectaria o mesmo trecho em outros arquivos, então suas quinze cópias de um mesmo arquivo MP3 só seriam armazenadas uma vez.
Eu o uso em uma máquina onde tenho dois conjuntos de arquivos JPEG, um no arquivo de fotos "Photos" do macOS e, em seguida, as mesmas fotos que os originais na hierarquia de diretórios estruturada com base nas datas. Isso é 2 * 60 Gb de dados, mas restic
armazena apenas 60 Gb, já que está desduplicando.
Outro exemplo é outra máquina (OpenBSD desta vez), onde eu tenho dois ou três checkouts diferentes do mesmo repositório Git (não pergunte por quê). Eles também são desduplicados na medida do possível e usarão aproximadamente o tamanho obtido pelos arquivos que são realmente diferentes (o diretório 270 Mb .git
é basicamente o mesmo e será armazenado apenas uma vez no backup).
Mover um diretório também resultaria em alguns kilobytes ou mais de dados sendo gravados no backup (dependendo do tamanho da estrutura de diretórios). Como teste, renomei um desses repositórios Git de 270 Mb e executei um backup. Isso gerou pouco mais de 500 Kb para o backup (esses dados seriam informações sobre os locais dos arquivos e seus metadados, como propriedade e timestamps, etc.)
Uma ferramenta de backup de desduplicação também permite fazer backup de dados de várias máquinas para o mesmo local e ter esses dados desduplicados nas máquinas, para que, por exemplo, sua pasta do Dropbox em três máquinas não seja armazenada três vezes ( isso é pelo menos possível com restic
).
A desvantagem de usar uma ferramenta de backup de desduplicação é que você não pode procurar os backups como arquivos ( borgbackup
pode permitir a montagem de um instantâneo como um diretório de alguma forma, mas ainda não investiguei porque usa o Fuse que não é suportado pelo OpenBSD). Seria necessário usar a ferramenta de backup para restaurar um instantâneo ou os arquivos desejados de um instantâneo.
Estou usando restic
porque isso me permite fazer o backup de SFTP para um servidor em que o restic
em si não está instalado.
borgbackup
permite a compactação dos fragmentos de dados, mas acho que é necessário que borgbackup
esteja instalado na máquina em que os backups estão ativos. borgbackup
também é (IMHO) um pouco mais difícil de configurar.