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
. 바인드 마운트에는 대괄호가 있습니다.