Rsync - 将增量备份结果输出到不同的文件夹?

Rsync - 将增量备份结果输出到不同的文件夹?

我是 Unix 系统的新手,所以如果这听起来有点儿像菜鸟的话,请耐心等待。

使用 rsync 进行增量备份的最常见方法是这样做

rsync -av --delete <source> <destination>

有没有办法做到这一点,即比较目录 1 与目录 2,然后将输出存储在目录 3 中?

基本上,我想要的是拥有一系列每日增量备份,并以一次完整备份作为基础。

如果我有这些文件夹,并且今天是20130103

/folder/to/back/up <-- source
/backup/base <-- base
/backup/20130101 <-- incremental
/backup/20130102 <-- incremental

我想/folder/to/back/up与之进行比较/backup/base并将结果存储在新文件夹中/backup/20130103

答案1

听起来你确实想要快照,它是 rsync 和其他几个工具的包装器。它会自动构建一个非常接近您想要的增量备份结构。

答案2

rsync 标志看看

--compare-dest=DIR      also compare received files relative to DIR
--copy-dest=DIR         ... and include copies of unchanged files
--link-dest=DIR         hardlink to files in DIR when unchanged

例如

rsync -aP --link-dest=PATHTO/$PREVIOUSBACKUP $SOURCE $CURRENTBACKUP

该文章的基本原理(“适用于每个 Unix 的时间机器”)已由许多不同的程序以多种不同的方式实现,rsnapshot 就是其中之一。

迪尔维什值得特别提及(原作者--link-dest为 rsync 贡献了补丁);它是一个利用 rsync 和硬链接(类似于 rsnapshot)的 Perl 备份系统,带有带日期戳的目标文件夹、可变到期规则、排除规则等;由于它使用硬链接,每个备份都会作为“完整备份”出现在文件系统中,但只会复制“增量”更改。

如果您有(或可以安装)Perl,我强烈建议您使用 Dirvish。

相关内容