Skip to Content
Infra & DevOps디렉토리 용량을 한눈에 파악하는 du + sort 실전 활용법
☁️ Infra & DevOps2018년 1월 26일

디렉토리 용량을 한눈에 파악하는 du + sort 실전 활용법

#linux#shell#du#sort#disk

온프레미스 환경에서 서버를 운영하다 보면 어느 날 갑자기 디스크 사용량이 95%를 넘어버리는 상황을 맞닥뜨리게 됩니다. 이 때 가장 먼저 손이 가는 명령어 조합이 바로 du + sort입니다.


기본 명령어

현재 디렉토리의 하위 항목들을 용량 기준 내림차순으로 정렬해서 보여줍니다.

shell
$ du -ks * | sort -nr | cut -f2 | xargs -d '\n' du -sh

실행하면 아래처럼 큰 디렉토리가 위에서부터 내려오는 순서로 출력됩니다.

plaintext
48G hadoop-data 12G logs 4.2G parcel-cache 1.1G zeppelin 320M hbase 88M kafka 14M conf 4.0K bin

각 옵션 설명

구간옵션의미
du -ks *-kKB 단위로 크기 출력 (sort를 위한 숫자 기준)
-s하위 디렉토리를 재귀적으로 합산하여 총합만 출력 (summarize)
sort -nr-n숫자(Numeric) 기준으로 정렬
-r내림차순(Reverse) — 큰 것부터
cut -f2정렬된 결과에서 경로 이름만 추출 (탭 구분자 기준 두 번째 컬럼)
xargs -d '\n' du -sh-d '\n'줄바꿈을 구분자로 사용 (공백 포함 경로명 대응)
-sh최종 출력을 사람이 읽기 좋은 포맷(MB, GB 등)으로 재출력

실전 활용 변형

특정 디렉토리 안에서 확인

shell
$ du -ks /var/log/* | sort -nr | cut -f2 | xargs -d '\n' du -sh

숨김 파일(.으로 시작)도 포함

shell
$ du -ks .[^.]* * | sort -nr | cut -f2 | xargs -d '\n' du -sh

상위 10개만 추려서 보기

shell
$ du -ks * | sort -nr | head -10 | cut -f2 | xargs -d '\n' du -sh

GNU sort 사용 가능한 환경 (Linux)에서 더 간단하게

sort -h 옵션은 du -sh의 휴먼 리더블 포맷(K, M, G)을 바로 이해하고 정렬해줍니다.

shell
$ du -sh * | sort -rh

macOS 기본 sort-h 옵션을 지원하지 않으므로, brew install coreutilsgsort -rh를 사용하거나 상단의 -ks 방식을 써야 합니다.


주의사항

  • du논리적 파일 크기가 아닌 실제 블록 점유 크기를 보고합니다. 희소 파일(Sparse File)의 경우 실제보다 작게 표시될 수 있습니다.
  • 하둡(HDFS) 환경에서 로컬 디스크 용량이 찬 경우, du로 로컬을 확인하고 hdfs dfs -du -s -h /로 HDFS 용량을 별도로 확인해야 합니다.
  • * 글로브는 현재 쉘의 PATH 글로브 확장 한계를 가지므로, 파일 수가 매우 많은 디렉토리에서는 find 기반 명령으로 대체하는 것이 안전합니다.
Last updated on