我有一台带有ext4
文件系统的运行Ubuntu 14.04.3 LTS的家庭服务器,我定期从各种设备向其中备份数据。
现在,我已经设置了带有ZFS
文件系统的外部USB HDD,并希望将所有数据从家庭服务器备份到该USB驱动器上。并且由于我ZFS
在外部驱动器上使用,所以我也想使用ZFS
的快照功能。
因为我将文件从复制ext4
到ZFS
,所以无法使用该zfs send
命令。因此,我坚持rsync
。
我已经使用rsync
了一段时间,所以我对此非常熟悉。但是,由于我将在目标文件系统上执行快照,因此我想浪费尽可能少的空间。
我碰到了这篇博客文章,它使用以下命令:
/usr/bin/rsync -axH --no-whole-file --inplace --delete / /$backup_target/root/
除了常见的标记(如-a
,)外-x
,--delete
它还使用:
-H
(硬链接),--no-whole-file
(强制启用delta-xfer算法),以及--inplace
(更新文件夹而不是进行新备份)。
我的问题:这些标志是否足够?还是应该添加或删除一些标志?
备份流程如下:
- 每次使用rsync备份到同一目录
- 使用以下命令创建该目录的快照
zfs snapshot backup@'date +%Y%m%d'
我猜这--inplace
是必须的(因为每次都备份到同一目录)。可能也是如此,--no-whole-file
因为它仅复制更改的数据块。但是呢-H
?我应该添加其他标志吗?
-x
这没有多大意义。我也没有在fstab中使用ACL,因此-A
可能也没有用。我也不需要--relative
,--delete-excluded
如果我不包含任何内容,则会添加。另一方面,-X
它--numeric-ids
看起来很有用,所以我可能会使用它们。您同意这一点,--inplace
并且--no-whole-file
也很好用吗?
-x
可能就是您想要的(除非您要递归将备份目标目录复制到它自己中...递归地复制。)
x
。我一直在使用它,但是没有意识到它会阻止递归复制:)如果您愿意,可以将所有内容放入答案中,以便为您提供奖励。
-aAHX --delete --numeric-ids --relative --delete-excluded
一些--exclude
参数的类似情况下运行rsync 。您可能希望以该参数集作为起点。-x
根据文件系统的设置,使用是否合适。