Simfs硬链接去向

Simfs硬链接去向

我在 centos 6.5 vps 服务器上有一个奇怪的硬链接。我猜这是人造的,但我不是做这件事的人。

df告诉一些信息。

[root@root]# df
Filesystem     1K-blocks      Used Available Use% Mounted on
/dev/simfs     209715200 128660820  81054380  62% /
none             4194304         4   4194300   1% /dev
none             4194304         0   4194304   0% /dev/shm
/dev/simfs     209715200 128660820  81054380  62% /var/www/username/data/www/test.site.biz/photo

ls -li没有说任何有用的东西

[root@vz65646 test.site.biz]# ls -li
total 7952
79435160 drwxr-xr-x 2 someuser someuser 8130560 Oct 25 20:52 photo

硬链接文件夹是photo.我的错误rm -rf test.site.biz导致了不好的事情发生。也就是说,其他地方的照片目录变干净了。

我认为恢复数据是不可能的。然而,我想弄清楚这里发生了什么,这样我就不会重复同样的错误两次。

非常感谢任何提示。

答案1

您有两个已安装的具有相似特征的文件系统:相同的设备名称、相同的磁盘使用情况。事实上,这些很可能是同一设备。例如,如果您在不同位置安装相同的网络文件系统,则可能会发生这种情况。鉴于这是一个本地文件系统,如来源绝地在评论中指出,这很可能是绑定挂载,由类似 的命令创建mount --bind /origin /var/www/username/data/www/test.site.biz/photo

如果您的系统足够新,您可以用于findmnt确认它是绑定安装。但无论如何,大多数文件系统类型不能同时安装在不同位置,因此拥有相同的设备足以证明这是绑定安装。

绑定安装提供了不同位置的目录树视图。就访问绑定挂载下的文件而言,它类似于在树中具有符号链接,即/var/www/username/data/www/test.site.biz/photo/somefile与 是相同的文件/origin/somefile,就好像/var/www/username/data/www/test.site.biz/photo是到 的符号链接一样/origin。但/var/www/username/data/www/test.site.biz/photo它不是一个符号链接,而是一个目录。

由于/var/www/username/data/www/test.site.biz/photo是一个目录,因此递归遍历会深入其中。因此rm -rf删除了 下的文件/original,因为/original/var/www/username/data/www/test.site.biz/photo是同一目录,只是恰好显示在不同的位置。

答案2

我对此事想到了几点:

  • mount --bind在您确切知道自己在做什么之前,这是一个坏主意。最好使用符号链接。
  • 使用文件夹时很难检测到安装。这是某种服务器范围(不是您在移动文件夹时所想的)。
  • umount your_directory删除绑定但不会损害原始文件夹。
  • 您可以通过命令列出所有安装findmnt。绑定安装座将带有方括号。

相关内容