目前,我通过 cron 脚本每小时为我想要备份的目录创建 Borg 档案。然而,这并不完全理想。理想情况下,我希望在文件系统的该部分处于活动状态时每小时创建一次以上的备份。相反,有时其中一个目录可能会一次保持数周不变 - 因此,每小时创建存档只是浪费空间,而且我不想一直手动关闭或打开部分内容。
根据我的搜索,Linux 确实没有任何强大的连续备份系统。如果这个结论是错误的,那么请指出我正确的方向。
但如果这是真的,我想做下一个最好的事情 - 仅当文件发生更改时才创建存档(即,实时文件系统上的校验和与存档中文件的校验和不匹配......理想情况下) 。
有没有办法通过脚本、程序选项或其他方法来完成此任务?
谢谢。
答案1
尝试 --files-cache ctime,size 忽略 inode 并查看重复数据删除现在是否有效。在某些安装设备(如 sshfs 或其他一些设备)上,索引节点在每次安装时都会发生变化,因此应该忽略它们。更多信息请参阅 man borg-create。
答案2
Borg 会进行重复数据删除(仅复制新数据),因此这并不是绝对必要的,但我同意不需要的备份会给borg list
.
该脚本将查找文件夹中的最新文件,获取其父文件夹并将其与 borg 备份目录进行比较。
folder='<your folder to recurse'
bak='<your borg backup directory>'
recent="`find "$folder" "$bak" -type f -printf '%T+ %p\n'| sort -n | tail -n1 | awk '{ print $2 }'`"
echo "Most recent file: $recent"
if [[ "`dirname $recent`" == "$bak" ]]; then
echo "Archive is Up to date!"
else
echo "Ready to run Borg Backup..."
# >>>Insert borg backup command here<<<
fi