내 질문은 다음과 같이 시작됩니다. 실제로 내 디스크에 하드 링크가 있습니까(물론 "." 및 ".." 제외)? 이걸 어떻게 발견할 수 있을지 모르겠어요?
그렇지 않다면 질문에 대한 답변이 이루어진 것입니다.
rsync -a
그렇다면 하드 링크를 보존하기 위해 백업 루틴(현재 사용 중)을 조정하고 싶습니다 . 옵션을 본 적이 있지만 -H
매뉴얼 페이지의 다음과 같은 일부 설명이 걱정스럽습니다.
-a, --archive
...
Note that -a does not preserve hardlinks, because finding
multiply-linked files is expensive...
-H, --hard-links
...
It does NOT currently endeavor to break already existing hard links
on the destination that do not exist between the source files. ...
Note that rsync can only detect hard links between files that are
inside the transfer set...
그러면 디스크에 하드 링크가 있으면 어떻게 해야 합니까?
답변1
표준 배포본이 있는 경우 하드 링크가 거의 없으므로 일반적으로 너무 걱정할 필요가 없습니다. /bin
, sbin
, /lib/modules
, , 그리고 /usr
하드링크가 잔뜩 있으므로 백업하고 싶다면 -H 옵션을 사용하면 된다. 백업 디렉터리에는 하드 링크도 포함될 수 있습니다. 그렇지 않으면 직접 생성하지 않는 한 하드 링크가 없어야 합니다.
하드 링크된 파일이 포함된 디렉터리를 찾으려면 다음 명령을 사용해 보십시오( /
필요한 경우 다른 마운트 지점으로 교체).
sudo find / -xdev ! -links 1 ! -type d | xargs -n 1 dirname | sort -u