디스크가 가득 찼다는 경고가 보이면 무작정 파일을 삭제하기보다 파일시스템, 디렉터리, 대용량 파일, 삭제된 열린 파일 순서로 확인해야 합니다. 이 글의 명령 예시는 Linux 기준이며, BSD 계열이나 BusyBox 기반 NAS에서는 du -d와 find -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