我希望r快照不创建我所有文件的第二个副本,而只是有指向原始文件的硬链接,并且只保存更改的副本。
我有一个windows和linux服务器。我希望将我的linux系统的备份存储到windows系统上。不过,我也希望有用户可以使用的快照。
为了获得快照,我在linux上运行r快照。我不能将快照根目录放在windows上,因为我不能在不同的文件系统上保留文件属性,因此快照驻留在linux上。这意味着现在我的文件使用了双倍的空间(原始和快照)。
由于快照不是备份,所以我通过压缩文件并将zip文件发送到windows来创建备份。
问题是,由于我正在创建一个单独的备份,所以我不需要在linux上保留同一个文件的两个副本。因此,我希望r快照不创建我所有文件的第二个副本,而只是有指向原始文件的硬链接。
我可以简单地手动创建包含所有硬链接的第一个create /interval文件夹吗?(cp -al)
发布于 2017-01-11 17:10:40
R快照的工作方式,在第一次运行时,它会创建一个完整的副本。
在下一个文件中,它只存储已更改的文件。如果一个文件没有改变,它会创建一个硬链接到它。
这意味着现在我的文件使用了双倍的空间(原始和快照)。
是。你有工作文件和快照。
问题是,由于我正在创建一个单独的备份,所以我不需要在linux上保留同一个文件的两个副本。因此,我希望r快照不创建我所有文件的第二个副本,而只是有指向原始文件的硬链接。
如果您希望r快照在第一次运行时不复制整个树,那么问题是,由于它是同一个文件,所以它无法检测到更改。
FILE_A -> DATA1
RFILE_A1 -> DATA2
IF FILE_A == RFILE_A1:
HARDLINK RFILE_A1 RFILE_A2
ElSE
COPY FILE_A RFILE_A2这是基本的逻辑。
如果RFILE_A1是指向FILE_A的硬链接,问题是无法检测到FILE_A上的任何更改,因为底层数据是相同的。
简单的解释是,硬链接是一个名字。它指向光盘上的数据。因此,当您创建额外的硬链接时,您将重用磁盘数据。所以无法检测到变化。
简短的回答(TL;DR),你不能。你需要第一份完整的副本。
另一种选择可能是使用类似于Git的东西。
https://serverfault.com/questions/825620
复制相似问题