program tip

파일 크기에 대한 하드 링크 계산?

radiobox 2021. 1. 5. 07:54
반응형

파일 크기에 대한 하드 링크 계산?


Unix Timestamps라는 이름의 디렉토리를 생성 한 다음 하드 링크 시스템 (--link-dest in rsync)을 사용하여 증분 백업을 생성하는 백업 시스템이 있으므로 일반적으로 첫 번째 백업은 매우 크고 이후 백업은 그보다 훨씬 큽니다.

이것은 내 현재 백업의 출력입니다.

root@athos:/media/awesomeness_drive# du -sh lantea_home/*
31G lantea_home/1384197192
17M lantea_home/1384205953
17M lantea_home/1384205979
17M lantea_home/1384206056
17M lantea_home/1384206195
17M lantea_home/1384207349
3.1G    lantea_home/1384207678
14M lantea_home/1384208111
14M lantea_home/1384208128
16M lantea_home/1384232401
15G lantea_home/1384275601
43M lantea_home/1384318801

모든 것이 정확 해 보이지만 예를 들어 마지막 디렉토리를 사용하십시오 lantea_home/1384318801.

root@athos:/media/awesomeness_drive# du -sh lantea_home/1384318801/
28G lantea_home/1384318801/

이 동작이 지속적으로 발생합니다. 두 번째 du 명령에서 디렉토리가 28G로 간주되는 이유는 무엇입니까?

주-출력은 -P 및 -L 플래그와 동일하게 유지됩니다.


하드 링크는 동일한 파일에 대한 실제 참조입니다 (inode로 표시됨). "원본"파일과 그 파일을 가리키는 하드 링크 사이에는 차이가 없습니다. 두 파일 모두 같은 상태가, 모두 이 파일에 대한 참조입니다. 이들 중 하나를 제거하면 다른 하나는 그대로 유지됩니다. 마지막 하드 링크 만 제거하면 파일이 제거되고 디스크 공간이 확보됩니다.

따라서 du한 디렉토리에서만 무엇을 보는지 물어 보면 동일한 내용을 가리키는 하드 링크가 다른 곳에 있는지 상관하지 않습니다. 단순히 모든 파일의 크기를 계산하고 합산합니다. 고려 된 디렉토리 내의 하드 링크 만 두 번 이상 계산되지 않습니다. du(모든 프로그램이 반드시 그럴 필요는 없습니다)

따라서 실제로 디렉터리 A의 du크기는 28G이고 디렉터리 B의 크기는 29G 일 수 있지만 함께 사용하면 여전히 30G 만 차지 du하며 A와 B의 크기 를 요청 하면 해당 숫자를 얻을 수 있습니다.

하드 링크가 관련된 경우 여러 디렉토리에서 디스크 사용.


그리고 "-l"스위치를 사용하면 모든 하위 디렉터리의 하드 링크도 계산되므로 증분 델타뿐만 아니라 전체 백업이 얼마나 큰지 알 수 있습니다.

참조 URL : https://stackoverflow.com/questions/19951883/du-counting-hardlinks-towards-filesize

반응형