Как работает ncdu. Анализ использования диска в консоли, удобнее чем du

4 минуты чтения
Средний рейтинг статьи — 4.7

Когда на сервере внезапно заканчивается место, первое желание — запустить du или df, чтобы понять, кто съел гигабайты. Но стандартные утилиты не всегда удобны: они выдают слишком много строк, не умеют в интерактивную навигацию и требуют дополнительной фильтрации.

Здесь на помощь приходит ncdu (NCurses Disk Usage) — консольная утилита с интерфейсом, которая сочетает мощь du и удобство браузера файловой системы.

Установка

На популярных дистрибутивах ncdu есть в стандартных репозиториях:

# Ubuntu/Debian
sudo apt install ncdu
 
# CentOS/RHEL
sudo yum install ncdu
 
# Arch Linux
sudo pacman -S ncdu

Основные возможности

После запуска ncdu начинает сканировать каталог и выводит список файлов и папок с их размером.

Пример:

ncdu /var

Вы увидите интерактивный список:

--- /var -------------------------
    2,4 GiB [##########] log
  850,0 MiB [###       ] cache
  110,0 MiB [          ] tmp
   10,0 MiB [          ] backups

Управление клавиатурой:

  • ↑ / ↓ — перемещение по списку
  • Enter — перейти в каталог
  • d — удалить выбранный файл/директорию прямо из интерфейса
  • q — выход

Преимущества перед du

  • Интерфейс: не нужно руками фильтровать du -sh * | sort -h
  • Удобная навигация по вложенным папкам
  • Возможность удаления «тяжёлых» файлов прямо во время анализа
  • Подсчёт в удобочитаемых единицах (MiB, GiB)

Полезные ключи

  • -x — анализировать только один файловый раздел (не переходить на другие точки монтирования).
  • --exclude PATTERN — исключить файлы/папки по маске.
  • -q — тихий режим, чтобы ускорить сканирование.
  • -o FILE — сохранить результаты анализа в файл.
  • -f FILE — загрузить сохранённый ранее результат (например, удобно пересылать коллегам).

Пример реального использования

Чтобы найти самые большие директории на сервере:

ncdu /

Если нужно только домашнюю папку:

ncdu ~

Чтобы исключить логи (или любую другую директорию):

ncdu --exclude /var/log /

Продвинутое использование и советы

Помимо базового анализа дискового пространства, ncdu можно применять и в более сложных сценариях. Например, сканировать удалённые серверы или проверять использование диска другим пользователем.

Сканирование удалённых каталогов

Можно анализировать директории по SSH. Синтаксис:

ssh -C user@system ncdu -o- / | ./ncdu -f-

Для этого нужно:

  • иметь доступ по SSH к удалённому хосту,
  • установить ncdu как на локальной, так и на удалённой машине.

Удаление файлов и директорий

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

Чтобы это сделать:

  1. перейдите к нужному файлу или каталогу,
  2. нажмите d для удаления.

Использование ncdu в автоматизации

ncdu можно встроить в скрипты для регулярного мониторинга диска. Например, запускать его по cron и сохранять результаты в файл. Это удобно для администраторов, которые хотят иметь историю использования диска.

Пример еженедельного запуска и сохранения отчёта:

0 3 * * 0 ncdu -o- / | gzip > /var/log/ncdu-$(date +\%F).json.gz
  • -o- — вывод в JSON-формате,
  • gzip — сжатие для экономии места,
  • /var/log/ncdu-YYYY-MM-DD.json.gz — архивированный отчёт по дате.

Так можно быстро анализировать тренды заполнения диска и вовремя реагировать на проблемы.

Заключение

ncdu — must-have для администраторов и разработчиков, которые работают с Linux-серверами. Утилита позволяет в несколько нажатий найти, что именно «съедает» место на диске, и быстро освободить пространство.

4 минуты чтения
Средний рейтинг статьи — 4.7

Настроить мониторинг за 30 секунд

Надежные оповещения о даунтаймах. Без ложных срабатываний