내 시스템에서 무엇이 공간을 차지하고 있는지 어떻게 알 수 있나요?

내 시스템에서 무엇이 공간을 차지하고 있는지 어떻게 알 수 있나요?

어떤 파일/폴더가 파일 시스템에서 가장 많은 공간을 차지하고 있는지 확인하려고 합니다.

df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda3        94G   85G  4.4G  96% /
tmpfs            16G  7.9G  7.9G  50% /dev/shm
/dev/sda1       477M   82M  370M  19% /boot

무엇이 공간을 차지하고 있는지 확인하기 위해 설치했지만 ncdu여전히 대부분의 공간을 차지하는 요소를 찾을 수 없습니다.

1.9 GiB [##        ] /var
    1.2 GiB [#         ] /usr
  372.8 MiB [          ] /lib
  129.7 MiB [          ] /tmp
   79.3 MiB [          ] /boot
   74.8 MiB [          ] /root
   28.6 MiB [          ] /etc
   18.4 MiB [          ] /lib64
   18.1 MiB [          ] /opt
   10.8 MiB [          ] /sbin

편집하다

이 스레드를 게시하기 전에 일부 대용량 로그 파일을 삭제했습니다. 에서 큰 차이를 보이는 것이 이상하다고 생각합니다 df -h. @Pavel Šimerda가 제안한 대로 소프트 재부팅을 수행했고 이것이 결과입니다.

Filesystem      Size  Used Avail Use% Mounted on
/dev/sda3        94G  3.9G   85G   5% /
tmpfs            16G  236M   16G   2% /dev/shm
/dev/sda1       477M   86M  366M  20% /boot

이 경우 재시작이 필요한 이유는 무엇입니까?

답변1

다른 답변에 언급된 모든 도구는 기본적으로 동일한 방식으로 작동하며 표시 방식만 다릅니다. 내가 가장 좋아하는 것은 전자를 사용할 수 없을 때 그것을 사용하는 ncdu날 입니다. du이제 문제는 사용된 총 공간이 디스크에 있는 모든 파일의 합보다 훨씬 큰 이유와 재부팅이 이에 어떤 영향을 미치는지입니다.

먼저 알아야 할 것은모두,사용된그리고쓸 수 있는디스크 공간은 추정치일 뿐입니다. 그러나 이러한 차이는 부정확성만으로는 설명될 수 없습니다.

여기서 중요한 사실은파일 시스템에 저장된 모든 파일이 파일 시스템 트리를 통해 표시되는 것은 아닙니다.. 프로그램이 파일을 열면 해당 파일에 대한 참조가 있으므로 파일을 삭제할 수 없습니다. 어떤 이유로든 파일이 트리에서 제거되면 프로그램이 해당 파일에 대한 참조를 유지하는 한 해당 파일은 파일 시스템에 남아 있습니다.

당신은 할 수삭제된 열린 파일 나열다음 명령을 사용하여 시스템에서 삭제된 파일을 저장하는 프로세스와 해당 파일의 크기를 확인하세요.

lsof -n | grep '(deleted)'

재부팅한 후에는 깨끗한 상태에서 시작하게 되며 문제의 프로세스가 삭제된 파일에 그렇게 많은 데이터를 입력하지 않았을 수 있습니다.

사용 통계 세부 정보는 파일 시스템 형식에 따라 다릅니다.

답변2

GUI 실행이 마음에 들지 않으면 GUI를 설치하고 실행한 baobab다음 분석하려는 하드 드라이브를 클릭하십시오.

답변3

ncdu일반적으로 올바르게 보고됩니다. sudo이전에 사용해 본 적이 있나요?

또한 루트에 보존된 블록이 있는지 확인할 수도 있습니다. 일반적으로 전체 공간의 5%가 루트에 의해 예약되어 있지만 귀하의 경우에는 많은 공간이 있는 것 같습니다. 어쨌든 예약된 블록 수를 확인하려면 다음 명령을 실행하십시오.

sudo tune2fs -l /dev/sda5 | grep "Block count\|Reserved block count"

그런 다음 "예약된 블록 수"와 전체 "블록 수"를 비교하여 백분율을 확인할 수 있습니다.

답변4

다음을 실행해 보세요.

du -ha --max-depth 1 2>/dev/null | sort -hr

현재 디렉터리의 모든 파일과 디렉터리를 사람이 읽을 수 있는 형식으로 내림차순으로 정렬하여 인쇄합니다.

명령줄 도구를 고려할 때 이것이 가장 읽기 쉬운 옵션이라고 생각합니다.

관련 정보