我在 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
。綁定安裝座將帶有方括號。