서버를 운영하다 보면 갑자기 “디스크 용량 부족” 경고를 만나게 됩니다. 디스크가 가득 차면 로그가 안 쌓이고, 데이터베이스가 멈추고, 심하면 서비스 전체가 다운됩니다. 당황하지 말고 원인을 차근차근 찾으면 됩니다. 이 글에서는 디스크 용량 문제를 진단하는 명령어를 순서대로 정리했습니다.
1. 전체 디스크 사용량 확인 (df)
가장 먼저 어느 파티션이 얼마나 찼는지 봅니다.
df -h
-h 옵션은 GB, MB 단위로 보기 좋게 표시해 줍니다. Use%가 90%를 넘는 파티션이 있다면 그곳이 문제입니다.
2. 어느 디렉터리가 차지하는지 확인 (du)
문제의 파티션을 찾았다면, 그 안에서 어떤 폴더가 용량을 많이 쓰는지 확인합니다.
du -h --max-depth=1 / | sort -hr | head -n 10
이 명령은 최상위 폴더별 용량을 큰 순서대로 10개 보여줍니다. 용량이 큰 폴더로 한 단계씩 들어가며 추적하면 됩니다.
3. 큰 파일 직접 찾기
특정 큰 파일을 바로 찾고 싶다면 find를 활용합니다.
find / -type f -size +500M 2>/dev/null
500MB가 넘는 파일을 모두 찾아줍니다. 2>/dev/null은 권한 오류 메시지를 숨겨줍니다.
4. 로그 파일 점검
디스크를 가장 흔하게 채우는 범인은 로그 파일입니다. 특히 /var/log 폴더를 확인하세요.
du -h --max-depth=1 /var/log | sort -hr
오래된 로그는 정리하거나, 로그 로테이션(logrotate) 설정을 점검해 자동으로 압축·삭제되도록 만드는 것이 좋습니다.
5. 사용하지 않는 패키지 정리
오래된 패키지 캐시와 불필요한 의존성도 용량을 차지합니다.
sudo apt clean
sudo apt autoremove -y
6. 삭제했는데도 용량이 안 줄어들 때
파일을 지웠는데 용량이 그대로라면, 어떤 프로세스가 그 파일을 여전히 잡고 있는 경우입니다.
sudo lsof | grep deleted
해당 프로세스를 재시작하면 용량이 회복됩니다.
7. inode 부족도 의심하기
용량은 남았는데 “공간 부족” 오류가 난다면, 작은 파일이 너무 많아 inode가 고갈된 경우일 수 있습니다.
df -i
마무리
디스크 문제 해결의 핵심 흐름은 df로 큰 그림 보기 → du로 범인 폴더 좁히기 → 로그·캐시 정리입니다. 평소 logrotate를 설정해 두고 정기적으로 용량을 점검하면, 갑작스러운 디스크 부족 사고를 예방할 수 있습니다.