Как быстро очистить место на диске с помощью ncdu
Ситуация, когда на сервере заканчивается место, знакома каждому системному администратору. Вы вводите df -h, видите заполненный раздел, а затем начинаете бесконечный квест с du -sh *, пытаясь найти, какая именно директория «съела» всё свободное пространство. Если вложенность каталогов велика, этот процесс может отнять массу времени. К счастью, есть более эффективный инструмент — ncdu.
Что такое ncdu?
ncdu (NCurses Disk Usage) — это интерактивная утилита для анализа дискового пространства в терминале. В отличие от стандартных команд, она сканирует файловую систему и визуализирует данные в удобном списке, отсортированном по размеру. Вы можете перемещаться по дереву каталогов, быстро находить «тяжелые» файлы и удалять их прямо из интерфейса программы.
Установка ncdu
# Ubuntu/Debian
sudo apt install ncdu
# CentOS/RHEL/Fedora
sudo dnf install ncdu
# Arch Linux
sudo pacman -S ncdu
# macOS
brew install 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
# Просканировать конкретную папку (например, /var)
ncdu /var
# Просканировать всю систему (только с sudo)
sudo ncdu /
Навигация и управление
После запуска вы увидите список папок и файлов, отсортированный по размеру. Основные горячие клавиши:
- Стрелки (вверх/вниз) — навигация по списку.
- Enter — вход в выбранную директорию.
- ] — возврат на уровень выше.
- d — удаление выбранного элемента (с подтверждением).
- n — сортировка по имени.
- s — сортировка по размеру.
- q — выход из программы.
Киллер-фичи
Утилита предлагает несколько продвинутых возможностей для профессионалов:
- Удаленное сканирование: Вы можете просканировать сервер и передать данные на локальную машину для анализа, не перегружая удаленный хост:
ssh user@server ncdu -o- / | ncdu -f- - Экспорт результатов: Результаты сканирования можно сохранить в JSON для последующего анализа или отчетов:
ncdu -o scan.json / - Исключение системных путей: Чтобы не тратить время на сканирование виртуальных файловых систем, используйте флаг:
ncdu --exclude-kernfs /
Если вы хотите узнать больше о том, как поддерживать порядок на сервере, рекомендуем ознакомиться с нашей статьей про мониторинг состояния Linux-систем.