从子卷/快照中排除隐藏目录

Eso*_*tes 4 btrfs

我正在使用快照来备份我的@home子卷的数据。但是我想备份的真正重要的数据(像我的所有文件,这些文件中@home,而不是隐藏的目录,因为我不是在备份兴趣.cache经常改变和其他的东西,因为这会导致空间很大浪费我的增量备份解决方案。

我能否以某种方式实现它,我的真实数据是一个子卷,home而无需创建一个home包含所有数据的目录并且是一个自己的子卷,或者这在设计上是不可能的?

我的备份方法类似于:https : //btrfs.wiki.kernel.org/index.php/Incremental_Backup

ign*_*nis 5

点文件对文件系统没有特殊意义,btrfs send目前(2014 年 2 月)不能从目标子卷中排除文件或目录。

但是,btrfs subvolume snapshot不排除包含在目标子卷中的子卷(它在快照中创建空目录),所以

  • 您可以用子卷替换要排除的目录。

rsync或图形前端,例如grsync,可以排除文件和目录并允许增量备份。

如果您将参数--inplace赋予rsync,它只会覆盖文件中已更改的不同部分,而不是重写文件的全部内容。根据定义,这是一个增量备份,可以节省 btrfs 上的空间。

指示:

  • 备份@home第一次用btrfs send/receive
    做进一步的备份:创建备份的快照@home,然后运行rsync将当前家复制到新创建的快照上,并记住给rsync参数--inplace

rsync允许对备份过程进行广泛的自定义,您可以通过man rsync在终端上运行来读取参数列表。

为了完整起见,我将添加另一种方法,一旦你知道如何使用它是没有用的rsync“正常”的副本(后去重复:rsynccp或任何其他)。

  • 正常复制文件,然后使用Bedup进行重复数据删除。(引入了一个支持内核 3.12 的新 Bedup 分支,但在撰写本文时它不适用于 Ubuntu,因为即使是 Ubuntu 13.10 也没有这样的最新内核)。如果你传递--inplacersync,这不是必需的,如上所述。

说到备份:请记住,btrfs 是实验性的,bedup 也是如此。