Linux 서버가 있고 현재 공간 사용량은 다음과 같습니다.
/dev/sda3 20G 15G 4.2G 78% /
/dev/sda6 68G 42G 23G 65% /u01
/dev/sda2 30G 7.4G 21G 27% /opt
/dev/sda1 99M 19M 76M 20% /boot
tmpfs 48G 8.2G 39G 18% /dev/shm
보시다시피. /
78%이다. 어떤 파일이나 폴더가 공간을 차지하고 있는지 확인하고 싶습니다.
나는 이것을 시도했습니다 :
find . -type d -size +100M
표시되는 결과는 다음과 같습니다.
./u01/app/june01.dbf
./u01/app/temp01.dbf
./u01/app/smprd501.dbf
./home/abhishek/centos.iso
./home/abhishek/filegroup128.jar
이제 이것이 내 문제입니다. 공간을 소비 /
하는 폴더 /u01
나 /home
. 모든 것의 기반 이기 때문에 /
서버의 모든 파일을 보여줍니다.
78% 대용량 파일을 얻을 수 있나요 /
?
답변1
노력하다:
find / -xdev -type f -size +100M
크기가 100M보다 큰 모든 파일을 나열합니다.
디렉토리에 대해 알고 싶다면 시도해 볼 수 있습니다 ncdu
.
Linux를 실행하지 않는 경우 POSIX에는 메가바이트에 대한 접미사가 없으므로 또는를 -size +204800
사용해야 할 수 있습니다 .-size +104857600c
M
find / -xdev -type f -size +102400000c
답변2
다음 명령은 파일 시스템에서 가장 큰 파일 50개(>100M)를 찾을 뿐만 아니라 sort
가장 큰 파일(GNU)을 기준으로 정렬합니다.
find / -xdev -type f -size +100M -exec du -sh {} ';' | sort -rh | head -n50
-xdev
다른 파일 시스템의 디렉토리를 다운그레이드하지 마십시오.BSD에서
find
사용되는 경우-x
이는 더 이상 사용되지 않는 주요 버전과 동일합니다-xdev
.
모든 파일과 디렉터리에 대해 이 작업이 훨씬 더 쉽습니다.
du -ahx / | sort -rh | head -20
(이 플래그는 -x
단일 파일 시스템을 제한하는 데 필요합니다.)du
sort
GNU (GNU에서 coreutils
) 를 사용하지 않는 경우 다음 없이 사용하세요 -h
.
du -ax / | sort -rn | head -20
현재 디렉토리에 대해서만(더 빠른 결과를 위해) /
로 바꾸십시오 .
.
답변3
@Gnouc의 답변 외에도 결합 exec
옵션을 사용하여 자세한 내용을 얻을 수 있습니다. 당신은 그렇게 할 수 있는 특권을 가져야 합니다.find
ls -la
sudo
$ find / -xdev -type f -size +100M -exec ls -lha {} \; | sort -nk 5
기가바이트 파일만 보려면:
root# du -ahx / | grep -E '\d+G\s+'
1.8G /.Spotlight-V100/Store-V2/A960D58E-A644-4497-B3C1-866A529BF919
1.8G /.Spotlight-V100/Store-V2