我正在寻找具有增量备份的备份实用程序,但方式更复杂。
我尝试了 rsync,但它似乎无法做我想做的事,或者更可能的是,我不知道如何让它做到这一点。
所以这是我想用它实现的一个例子。我有以下文件:
testdir
├── picture1
├── randomfile1
├── randomfile2
└── textfile1
我想运行备份实用程序并基本上在不同的目录中创建所有这些文件的存档(或压缩包):
$ mystery-command testdir/ testbak
testbak
└── 2020-02-16--05-10-45--testdir.tar
现在,假设第二天,我添加了一个文件,我的结构如下所示:
testdir
├── picture1
├── randomfile1
├── randomfile2
├── randomfile3
└── textfile1
现在,当我运行神秘命令时,我将获得当天的另一个 tarball:
$ mystery-command testdir/ testbak
testbak
├── 2020-02-16--05-10-45--testdir.tar
└── 2020-02-17--03-24-16--testdir.tar
这是踢球者:我希望备份实用程序检测自上次备份以来没有更改的事实,并且仅备份新/更改的文件,在这种情况下是picture1
,例如:randomfile1
randomfile2
textfile1
randomfile3
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
因此,作为最后一个示例,假设第二天我更改了textfile1
,并添加了picture2
and 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
使用这个系统,我将通过仅备份每个备份之间的增量更改来节省空间(显然主备份包含所有初始文件),并且我将备份增量更改,例如,如果我进行了更改在第 2 天,并在第 3 天再次更改相同的内容,我仍然可以获取第 2 天更改的文件,但在第 3 天更改之前。
我认为这有点像 GitHub 的工作方式 :)
我知道我可能会创建一个运行差异的脚本,然后根据结果选择要备份的文件(或者更有效地,只需获取校验和并进行比较),但我想知道是否有任何实用程序可以做到这一点容易一点:)