参考:http://www.mikerubel.org/computers/rsync_snapshots/#Incremental
假设我们的数据文件在 /data 目录,需要将其备份到 /backup 目录,并且保留最近一个月的每天的快照,则:
第一天(首次备份, 注意目录之后的斜杠):
$ rsync -a --delete /data/ /backup/2020-11-01/
第二天 (注意此处的 --link-dest,它会创建 hard link 硬链接,因此非常节省空间):
$ rsync -a --delete --link-dest=/backup/2020-11-01 /data/ /backup/2020-11-02/
第三天:
$ rsync -a --delete --link-dest=/backup/2020-11-02 /data/ /backup/2020-11-03/
…
下个月第一天:
$ rm -rf /backup/2020-11-01 $ rsync -a --delete --link-dest=/backup/2020-11-30 /data/ /backup/2020-12-01/
这样一来,/backup 下会保留每天的完整备份,但却是最小化硬盘空间占用。其妙处在于使用了以下两个特性: