우분투 실전 명령어 | df·du로 디스크 사용량 진단
서버에서 디스크가 갑자기 꽉 찼을 때는 감으로 찾기보다 df로 파일시스템 상태를 먼저 보고, du로 실제 용량을 많이 먹는 경로를 좁혀 들어가면 가장 빠릅니다. 이 두 개만 제대로 써도 "어디가 문제인지"를 10분 안에 거의 찾을 수 있습니다.
언제 쓰는가
배포 후 로그가 급증했거나, 백업 파일이 누적돼 디스크 사용률이 치솟을 때 바로 씁니다. 특히 /var, /home, / 중 어디가 찼는지 빠르게 구분하고, 정리 우선순위를 정해야 할 때 유용합니다.
바로 쓰는 명령어
# 1) 파일시스템 전체 사용률 확인
df -h
# 2) inode 고갈 여부 확인 (용량은 남았는데 파일 생성이 안 될 때)
df -i
# 3) 상위 디렉터리 용량 큰 순서 확인
sudo du -xh --max-depth=1 /var | sort -hr | head -20
# 특정 서비스 로그 디렉터리만 깊이 2단계까지 확인
sudo du -xh --max-depth=2 /var/log | sort -hr | head -30
# 1GB 이상 파일 찾기
sudo find /var -xdev -type f -size +1G -print
핵심 옵션/패턴
df -h: 사람이 읽기 쉬운 단위로 파일시스템 사용률을 보여줍니다.df -i: inode 사용률을 확인합니다. 작은 파일이 많으면 inode가 먼저 바닥날 수 있습니다.du -x: 다른 파일시스템으로 넘어가지 않아 탐색 범위를 안전하게 고정합니다.du --max-depth=N: 깊이를 제한해 어느 경로에서 용량이 튀는지 단계적으로 찾기 좋습니다.sort -hr: 사람이 읽는 단위를 유지한 채 큰 값부터 정렬합니다.
명령 출력 예시
$ df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda1 98G 91G 2.1G 98% /
/dev/sdb1 500G 210G 265G 45% /data
$ sudo du -xh --max-depth=1 /var | sort -hr | head
24G /var
15G /var/lib
6.2G /var/log
1.8G /var/cache
자주 하는 실수
du /를 무작정 돌려 전체 시스템을 오래 점유하는 경우가 많습니다. 먼저df로 문제 파일시스템을 찍고 그 마운트 포인트만 분석하세요.- 로그 정리 전에 무조건 삭제부터 해서 원인 추적 단서를 잃는 경우가 있습니다. 최소한 최근 로그는 압축 보관 후 정리하는 편이 안전합니다.
- 컨테이너 환경에서 호스트 로그와 볼륨 위치를 혼동해 엉뚱한 경로를 정리하는 실수가 자주 납니다.
mount,docker system df로 경로 매핑을 먼저 확인하세요.
검증 방법
# 1) 정리 전/후 사용률 비교
(df -h; echo; df -i)
# 2) 상위 용량 디렉터리 재확인
sudo du -xh --max-depth=1 /var | sort -hr | head -20
# 3) 로그 회전 상태 확인
sudo logrotate -d /etc/logrotate.conf | head -40
운영 팁
운영에서는 "정리"보다 "재발 방지"가 더 중요합니다. 용량을 비운 뒤에는 logrotate 주기, 보관 일수, 애플리케이션 로그 레벨을 같이 조정해 다음 장애를 막아 두는 게 좋습니다.
출처
Ubuntu Manpage
GNU Coreutils Manual
Linux Foundation Documentation