![하드 링크 백업 rsync 사용 - 하드 링크 파일을 다른 폴더로 이동할 수 있습니까? [복사]](https://linux55.com/image/194894/%ED%95%98%EB%93%9C%20%EB%A7%81%ED%81%AC%20%EB%B0%B1%EC%97%85%20rsync%20%EC%82%AC%EC%9A%A9%20-%20%ED%95%98%EB%93%9C%20%EB%A7%81%ED%81%AC%20%ED%8C%8C%EC%9D%BC%EC%9D%84%20%EB%8B%A4%EB%A5%B8%20%ED%8F%B4%EB%8D%94%EB%A1%9C%20%EC%9D%B4%EB%8F%99%ED%95%A0%20%EC%88%98%20%EC%9E%88%EC%8A%B5%EB%8B%88%EA%B9%8C%3F%20%5B%EB%B3%B5%EC%82%AC%5D.png)
나는 rsync를 사용하여 /hi 폴더의 증분 백업을 만들고 --link-dest=[some.server]/hi를 사용하고 있습니다. 내 서버의 rsync를 통해 백업되는 /hi/there 폴더에 1000장의 사진이 있다고 가정해 보겠습니다.
이제 이 사진들을 /hi/there에서 /hi/here로 옮기겠습니다. rsync가 이러한 1000장의 사진에 대한 하드 링크를 생성하도록 할 수 있습니까? 아니면 rsync가 항상 이러한 사진이 변경될 때마다 새 복사본을 만들도록 할 수 있습니까(단지 다른 폴더로 이동했음에도 불구하고).
fslint와 같은 것과 결합하면 rsync가 1000개의 파일이 서로 다른 디렉토리에 있다는 것을 인식하고 복사본 대신 하드 링크를 생성할 수 있는 것 같습니다.
답변1
많은 양의 데이터를 이동할 때(백업에 두 개의 복사본을 저장하지 않음으로써 절약된 공간은 추가 메타데이터 세트를 저장하는 데 사용되는 백업 공간보다 커야 함) 다음과 같이 몇 번 수행했습니다.
- 의 각 파일에 대해
/hi/there
동일한 이름의 하드 링크를 생성합니다./hi/here
- 백업하기
- 파일/하드 링크 삭제(하드 링크를 생성할 때 파일에 대한 이전 링크와 새 링크 간에는 실제로 차이가 없습니다)
/hi/there
물론 이전 백업에는 각 파일의 복사본 하나만 포함되며, 중간 백업에서는 새 이름을 동일한 복사본(백업 내)에 연결하며, 향후 백업에서는 파일에 다른 이름이 있는지 전혀 모르고 새 이름만 저장됩니다. 복사본이 기존 복사본에 연결됩니다.
추가 복사본을 위한 백업 공간이 없는 경우 1단계와 3단계를 수행하는 데 방해가 없으며 2단계 사이에 충분한 시간이 있으면 정기적으로 예약된 백업이 될 수 있습니다.
백업에 이 추가 복사본을 포함하지 않으려면 새 백업을 만들 때 해당 복사본을 삭제할 수 있습니다.
답변2
--link-dest
,reference 를 사용하면 /hi/there
파일에 하드 링크가 생성됩니다 rsync
. 하드 링크 수를 표시하는 명령을 hi/here
실행하여 이를 확인할 수 있습니다 . ls -l
파일이 고유한 경우 숫자 1만 표시됩니다.
https://superuser.com/a/12975
ionode
확인하는 또 다른 방법은 아래 설명된 대로 파일의 고유 번호를 보고 두 폴더 간에 비교하는 것입니다.
https://superuser.com/a/12974
폴더를 비교하여 이를 확인할 수도 있지만 개별 파일을 비교하는 것이 더 쉽다는 것을 알았습니다.
inode로 두 폴더를 구별하는 방법
증분 rsync 백업에서도 동일한 문제가 발생했으며 추가 공간을 사용하지 않고도 하드 링크가 올바르게 생성되었는지 확인할 수 있었습니다.