硬链接的实际用途

硬链接的实际用途

似乎大多数人说他们使用硬链接是为了进行增量备份1但由于我们已经有了更先进的备份方法,例如表里不一或者rdiff-备份,那么我能说它在今天的环境下几乎没用吗(从用户的角度来看)?

1 http://www.mikerubel.org/computers/rsync_snapshots/#Incremental

答案1

A关联是指向磁盘块的目录条目。换句话说,系统上的每个文件至少有一个硬链接。当您删除rm文件时,实际的系统调用是unlink(),它会删除目录条目。磁盘上的块没有改变,但链接消失了,因此文件从目录列表中消失了。

您个人可能从未使用过硬链接,但它们却遍布您的系统。例如:

$ ls -li /bin | grep 53119771
53119771 -rwxr-xr-x 3 root root  26292 2010-08-18 10:15 bunzip2
53119771 -rwxr-xr-x 3 root root  26292 2010-08-18 10:15 bzcat
53119771 -rwxr-xr-x 3 root root  26292 2010-08-18 10:15 bzip2

您可以看到bunzip2bzcatbzip都使用相同的 inode。本质上,它是一个具有三个名称的文件。您可以有该文件的三个副本,但为什么呢?这只会不必要地占用磁盘空间。

答案2

在我使用的某些服务器上迪尔维什,这是一个功能齐全的备份工具,具有旋转等功能。它使用您提到的硬链接来创建增量备份。

这些备份的优点是,如果cp发生完全故障,您可以从头开始恢复它们。而且只需几分钟即可完成设置。

例如我使用它来备份我的备份服务器(仅系统)以进行数据中心范围的裸机恢复

相关内容