디렉토리 용량을 한눈에 파악하는 du + sort 실전 활용법
온프레미스 환경에서 서버를 운영하다 보면 어느 날 갑자기 디스크 사용량이 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 * | -k | KB 단위로 크기 출력 (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 -shGNU sort 사용 가능한 환경 (Linux)에서 더 간단하게
sort -h 옵션은 du -sh의 휴먼 리더블 포맷(K, M, G)을 바로 이해하고 정렬해줍니다.
shell
$ du -sh * | sort -rhmacOS 기본
sort는-h옵션을 지원하지 않으므로,brew install coreutils후gsort -rh를 사용하거나 상단의-ks방식을 써야 합니다.
주의사항
du는 논리적 파일 크기가 아닌 실제 블록 점유 크기를 보고합니다. 희소 파일(Sparse File)의 경우 실제보다 작게 표시될 수 있습니다.- 하둡(HDFS) 환경에서 로컬 디스크 용량이 찬 경우,
du로 로컬을 확인하고hdfs dfs -du -s -h /로 HDFS 용량을 별도로 확인해야 합니다. *글로브는 현재 쉘의PATH글로브 확장 한계를 가지므로, 파일 수가 매우 많은 디렉토리에서는find기반 명령으로 대체하는 것이 안전합니다.
Last updated on