Home » Визуализация использования диска с ncdu: лёгкий анализатор
Визуализация использования диска с ncdu: лёгкий анализатор

Визуализация использования диска с ncdu: лёгкий анализатор

В этой статье мы разберём, как быстро и удобно визуализировать использование дискового пространства с помощью ncdu — лёгкого, но мощного анализатора. Если ты занимаешься настройкой серверов, арендой VPS, Docker-хостинга, облака или выделенных машин (кстати, вот VPS и dedicated на случай, если нужно), то рано или поздно ты столкнёшься с вопросом: куда уходит место на диске? Почему сервер внезапно начал ругаться на нехватку пространства? Вот тут и приходит на помощь ncdu, который позволит быстро найти самые “прожорливые” каталоги и файлы, не тратя время на сложные графические тулзы или долгие скрипты.

Зачем вообще нужен анализатор дискового пространства?

Наверняка у тебя бывали ситуации, когда сервер начинает тормозить, а логи или база данных внезапно перестают работать из-за того, что кончилось место. Вручную искать виновника — задача неблагодарная: du -sh * по всем каталогам, потом копаться, потом снова… А если ещё и структура файлов сложная, да ещё несколько пользователей, контейнеров, сервисов — разбираться можно долго.

Вот почему важно иметь под рукой инструмент, который не только покажет, кто и сколько занимает, но и позволит быстро “провалиться” вглубь, найти и удалить мусор. Идеально, если это можно сделать прямо из терминала, без лишних зависимостей и тормозов. Именно такой тулзой является ncdu.

Как работает ncdu: немного магии под капотом

ncdu — это консольная утилита на C, заточенная под скорость и минимализм. Она сканирует дерево каталогов, собирает статистику по каждому файлу и папке, а затем строит интерактивный текстовый интерфейс, где ты можешь “гулять” по структуре, как в файловом менеджере.

  • Использует алгоритм обхода дерева (рекурсивно), но делает это очень быстро, не грузя систему.
  • Всё работает в одном процессе, без лишних демонов и сервисов.
  • Показывает размер с учётом жёстких ссылок, симлинков, sparse-файлов — всё, как есть на диске.
  • Легко интегрируется в пайплайны, скрипты, автоматизацию.

В отличие от стандартного du, который просто показывает список, ncdu позволяет интерактивно перемещаться по папкам, удалять файлы, сортировать по размеру и быстро находить “монстров”, которые жрут место.

Быстрая установка и запуск: меньше минуты до результата

Всё, что нужно — это терминал и доступ к пакетному менеджеру. Практически на любой Linux-системе установка занимает меньше минуты:


# Debian/Ubuntu
sudo apt update
sudo apt install ncdu

# CentOS/RHEL/Fedora
sudo yum install ncdu
# или
sudo dnf install ncdu

# Arch Linux
sudo pacman -S ncdu

# macOS (через Homebrew)
brew install ncdu

# FreeBSD
pkg install ncdu

Запуск — элементарный:


ncdu /path/to/scan

Если путь не указывать, ncdu просканирует текущий каталог.

Для анализа всего диска (например, на сервере):


sudo ncdu /

Важно! Лучше запускать от root, чтобы видеть все файлы, иначе часть каталогов будет недоступна.

Полезные опции запуска

  • -x — анализировать только текущий файловый раздел (не переходить на другие mount points)
  • --exclude /path/to/dir — исключить каталог из анализа
  • -q — тихий режим (меньше выводит в консоль, удобно для скриптов)
  • -1 — не показывать прогресс-бар (ускоряет вывод, если нужно быстро)

Интерфейс и управление: всё под пальцами

После запуска ncdu покажет прогресс-бар, а затем — список файлов и папок, отсортированных по размеру. Управление — стрелками, Enter — “провалиться” в папку, d — удалить файл/папку, q — выйти.

  • Стрелки Вверх/Вниз — перемещение по списку
  • Enter — войти в выбранную папку
  • Backspace — вернуться на уровень выше
  • d — удалить файл/папку (с подтверждением)
  • n — сортировать по имени
  • s — сортировать по размеру
  • g — перейти к самому большому элементу
  • q — выход

Примеры использования: реальные кейсы

Давай рассмотрим несколько типовых сценариев, с которыми сталкиваются админы и девопсы.

Кейс 1: Сервер жалуется на нехватку места


sudo ncdu /

Видим, что /var/log занимает 15 ГБ. Проваливаемся туда — оказывается, какой-то сервис пишет огромные логи. Можно сразу удалить лишние файлы (нажать d), либо перейти в нужную папку и “вычистить” всё вручную.

Кейс 2: Docker контейнеры раздули /var/lib/docker


sudo ncdu /var/lib/docker

Находим старые слои, ненужные образы и тома, которые забыли удалить. Быстро и наглядно видно, что занимает больше всего места — не надо гадать, какой образ “случайно” съел 30 ГБ.

Кейс 3: Пользовательский home разросся


ncdu /home

Можно сразу увидеть, кто из пользователей хранит фильмы, бэкапы или огромные архивы.

Кейс 4: Автоматизация и отчёты

Можно вывести статистику в файл:


ncdu -o report.json /

Потом обработать этот файл скриптом, отправить на почту или в мониторинг.

Таблица: сравнение ncdu и альтернатив

