df와 du가 서로 다른 결과를 표시하는 이유를 이해하기 위해 스택에서 유사한 질문에 대한 약 22개의 답변을 읽었습니다. 하지만 내 관심사는 어느 것에 의존해야 하는가입니다. 실제로 어떤 보고서가 올바른가요?
Ubuntu 22.04 LT에는 부팅 디스크가 하나만 있고 기타/추가 외부 설치 디스크는 없지만 GCP Ubuntu 서버에서 df는 50GB 중 약 40GB의 디스크가 사용된 것으로 표시되는 반면 du와 df는 모두 49.9GB의 50g 사용을 표시합니다. . 어느 것이 사실인가요? 서버를 유지하는데 어려움을 겪고 있습니다. 내 디스크가 거의 100% 찼기 때문인가요, 아니면 4GB RAM과 2개의 공유 코어가 내 시스템 요구 사항에 충분하지 않기 때문인가요?
답변1
계산에 마운트된 모든 파일 시스템(RAM 및 의사 파일 시스템 포함)을 포함 du
하고 df는 실제 파일 시스템입니다. -x
du 명령에 추가해 보세요 .
그렇더라도 100% 정확하지는 않을 수 있습니다. 다양한 요인이 있습니다. 파일 시스템 유형, 파일 시스템 블록 크기, 물리적 블록 크기, 하드 링크, 참조 링크, 메타데이터, 스파스 파일 등 어쨌든 이는 일반적으로 정확한 계산이 아닙니다.
답변2
매뉴얼 페이지에 쓰여진대로 du
계산하십시오 .문서df
동시에 계산되는 공간 사용량파일 시스템디스크 공간 사용량. 따라서 df
이것은 귀하의 사용 사례에 더 적합한 도구입니다.
df
파티션(또는 디렉터리) 에 매개 변수를 전달하여 해당 파티션(또는 이를 호스팅하는 파일 시스템)에 남은 여유 공간을 확인합니다. 귀하의 경우에는 이것이 귀하가 찾고 있는 결과이며 @CR로 약 9GB의 여유 공간이 남아 있습니다. 댓글로 말해 보세요.
반면에 du
파일이나 디렉터리를 인수로 사용하면 디렉터리에 다른 파일 시스템의 하위 디렉터리가 포함되어 있으면 의미 없는 디스크 사용량을 얻게 됩니다. (출력에서 공간을 차지하지 않는 의사 파일 시스템인 를 du
탐색하려고 시도하는 방법을 관찰하십시오.) 이 경우 다른 파일 시스템의 디렉터리를 건너뛰는 aka 옵션을 /proc
사용해야 한다는 것을 기억해야 합니다 .-x
--one-file-system