디스크 용량이 꽉 찼을 때 원인 찾는 법

디스크 용량이 꽉 찼을 때 원인 찾는 법을 Linux 명령어로 정리했습니다. 파일시스템, 디렉터리, 대용량 파일, 삭제된 열린 파일을 단계별로 확인해 보세요. df는 파일시스템 단위의 사용량을 보여주므로, 특정 폴더만 살펴보기 전에 실행하는 것이 좋습니다.

File system fragmentation
디스크가 가득 찼다는 경고가 보이면 무작정 파일을 삭제하기보다 파일시스템, 디렉터리, 대용량 파일, 삭제된 열린 파일 순서로 확인해야 합니다. 이 글의 명령 예시는 Linux 기준이며, BSD 계열이나 BusyBox 기반 NAS에서는 du -dfind -printf 옵션이 다를 수 있습니다. Linux 서버나 NAS에서 셸 명령을 실행할 수 있고, 기본적인 터미널 사용이 가능하다고 가정합니다.

목차

파일시스템 사용량 확인

먼저 전체 디스크가 정말 부족한지 확인합니다. df는 파일시스템 단위의 사용량을 보여주므로, 특정 폴더만 살펴보기 전에 실행하는 것이 좋습니다.

df -hT

Use%가 높은 파일시스템의 마운트 경로를 확인하세요. 용량이 남아 있어도 inode(파일을 관리하는 메타데이터)가 부족하면 새 파일을 만들 수 없으므로 다음 명령도 함께 봅니다.

df -ih

디렉터리별 용량 분석

문제가 된 마운트 경로를 기준으로 어느 디렉터리가 큰지 확인합니다. / 전체를 검사하는 예시는 다음과 같습니다.

sudo du -xhd 1 / 2>/dev/null | sort -h

-x는 다른 파일시스템으로 넘어가지 않게 하는 옵션입니다. 이 옵션을 빼면 외부 디스크나 가상 파일시스템까지 합쳐져 실제 원인과 다른 결과가 보일 수 있습니다. 큰 경로를 찾았다면 같은 명령을 해당 경로에 다시 실행해 범위를 좁힙니다.

대용량 파일 검색

로그, 임시 파일, 백업 파일처럼 디렉터리 안에 숨어 있는 큰 파일은 find로 찾을 수 있습니다.

sudo find / -xdev -type f -size +1G -printf '%s %p\n' 2>/dev/null | sort -nr | head

출력된 파일을 바로 삭제하지 말고 소유 서비스와 마지막 수정 시각을 먼저 확인하세요. 운영 중인 로그를 임의로 지우면 서비스 오류나 추적 정보 손실이 생길 수 있으므로, 서비스의 로그 순환 설정이나 보관 정책을 확인한 뒤 정리하는 편이 안전합니다.

삭제된 열린 파일 확인

du에서 보이는 파일을 정리했는데도 df 사용량이 줄지 않는다면, 삭제됐지만 프로세스가 계속 열고 있는 파일일 수 있습니다. Linux에서는 파일 이름이 사라져도 프로세스가 파일을 닫기 전까지 공간이 반환되지 않습니다.

sudo lsof +L1

목록에서 큰 파일을 잡고 있는 프로세스와 PID를 확인한 뒤 해당 서비스의 정상 재시작 절차를 사용하세요. 이 경우 du에는 파일이 나타나지 않지만 df에는 사용량이 남는 현상이 보입니다. 프로세스를 강제 종료하기 전에는 서비스 영향과 재시작 가능 여부를 먼저 판단해야 합니다.

정리 순서와 결론

df -hT로 가득 찬 파일시스템을 찾고, du로 큰 디렉터리를 좁힌 다음, find로 파일을 확인합니다. 그래도 차이가 남으면 lsof +L1로 삭제된 열린 파일을 점검하면 됩니다.

무작정 삭제하지 말고 원인과 소유 서비스를 확인하는 것이 핵심입니다. 파일을 지운 뒤에도 용량이 그대로라면 열린 파일부터 의심해 보세요.

관련 글

이미지: Unknown / Wikimedia Commons · Public domain