我是 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。