우분투 실전 명령어 | 디스크 확인(df, du)과 대용량 파일 찾기

디스크가 갑자기 가득 찼다는 알림이 뜨면, 먼저 어디가 많이 먹는지 빠르게 좁혀야 합니다. 우분투 서버에서는 df로 파일시스템 단위 용량을 보고, dufind로 디렉터리/파일 단위 원인을 찾는 흐름이 가장 안전하고 빠릅니다.

언제 쓰는가

  • / 또는 /var 사용률이 80~90%를 넘어 서비스 장애가 걱정될 때
  • 로그나 백업 파일이 쌓여서 원인 디렉터리를 찾아야 할 때
  • 정리 전에 "진짜 큰 파일"을 먼저 확인하고 싶을 때

바로 쓰는 명령어

# 1) 파일시스템 전체 사용률 확인
# 2) 루트 기준 상위 용량 디렉터리 20개
sudo du -xhd1 / | sort -h | tail -n 20

# 3) /var 내부 상위 용량 디렉터리 20개
sudo du -xhd1 /var | sort -h | tail -n 20

# 4) 1GB 이상 대용량 파일 찾기
sudo find / -xdev -type f -size +1G \
  -not -path "/proc/*" -not -path "/sys/*" -not -path "/run/*" \
  -printf '%s %p\n' 2>/dev/null | sort -nr | head -n 30

핵심 옵션/패턴

# 사람이 읽기 쉬운 단위로 정렬
sudo du -xhd1 /home | sort -h

# 특정 서비스 로그만 빠르게 확인
sudo du -sh /var/log/* | sort -h

# 500MB 이상 파일만 찾기
sudo find /var -type f -size +500M -printf '%s %p\n' | sort -nr | head
  • du -x : 다른 파일시스템(마운트 볼륨)으로 넘어가지 않음
  • du -d1 : 한 단계 깊이까지만 확인해서 원인 파악이 빨라짐
  • find -xdev : / 아래 다른 디스크까지 뒤지지 않도록 제한

자주 하는 실수

  • sudo du -sh /만 보고 끝내기: 전체 합계만 보여서 원인 디렉터리를 못 찾습니다.
  • find /를 필터 없이 실행: /proc, /sys까지 뒤져서 느리고 오류 메시지가 넘칩니다.
  • 로그 정리 전에 바로 삭제: 어떤 서비스가 로그를 다시 폭증시키는지 원인 추적이 끊깁니다.
  • Docker/컨테이너 환경에서 호스트 로그만 정리: 실제 원인은 이미지/볼륨 캐시일 수 있습니다.

검증 방법

# 정리 전후 사용률 비교
# inode 부족 여부도 함께 체크
# 큰 파일 재확인
sudo find /var -type f -size +500M -printf '%s %p\n' | sort -nr | head
  • 사용률(Use%)이 내려갔는지 확인
  • inode(IUse%)가 높은 상태면 파일 개수 문제도 함께 해결해야 함

실행 결과 예시

$ df -hT
Filesystem     Type  Size  Used Avail Use% Mounted on
/dev/sda2      ext4   98G   86G  7.2G  93% /
/dev/sda1      ext4  976M  210M  700M  24% /boot

$ sudo du -xhd1 /var | sort -h | tail -n 5
512M    /var/cache
1.8G    /var/lib
3.6G    /var/log
6.1G    /var

$ sudo find / -xdev -type f -size +1G -printf '%s %p\n' | sort -nr | head -n 3
4294967296 /var/log/journal/abcd/system.journal
3221225472 /var/lib/docker/overlay2/.../diff/var/log/app.log
2147483648 /home/ubuntu/backup-2026-02-17.tar

출처

  • Ubuntu Manpages
  • GNU Coreutils Manual
  • util-linux 문서