rsync
我正在开发一个使用Google Drive 应用程序自动备份我的计算机的系统(我有一台 Macintosh 计算机)。 (此应用程序创建一个目录,其内容保存到 Google Drive 云中。)备份系统的想法是(自动)将文件复制到 Google Drive 目录(rsync
最好使用 ),然后将该目录上传到云。
然而,这个系统有一个主要缺点:内存浪费。我备份的每个文件都必须复制到计算机中的第二个位置,从而使文件使用的空间加倍。这将是很多建立硬链接而不是复制可以提高内存效率。我想使用硬链接复制我的目录树,然后在原始更改时更新副本。
我可以用来rsync
制作硬链接而不是副本吗?我认为这个选项可能是可行的link--dest=
,但我无法弄清楚。
编辑: 针对反馈的一些澄清。
- 此问题已被列为重复项 rsync --link-dest 无法按预期使用符号链接。我不明白为什么问题都是一样的。我认为相似性与使用
--link-dest=
创建硬链接的选项有关。但这就是我不明白该怎么做!所以我对重复的问题不满意。似乎--link-dest=
只有当您已经有一个备份来进行比较时,才可以使用硬链接。 - 与该网站的用户相比,我并不精通计算机。如果我的问题的答案是“这很简单,只需
rsync
更仔细地阅读手册页”或类似的内容,我就会这样做。 - 我非常高兴使用其他一些 bash 实用程序来实现我正在寻找的功能!我只是碰巧喜欢
rsync
,但我对其他选择持开放态度。pax
例如,JdeBP 建议使用。
答案1
通常的方法是(凭记忆写):
NEWBACKUP=`date +%s` # or some other format
cp -al "$OLDBACKUP" "$NEWBACKUP"
rsync -aH --delete "$SOURCE" "$NEWBACKUP"
查看使用 Linux 和 Rsync 轻松实现自动快照式备份
还有一个--link-dest
我从未正确研究过的 rsync 选项。