우분투 실전 명령어 | 디스크 확인(df, du)과 대용량 파일 찾기
디스크가 갑자기 가득 찼다는 알림이 뜨면, 먼저 어디가 많이 먹는지 빠르게 좁혀야 합니다. 우분투 서버에서는 df로 파일시스템 단위 용량을 보고, du와 find로 디렉터리/파일 단위 원인을 찾는 흐름이 가장 안전하고 빠릅니다.
언제 쓰는가
/또는/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 문서