[unix] 루트 파일 시스템에서 모든 큰 파일 찾기

현재 공간 사용량이 적은 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 %에 기여하는 큰 파일을 얻을 수 /있습니까?



답변

시험:

find / -xdev -type f -size +100M

크기가 100M보다 큰 모든 파일을 나열합니다.

디렉토리에 대해 알고 싶으면 시도해보십시오 ncdu.

당신이 리눅스를 실행하지 않는 경우에, 당신은 사용해야 할 수도 -size +204800또는 -size +104857600c는 AS, M메가 바이트 POSIX에 있지를 의미하는 접미사.

find / -xdev -type f -size +102400000c


답변

@Gnouc answer 외에도 ls -la자세한 정보를 얻기 위해 추가 할 수 있습니다 . 그렇게해야 sudo privileges합니다.

$ find / -xdev -type f -size +100M -exec ls -la {} \; | 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


답변

다음 명령은 파일 시스템에서 상위 50 개의 가장 큰 파일 (> 100M)을 찾을뿐만 아니라 (GNU sort) 도 가장 큰 파일로 정렬 합니다.

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를 사용하지 않는 경우 다음을 coreutils사용하지 않고 사용하십시오 -h.

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

전용 (빠른 결과에 대한) 현재 디렉토리를 들어, 교체 /와 함께 ..


답변