루트 파일 시스템에서 모든 대용량 파일 찾기

루트 파일 시스템에서 모든 대용량 파일 찾기

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 +104857600cM

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

sortGNU (GNU에서 coreutils) 를 사용하지 않는 경우 다음 없이 사용하세요 -h.

du -ax / | sort -rn | head -20

현재 디렉토리에 대해서만(더 빠른 결과를 위해) /로 바꾸십시오 ..

답변3

@Gnouc의 답변 외에도 결합 exec옵션을 사용하여 자세한 내용을 얻을 수 있습니다. 당신은 그렇게 할 수 있는 특권을 가져야 합니다.findls -lasudo

$ 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

관련 정보