ncdu: Эффективный Анализ и Очистка Дискового Пространства в Linux
📊 ncdu: Когда место на диске исчезает, а вы не знаете куда
Знакомая ситуация: на сервере внезапно заканчивается свободное дисковое пространство. Первым делом вы запускаете команду df -h, чтобы убедиться, что корневой раздел действительно переполнен. Затем начинается утомительный процесс последовательного выполнения du -sh * в каждой директории, погружения всё глубже и глубже, пока не будет обнаружена причина избыточного потребления места. Этот метод может отнять часы, особенно если структура каталогов сложна и содержит тысячи папок.
ncdu (NCurses Disk Usage) — это мощный интерактивный анализатор дискового пространства для терминала. Он быстро сканирует указанную директорию и отображает её содержимое в виде отсортированного списка, наглядно показывая размеры файлов и папок в процентах. Утилита позволяет интуитивно перемещаться по файловой системе с помощью стрелок, углубляться в директории нажатием Enter и мгновенно удалять ненужные данные клавишей Delete. Всё это происходит в наглядном и удобном текстовом интерфейсе, значительно ускоряя процесс выявления и устранения проблем с дисковым пространством.
🟢 Как установить ncdu
Установка ncdu осуществляется с помощью стандартных пакетных менеджеров для большинства Linux дистрибутивов и macOS.
# Ubuntu/Debian
sudo apt install ncdu
# CentOS/RHEL/Fedora
sudo dnf install ncdu
# Arch Linux
sudo pacman -S ncdu
# macOS
brew install ncdu
# Из исходников (для устаревших систем)
Если ваша операционная система не поддерживает установку из репозиториев, вы можете собрать ncdu из исходного кода.
wget https://dev.yorhel.nl/download/ncdu-2.6.tar.gz
tar -xzf ncdu-*.tar.gz
cd ncdu-*
./configure && make && sudo make install
🟢 Базовое использование ncdu
После установки вы можете сразу приступить к работе с ncdu.
# Просканировать текущую папку
ncdu
# Просканировать конкретную папку (например, /var)
ncdu /var
# Просканировать всю систему (требуются права суперпользователя)
sudo ncdu /
🟢 Как работать внутри ncdu
После запуска ncdu вы увидите список папок и файлов, отсортированных по размеру в порядке убывания (самые крупные элементы расположены сверху). В левой части отображается размер, а в правой — процент от общего объёма сканируемой директории.
- Стрелки вверх/вниз — перемещение по списку.
- Enter — вход в выбранную папку.
- `]` — выход на уровень выше.
- `d` — удаление выбранного файла или папки (с обязательным подтверждением!).
- `n` — сортировка по имени.
- `s` — сортировка по размеру.
- `q` — выход из программы.
➕ Преимущества ncdu
- Наглядность: Мгновенно показывает, какие файлы и директории занимают больше всего места, избавляя от ручного перебора команд.
- Скорость: Работает исключительно быстро даже на больших дисковых разделах.
- Безопасность: Функция удаления требует подтверждения, минимизируя риск случайного удаления важных данных.
- Портативность: Эффективно работает в любой терминальной среде Linux, включая минимальные установки без графического интерфейса.
➖ Недостатки ncdu
- Не предустановлен в большинстве дистрибутивов, что требует дополнительной установки.
- Для сканирования системных папок, к которым у обычного пользователя нет доступа, требуются права суперпользователя (
sudo). - Интерфейс TUI (Text User Interface) может показаться непривычным новичкам, но осваивается за несколько минут.
🔴 Киллер-фичи ncdu
1. Сканирование и просмотр на удалённом сервере
Вы можете сканировать удалённый сервер и просматривать результаты на своей локальной машине, не нагружая сервер повторным сканированием.
ssh user@server ncdu -o- / | ncdu -f-
2. Экспорт результатов для отчётов
ncdu позволяет экспортировать данные сканирования в файл формата JSON, что удобно для последующего анализа или создания отчётов.
ncdu -o scan.json /
Затем вы можете поделиться этим JSON-файлом или открыть его позже без повторного сканирования файловой системы.
3. Режим «только папки» (игнорирование файлов)
Для фокусировки исключительно на директориях и игнорирования служебных файловых систем вы можете использовать опцию --exclude-kernfs.
ncdu --exclude-kernfs / # не заходит в /proc, /sys и т.д.
4. Цвета и графическая шкала
В современных версиях ncdu реализованы цветные индикаторы, подобные тем, что используются в btop, что позволяет ещё нагляднее оценивать пропорции занимаемого места.
Когда что использовать?
du -sh— для быстрой оценки размера одной конкретной папки.ncdu— для глубокого интерактивного анализа и эффективной очистки диска.df -h— для общего обзора занятости дисковых разделов.
Лайфхак
Запускайте sudo ncdu / хотя бы раз в месяц на своих серверах, и вы удивитесь, сколько ненужного «мусора» накопилось в директориях вроде /var/log или в кеше пакетного менеджера.
Теперь, вместо получасового блуждания с du, вы за 30 секунд получаете полную картину использования диска и можете оперативно приступить к очистке. Это особенно актуально, когда клиент жалуется на «тормоза» сервера, а реальная причина — это исчерпанное дисковое пространство.
А какие инструменты для мониторинга и управления дисковым пространством используете вы? Поделитесь своим опытом в комментариях!
🐱 Ссылка на GitHub