리눅스 디스크 용량 모니터링: ncdu 도구로 대용량 파일 찾아 삭제하기
리눅스(Linux) 기반 서버나 가상화 인프라를 장기간 운영하다 보면 특정 시점에 디스크 공간이 부족해지는 현상을 피할 수 없습니다. 시스템 로그(Log) 파일의 지속적인 누적, 데이터베이스 임시 파일, 또는 도커(Docker) 빌드 캐시 등이 원인 미상으로 저장소를 점유하면, 디스크 사용량이 100%에 도달하여 주요 서비스가 중단되거나 시스템 부팅이 불가능해지는 위험에 노출됩니다.
기존의 전통적인 du 및 df 명령어는 디스크 전체 사용량을 파악하거나 디렉터리별 용량을 확인하는 데 유용하지만, 수많은 하위 폴더 중 어떤 파일이 실제로 가장 큰 용량을 차지하는지 한눈에 파악하기에는 번거로움이 따릅니다. 이러한 한계를 완벽히 극복해 주는 도구가 바로 ncdu(NCurses Disk Usage)입니다.
본 글에서는 ncdu 도구의 주요 개념과 특징부터, 리눅스 서버 설치 방법, 텍스트 기반 GUI 인터페이스를 활용한 대용량 파일 탐색 및 안전한 삭제 절차까지 단계별로 상세히 알아 보겠습니다.
1. ncdu 도구의 개념과 기존 du 명령어 대비 장점
ncdu(NCurses Disk Usage)는 텍스트 사용자 인터페이스(TUI, Text-based User Interface)를 통해 리눅스 파일 시스템의 디스크 용량을 시각적으로 분석하고 관리할 수 있도록 지원하는 오픈소스 텍스트 콘솔 도구입니다.
[이미지: ncdu 도구를 실행하여 용량을 많이 차지하는 폴더와 파일 목록이 바 형태로 시각화된 터미널 화면]
ncdu를 활용할 때 얻을 수 있는 주요 장점은 다음과 같습니다.
- 시각적인 용량 분석: 폴더 및 파일별 디스크 점유율을 바(Bar) 형태(###)와 비율(%)로 직관적으로 표시하여 대용량 대상을 빠르게 파악할 수 있습니다.
- 편리한 인터랙티브 키보드 탐색: 방향키와 엔터키를 이용해 윈도우 탐색기처럼 하위 디렉터리를 자유롭게 오르내리며 내부를 탐색할 수 있습니다.
- 콘솔 내 직접 삭제 기능 지원: 대용량 파일이나 무의미한 대형 로그 파일을 발견했을 때, 터미널을 빠져나가지 않고 ncdu 화면 내에서 즉시 삭제(d 키)할 수 있습니다.
- 경량화된 동작 체계: 시스템 자원 소비가 극히 적어 SSH 원격 접속 환경에서도 지연 없이 빠르게 디스크 구조를 스캔합니다.
2. 리눅스 환경별 ncdu 패키지 설치 방법
ncdu는 주요 리눅스 배포판의 공식 패키지 저장소에 등록되어 있으므로 간단한 패키지 관리자 명령어로 즉시 설치할 수 있습니다.
주요 배포판별 설치 명령어
- Ubuntu / Debian 계열: sudo apt update && sudo apt install ncdu -y
- CentOS / RHEL / Rocky Linux 계열: sudo dnf install epel-release -y && sudo dnf install ncdu -y
- Alpine Linux 계열: apk add ncdu
설치가 완료된 후 터미널에 ncdu -v를 입력하여 버전 정보가 정상 출력되는지 검증합니다.
3. ncdu 실전 사용법: 탐색, 정렬 및 안전한 파일 삭제 4단계
ncdu를 구동하여 특정 경로를 스캔하고 대용량 파일을 추적 및 제거하는 실전 프로세스입니다.
[이미지: ncdu 탐색 화면에서 대용량 파일을 선택하고 d 키를 눌러 삭제 확인 팝업창이 뜬 장면]
권한 부족으로 인한 일부 디렉터리 스캔 누락을 방지하기 위해 sudo 권한으로 실행합니다.
- 전체 시스템 스캔: sudo ncdu /
- 특정 디렉터리 스캔: sudo ncdu /var/log
- Verification: 스캔이 완료되면 화면 상단에 총 용량 및 항목 수가 표시되고 하위 목록이 용량순으로 정렬되는지 확인합니다.
- 방향키 위/아래 (↑ / ↓): 목록 항목 간 이동
- 엔터키 (Enter) 또는 오른쪽 방향키 (→): 선택한 폴더 내부로 이동
- 왼쪽 방향키 (←): 상위 폴더로 이동
- s 키: 용량(Size) 기준 또는 파일 이름(Name) 기준 정렬 변경
- i 키: 선택한 파일 또는 폴더의 상세 정보(생성일, 권한, 경로) 확인
용량을 과도하게 차지하는 시스템 불필요 파일(예: 오래된 .log 파일, 대형 덤프 파일)을 선택한 뒤 d 키를 누릅니다.
- 삭제 확인 창(Delete...)이 나타나면 Yes를 선택하여 삭제를 확정합니다.
- Verification: 목록에서 해당 항목이 제거되고 상단 총 용량이 실시간으로 감소하는지 확인합니다.
디스크 정리 작업이 끝나면 q 키를 눌러 ncdu 프로그램 화면을 안전하게 종료합니다.
자주 묻는 질문 (FAQ)
Q1. ncdu로 파일을 삭제했는데도 df -h 명령어에서는 디스크 용량이 줄어들지 않습니다.
A1. 삭제한 파일을 특정 프로세스(예: Nginx, MySQL, 애플리케이션)가 여전히 잡고(Open) 있는 상태일 때 발생하는 현상입니다. sudo lsof | grep deleted 명령어로 해당 프로세스를 찾아 관련 서비스를 재시작(sudo systemctl restart [서비스명])하면 점유되어 있던 공간이 즉시 해제됩니다.
Q2. ncdu / 명령 실행 시 스캔 속도가 너무 오래 걸립니다.
A2. 네트워크 마운트 디렉터리(NFS, SMB)나 가상 파일 시스템(/proc, /sys)이 포함되어 스캔 시간이 길어질 수 있습니다. -x 옵션을 추가하여 현재 파일 시스템 내부만 스캔하도록 설정하면 속도를 비약적으로 향상시킬 수 있습니다. (예: sudo ncdu -x /)
Q3. ncdu에서 시스템 주요 파일이나 디렉터리를 실수로 지우면 어떻게 하나요?
A3. ncdu를 통해 삭제한 파일은 휴지통을 거치지 않고 즉시 영구 삭제됩니다. 따라서 시스템 핵심 폴더(/usr, /lib, /boot 등) 내부의 파일은 절대 함부로 삭제해서는 안 되며, 정리를 시작하기 전 가상화 스냅샷(Snapshot)이나 데이터 백업을 먼저 수행하는 것이 안전합니다.
결론
리눅스 서버 환경에서 수시로 발생하는 디스크 용량 부족 장애는 ncdu 도구를 활용하면 빠르고 직관적으로 해결할 수 있습니다.
기존의 복잡한 텍스트 기반 du 명령어 대신 ncdu의 TUI 인터페이스를 통해 용량 점유율을 시각적으로 탐색하고 불필요한 대형 파일이나 오래된 로그를 안전하게 정리해 두면, 시스템 과부하 없는 안정적인 서버 운영 환경을 유지할 수 있습니다.
본 가이드의 설치 방법과 실전 키보드 조작법을 참고하시어, 쾌적하고 안정적인 리눅스 저장소 관리 환경을 직접 구축해 보시기 바랍니다.