우분투 디스크 용량 분석 끝판왕 ncdu 명령어 설치 및 실무 활용 가이드

개요

서버의 디스크 용량이 부족할 때 어떤 파일과 디렉터리가 공간을 차지하고 있는지 직관적으로 파악하는 것은 매우 중요합니다. 본 글에서는 ncurses 기반의 텍스트 UI로 손쉽게 디스크 사용량을 분석하고 정리할 수 있는 ncdu 명령어의 설치부터 실무 활용법까지 단계별로 알아봅니다.

ncdu 패키지 설치 및 기본 버전 확인

우분투 환경에서 디스크 용량을 효율적으로 분석하기 위해 패키지 목록을 갱신하고 ncdu 도구를 설치합니다.

apt-get update -qq && apt-get install -y ncdu

설치된 ncdu의 버전을 확인하고 정상적으로 실행 가능한지 검증합니다.
⚙️ [주요 옵션]

-v : 현재 설치된 ncdu의 버전 정보를 출력합니다.
-x : 동일한 파일 시스템 내의 디렉터리만 검사하고 다른 마운트 지점은 제외합니다.
-r : 읽기 전용 모드로 실행하여 실수로 파일이 삭제되는 것을 방지합니다.
-q : 화면 갱신 빈도를 줄이는 조용한 모드로 실행하여 스캔 속도를 높입니다.
-o : 스캔한 디렉터리 용량 분석 결과를 지정한 파일로 내보냅니다.
-f : -o 옵션으로 저장된 분석 파일을 불러와 대화형 인터페이스로 확인합니다.

ncdu -v

실습을 위한 샘플 디렉터리 및 대용량 테스트 파일 생성

ncdu 실습을 위한 계층형 디렉터리 구조를 생성하기 위해 mkdir -p ~/ncdu_practice/{logs,backups,media/videos} 명령어를 실행합니다.

mkdir -p ~/ncdu_practice/{logs,backups,media/videos}

logs 디렉터리에 20MB 크기의 샘플 로그 파일을 생성하기 위해 fallocate -l 20M ~/ncdu_practice/logs/app_error.log 명령어를 실행합니다.

fallocate -l 20M ~/ncdu_practice/logs/app_error.log

backups 디렉터리에 50MB 크기의 샘플 데이터베이스 백업 파일을 생성하기 위해 fallocate -l 50M ~/ncdu_practice/backups/db_backup.tar.gz 명령어를 실행합니다.

fallocate -l 50M ~/ncdu_practice/backups/db_backup.tar.gz

media/videos 디렉터리에 100MB 크기의 샘플 동영상 파일을 생성하기 위해 fallocate -l 100M ~/ncdu_practice/media/videos/demo_clip.mp4 명령어를 실행합니다.

fallocate -l 100M ~/ncdu_practice/media/videos/demo_clip.mp4

생성된 디렉터리 구조와 파일 용량이 정상적으로 구성되었는지 재귀적으로 확인하기 위해 ls -lhR ~/ncdu_practice 명령어를 실행합니다.

ls -lhR ~/ncdu_practice

ncdu 실행을 통한 디스크 사용량 시각적 탐색 및 분석

실습용으로 생성한 ~/ncdu_practice 디렉터리의 용량 현황을 빠르게 탐색하기 위해 화면 갱신 주기를 줄이는 -q 옵션을 적용하여 ncdu -q ~/ncdu_practice 명령어를 실행합니다.
대화형 TUI 인터페이스를 통해 하위 폴더별 용량과 파일 크기가 큰 순서대로 시각화되어 직관적인 분석이 가능합니다.

ncdu -q ~/ncdu_practice

시스템 로그가 누적되는 /var/log 디렉터리의 디스크 사용량을 분석하기 위해 다른 마운트 지점을 제외하는 -x 옵션을 적용하여 ncdu -x /var/log 명령어를 실행합니다.
동일한 파일 시스템 내의 데이터만 탐색하므로 불필요한 마운트 경로 스캔을 방지하고 실제 로그 파일들이 차지하는 용량을 안전하고 정확하게 확인할 수 있습니다.

ncdu -x /var/log

스캔 결과 파일 내보내기 및 오프라인 분석

~/ncdu_practice 디렉터리의 디스크 용량 스캔 결과를 JSON 형식으로 내보내어 파일로 저장하기 위해 ncdu -1xo- ~/ncdu_practice > ~/ncdu_practice/disk_usage.json 명령어를 실행합니다.
진행률을 한 줄로 간결하게 표시하는 -1 옵션과 표준 출력으로 데이터를 내보내는 -o- 옵션을 결합하여 스캔 결과를 파일로 안전하게 기록합니다.

ncdu -1xo- ~/ncdu_practice > ~/ncdu_practice/disk_usage.json

스캔 결과가 JSON 파일로 정상 저장되었는지 상위 5개 줄을 확인하기 위해 head -n 5 ~/ncdu_practice/disk_usage.json 명령어를 실행합니다.
도구 버전과 스캔 시점의 타임스탬프, 디렉터리 구조 및 파일별 용량 정보가 구조화되어 기록된 것을 확인할 수 있습니다.

head -n 5 ~/ncdu_practice/disk_usage.json

저장된 분석 결과 파일을 대화형 TUI 인터페이스로 다시 불러와 탐색하기 위해 ncdu -f ~/ncdu_practice/disk_usage.json 명령어를 실행합니다.
디스크를 다시 스캔하는 부하 없이 저장된 데이터를 즉시 열람할 수 있어 원격 서버의 용량 상태를 오프라인 환경에서도 안전하고 신속하게 분석할 수 있습니다.

ncdu -f ~/ncdu_practice/disk_usage.json

지금까지 우분투에서 디스크 용량을 직관적으로 분석하고 관리할 수 있는 ncdu 명령어의 설치부터 실무 활용법까지 간단하게 살펴보았습니다.
서버 용량이 부족할 때 불필요한 대용량 파일을 빠르게 찾아 정리하는 데 유용하게 활용해보시기 바랍니다.