Estou procurando um utilitário de backup com backups incrementais, mas de uma maneira mais complicada.
Eu tentei rsync, mas não parece ser capaz de fazer o que eu quero, ou mais provavelmente, eu não sei como fazer isso.
Então este é um exemplo do que eu quero alcançar com isso. Tenho os seguintes arquivos:
testdir
├── picture1
├── randomfile1
├── randomfile2
└── textfile1
Eu quero executar o utilitário de backup e basicamente criar um arquivo (ou um tarball) de todos esses arquivos em um diretório diferente:
$ mystery-command testdir/ testbak
testbak
└── 2020-02-16--05-10-45--testdir.tar
Agora, digamos que no dia seguinte, eu adicione um arquivo, de modo que minha estrutura se pareça com:
testdir
├── picture1
├── randomfile1
├── randomfile2
├── randomfile3
└── textfile1
Agora, quando executo o comando misterioso, obterei outro tarball para esse dia:
$ mystery-command testdir/ testbak
testbak
├── 2020-02-16--05-10-45--testdir.tar
└── 2020-02-17--03-24-16--testdir.tar
Aqui está o kicker: eu quero que o utilitário de backup detecte o fato de que picture1
, randomfile1
, randomfile2
e textfile1
não foram alterados desde o último backup, e apenas faça backup dos arquivos novos/alterados, que neste caso é randomfile3
, de modo que:
tester@raspberrypi:~ $ tar -tf testbak/2020-02-16--05-10-45--testdir.tar
testdir/
testdir/randomfile1
testdir/textfile1
testdir/randomfile2
testdir/picture1
tester@raspberrypi:~ $ tar -tf testbak/2020-02-17--03-24-16--testdir.tar
testdir/randomfile3
Então, como último exemplo, digamos que no dia seguinte eu mudei textfile1
e adicionei picture2
e picture3
:
$ mystery-command testdir/ testbak
testbak/
├── 2020-02-16--05-10-45--testdir.tar
├── 2020-02-17--03-24-16--testdir.tar
└── 2020-02-18--01-54-41--testdir.tar
tester@raspberrypi:~ $ tar -tf testbak/2020-02-16--05-10-45--testdir.tar
testdir/
testdir/randomfile1
testdir/textfile1
testdir/randomfile2
testdir/picture1
tester@raspberrypi:~ $ tar -tf testbak/2020-02-17--03-24-16--testdir.tar
testdir/randomfile3
tester@raspberrypi:~ $ tar -tf testbak/2020-02-18--01-54-41--testdir.tar
testdir/textfile1
testdir/picture2
testdir/picture3
Com este sistema, eu economizaria espaço apenas fazendo backup das alterações incrementais entre cada backup (com obviamente o backup mestre que tem todos os arquivos iniciais), e teria backups das alterações incrementais, por exemplo, se eu fizesse uma alteração no dia 2, e alterei a mesma coisa novamente no dia 3, ainda consigo obter o arquivo com a alteração do dia 2, mas antes da alteração do dia 3.
Eu acho que é meio como o GitHub funciona :)
Eu sei que provavelmente poderia criar um script que executasse um diff e selecionasse os arquivos para backup com base no resultado (ou mais eficientemente, basta obter uma soma de verificação e comparar), mas quero saber se há algum utilitário que possa fazer isso ta mais facil :)