增量文件系统备份脚本

Eva*_*van 4 bash backup scripts rsync

我想每周运行以下不完整的脚本作为 cron 作业,将我的主目录备份到安装为 /mnt/backups 的外部驱动器

#!/bin/bash
#

TIMEDATE=$(date +%b-%d-%Y-%k:%M)

LASTBACKUP=pathToDirWithLastBackup

rsync -avr --numeric-ids --link-dest=$LASTBACKUP /home/myfiles /mnt/backups/myfiles$TIMEDATE
Run Code Online (Sandbox Code Playgroud)

我的第一个问题是如何将 LASTBACKUP 正确设置为最近创建的 /backs 中的目录?

其次,我的印象是,使用 --link-desk 意味着以前备份中的文件如果仍然存在,则不会在以后的备份中复制,而是象征性地链接回原始复制的文件?但是,我不想永远保留旧文件。在某个日期之前删除所有备份而不会丢失可能认为当前备份链接在这些备份中的文件的最佳方法是什么?基本上,我希望将某个日期之前的所有文件合并到某个日期,如果这比我最初提出问题的方式更有意义:)。--link-dest 是否可以创建硬链接,如果是这样,仅删除以前的目录实际上不会删除链接文件?

最后,我想在我的脚本中添加一行,用于压缩每个新创建的备份文件夹 (/mnt/backups/myfiles$TIMEDATE)。基于阅读这个问题,我想知道我是否可以使用这条线

gzip --rsyncable /backups/myfiles$TIMEDATE
Run Code Online (Sandbox Code Playgroud)

在我运行 rsync 以便顺序 rsync --link-dest 执行会找到已经复制和压缩的文件之后?

我知道这很多,非常感谢您的帮助!!

Rya*_*son 7

您可能希望使用为您自动完成整个过程的工具,例如rsnapshot,它似乎可以实现您正在尝试执行的操作。