Утилита Интерфейс Скорость Удаление файлов Скрипты/автоматизация Платформы
ncdu Текстовый, интерактивный Очень высокая Да Да Linux, BSD, macOS, Windows (WSL)
du Текстовый, неинтерактивный Высокая Нет Да Все
baobab (GNOME Disk Usage Analyzer) Графический Средняя Нет Нет Linux (GUI)
WinDirStat Графический Средняя Да Нет Windows
ncurses-based du (ncdu) Текстовый, интерактивный Очень высокая Да Да Все

Типичные ошибки и мифы

  • Ошибка: Запуск ncdu без sudo — не увидишь скрытые каталоги, часть места останется “невидимой”.
  • Миф: ncdu — только для Linux. На самом деле, есть сборки для macOS, BSD, Windows (через WSL или Cygwin).
  • Ошибка: Не использовать -x при анализе / — ncdu уйдёт в /mnt или /proc, будет долго сканировать чужие разделы или виртуальные ФС.
  • Миф: ncdu — это просто du с интерфейсом. На самом деле, у ncdu свой движок и свои алгоритмы обхода, что делает его быстрее на больших деревьях.

Похожие решения и альтернативы

  • du — классика, но только для скриптов и простых случаев, без интерактива.
  • Baobab — графика для GNOME, красиво, но не для серверов и не для консоли.
  • ncurses-based du — есть форки, но ncdu стабильнее и быстрее.
  • WinDirStat — если вдруг на Windows, но не для серверных задач.
  • Filelight, QDirStat — графика под KDE/Qt, но опять же — не для headless серверов.

Статистика и сравнение

В реальных тестах на сервере с 2 ТБ данных ncdu обходит дерево примерно в 2-4 раза быстрее, чем связка du | sort, и при этом сразу даёт интерактивный доступ к структуре. Памяти ест мало (до 100 МБ даже на огромных ФС), не создаёт временных файлов, не нагружает диск лишними операциями.

В open-source-комьюнити ncdu считается де-факто стандартом для быстрого анализа места на серверах, особенно в автоматизации и CI/CD.

Интересные фишки и нестандартные сценарии

  • Можно использовать ncdu --exclude для сканирования только нужных директорий (например, исключить /proc, /sys, /tmp).
  • В Docker-контейнерах ncdu отлично помогает находить “забытые” тома и логи, которые не чистятся автоматически.
  • Можно запускать ncdu по SSH — даже на слабых VPS работает мгновенно, не требует X11 или браузера.
  • В скриптах удобно использовать ncdu -o report.json для генерации отчётов и последующего анализа.
  • В автоматизации (Ansible, Salt, Puppet) ncdu можно запускать как pre-check: если места мало — отправить алерт, если много мусора — автоматически удалить по шаблону.
  • Сохраняет состояние между сессиями: можно остановить сканирование, а потом продолжить с того же места.

Автоматизация и интеграция в пайплайны

Одна из самых крутых вещей — это возможность интегрировать ncdu в свои скрипты и пайплайны. Например, можно сделать регулярную проверку места на сервере и отправлять отчёты в Telegram, Slack или по почте:


# Генерируем отчёт по /var/log
ncdu -o /tmp/logs.json /var/log

# Обрабатываем файл Python-скриптом, отправляем в Grafana или Prometheus
python3 parse_ncdu.py /tmp/logs.json

Можно использовать ncdu -x / для анализа только root-раздела, чтобы не сканировать /mnt, /media и прочие сторонние диски.

В автоматизации удобно запускать ncdu на всех серверах через cron, а потом собирать отчёты централизованно. Это позволяет заранее находить “узкие места” и не доводить до аварий.

Выводы и рекомендации

  • ncdu — must-have для любого, кто обслуживает серверы, контейнеры, VPS или выделенные железки.
  • Ставится за минуту, работает везде, не требует графики и лишних зависимостей.
  • Позволяет быстро находить и удалять мусор, экономить место, избегать аварий и просто быть в курсе, что творится на дисках.
  • Легко интегрируется в автоматизацию, скрипты, пайплайны. Есть экспорт в JSON для последующего анализа.
  • В отличие от du и прочих старых тулз, ncdu реально ускоряет рутину и экономит время.

Если у тебя сервер, VPS, Docker-хостинг или просто домашний NAS — обязательно попробуй ncdu. Это один из тех инструментов, после которых не хочется возвращаться к старым методам.

Официальный сайт проекта: https://dev.yorhel.nl/ncdu

Пусть твои диски всегда будут чистыми!


В этой статье собрана информация и материалы из различных интернет-источников. Мы признаем и ценим работу всех оригинальных авторов, издателей и веб-сайтов. Несмотря на то, что были приложены все усилия для надлежащего указания исходного материала, любая непреднамеренная оплошность или упущение не являются нарушением авторских прав. Все упомянутые товарные знаки, логотипы и изображения являются собственностью соответствующих владельцев. Если вы считаете, что какой-либо контент, использованный в этой статье, нарушает ваши авторские права, немедленно свяжитесь с нами для рассмотрения и принятия оперативных мер.

Данная статья предназначена исключительно для ознакомительных и образовательных целей и не ущемляет права правообладателей. Если какой-либо материал, защищенный авторским правом, был использован без должного упоминания или с нарушением законов об авторском праве, это непреднамеренно, и мы исправим это незамедлительно после уведомления. Обратите внимание, что переиздание, распространение или воспроизведение части или всего содержимого в любой форме запрещено без письменного разрешения автора и владельца веб-сайта. Для получения разрешений или дополнительных запросов, пожалуйста, свяжитесь с нами.

Leave a reply

Your email address will not be published. Required fields are marked