Linux 디스크 용량 꽉 찼을 때 df du 명령어로 범인 찾기

디스크 용량 100% 알림을 받고 급하게 SSH 접속한 경험, 한 번쯤 있을 겁니다. 로그 파일이 쌓이거나 예상치 못한 대용량 파일이 생성되면 서비스 장애로 직결됩니다. 이 글은 df와 du 명령어를 활용해 용량 범인을 빠르게 찾고 정리하는 실전 프로세스를 다룹니다.


리눅스 용량 관리 필수 명령어 df du ncdu logrotate 활용법




1. 파일시스템 전체 상태 진단: df 명령어

용량 문제가 발생하면 가장 먼저 해야 할 일은 어느 파일시스템이 얼마나 찼는지 확인하는 것입니다.

  • df -h: 사람이 읽기 쉬운 단위(GB, MB)로 전체 파일시스템 사용량 출력
  • df -h -i: inode 사용량 확인. 작은 파일이 수백만 개 생성되면 용량은 남았어도 inode가 고갈되어 파일 생성 불가 상태가 됩니다.
  • df -h -T /path: 특정 경로의 파일시스템 타입(ext4, xfs 등)까지 함께 표시

주의사항: df는 마운트된 파일시스템 단위로 표시하므로, 특정 디렉토리 내부의 세부 용량은 du로 추가 분석해야 합니다.

2. 디렉토리별 용량 추적: du 명령어

df로 문제 파일시스템을 특정했다면, 이제 어느 디렉토리가 용량을 차지하는지 좁혀야 합니다.

  • du -sh /path/to/directory: 해당 디렉토리 총 용량을 요약(summary)하여 표시
  • du -h --max-depth=1 /path | sort -h: 1단계 하위 디렉토리별 용량을 정렬하여 출력. 용량 범인을 빠르게 찾을 수 있습니다.
  • du -hs * | sort -rh | head -5: 현재 디렉토리 내 상위 5개 항목을 용량 내림차순으로 표시
  • du -h -a /path: 하위 파일까지 모두 표시. 출력량이 많으므로 grep이나 head와 조합 권장

실전 팁: 루트(/) 디렉토리부터 시작하지 말고, df 결과에서 사용률이 높은 마운트 포인트(예: /var, /home)를 먼저 탐색하면 시간을 절약할 수 있습니다.

3. 대용량 파일 색출: find 명령어

디렉토리 단위로는 원인을 찾기 어려울 때, 특정 크기 이상의 파일을 직접 검색해야 합니다.

  • find /path -type f -size +1G -exec ls -lh {} \;: 1GB 이상 파일을 찾아 상세 정보 출력
  • find /var/log -type f -mtime -1 -exec ls -lh {} \;: 최근 1일 이내 수정된 로그 파일 확인. 급격히 증가한 로그를 추적할 때 유용
  • ls -lhS /path | head -n 10: 특정 디렉토리 내 파일을 크기 내림차순으로 정렬하여 상위 10개 표시

권한 오류 무시: 스크립트에서 find를 실행할 때 2>/dev/null을 추가하면 Permission denied 메시지가 출력되지 않아 로그가 깔끔해집니다.

4. 운영 자동화 및 예방 전략

용량 문제는 반복됩니다. 수동 대응만으로는 한계가 있으므로 모니터링과 자동화를 도입해야 합니다.

대화형 탐색 도구: ncdu

  • 설치: sudo apt install ncdu (Ubuntu) / sudo yum install ncdu (CentOS)
  • 실행: ncdu / - 디렉토리를 대화형으로 탐색하며 삭제까지 즉시 가능

자동 점검 스크립트 예제

#!/bin/bash
echo "=== 디스크 사용량 ==="
df -h
echo "=== 상위 10개 대용량 파일 ==="
find / -type f -exec du -h {} + 2>/dev/null | sort -rh | head -n 10

이 스크립트를 cron에 등록하여 매일 실행하고, 결과를 메일이나 슬랙으로 전송하면 임계치 초과 시 즉시 대응할 수 있습니다.

로그 자동 정리: logrotate

  • /var/log 디렉토리가 용량을 차지하는 경우, logrotate 설정을 점검하십시오.
  • /etc/logrotate.d/ 하위 파일에서 rotate 주기, 압축 여부, 보관 기간을 조정할 수 있습니다.
  • 예: daily (매일), rotate 7 (7일 보관), compress (압축) 옵션 활용

정리: 용량 문제 해결 프로세스

디스크 용량 부족 상황은 df로 전체 진단 → du로 디렉토리 추적 → find로 파일 색출 → ncdu로 대화형 정리 → 스크립트/logrotate로 자동화 순서로 접근하면 체계적으로 해결할 수 있습니다. 당장 실행할 Action Item은 df -h와 du -sh /var/log 명령어로 현재 상태를 진단하고, 용량을 가장 많이 차지하는 디렉토리 3곳을 메모해두는 것입니다.


#함께 읽으면 좋은 글

Linux 백그라운드 프로세스 실행 완벽 가이드 nohup disown 차이와 실전 활용법 : 바로보기

댓글