Как работает ncdu. Анализ использования диска в консоли, удобнее чем du
Когда на сервере внезапно заканчивается место, первое желание — запустить 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
позволяет удалять файлы и папки прямо из интерфейса.
Чтобы это сделать:
- перейдите к нужному файлу или каталогу,
- нажмите 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-серверами. Утилита позволяет в несколько нажатий найти, что именно «съедает» место на диске, и быстро освободить пространство.
Настроить мониторинг за 30 секунд
Надежные оповещения о даунтаймах. Без ложных срабатываний