Добавить в корзинуПозвонить
Найти в Дзене

ncdu - визуальный анализ того, куда делось место

Ситуация: сервер ругается, что диск заполнен на 95%. Вы запускаете df -h, видите, что корень почти полный. Дальше начинаются танцы с du -sh */ - приходится долбиться в каждую папку, спускаться глубже, терять нить, забываать, где были. ncdu (NCurses Disk Usage) делает то же самое, но с интерактивным интерфейсом, где можно ходить стрелками и сразу видеть всё дерево папок. Как это работает: Запускаем ncdu / - утилита сканирует директорию (от 10 секунд до пары минут, в зависимости от объёма) и показывает список папок и файлов, отсортированный по размеру. Навигация внутри ncdu: - Стрелки вверх/вниз - перемещение по списку - Enter - зайти внутрь папки - Стрелка влево - вернуться назад - d - удалить выбранный файл/папку (с подтверждением) - n - сортировка по имени (по умолчанию — по размеру) - q - выход Вариант 1 (Быстрый анализ конкретной папки): ncdu /var # Тут же видно, что /var/log весит 40 гигабайт Вариант 2 (Сканирование в фоне с сохранением результата): # Сохранить результат скан

ncdu - визуальный анализ того, куда делось место

Ситуация: сервер ругается, что диск заполнен на 95%. Вы запускаете df -h, видите, что корень почти полный. Дальше начинаются танцы с du -sh */ - приходится долбиться в каждую папку, спускаться глубже, терять нить, забываать, где были.

ncdu (NCurses Disk Usage) делает то же самое, но с интерактивным интерфейсом, где можно ходить стрелками и сразу видеть всё дерево папок.

Как это работает:

Запускаем ncdu / - утилита сканирует директорию (от 10 секунд до пары минут, в зависимости от объёма) и показывает список папок и файлов, отсортированный по размеру.

Навигация внутри ncdu:

- Стрелки вверх/вниз - перемещение по списку

- Enter - зайти внутрь папки

- Стрелка влево - вернуться назад

- d - удалить выбранный файл/папку (с подтверждением)

- n - сортировка по имени (по умолчанию — по размеру)

- q - выход

Вариант 1 (Быстрый анализ конкретной папки):

ncdu /var

# Тут же видно, что /var/log весит 40 гигабайт

Вариант 2 (Сканирование в фоне с сохранением результата):

# Сохранить результат сканирования

ncdu -o /tmp/disk_usage.json /home

# Потом посмотреть без повторного сканирования

ncdu -f /tmp/disk_usage.json

Вариант 3 (Исключить определённые папки):

# Не сканировать монтирования и временные папки

ncdu --exclude /mnt --exclude /tmp /

Из личной практики:

Диск забился на сервере с сайтами. df -h показал, что проблема в /var. Запустил ncdu /var - увидел, что /var/log/nginx весит 30 гигабайт. Зашёл туда стрелкой, увидел, что один лог-файл раздулся до нечеловеческих размеров. Нажал d, подтвердил удаление - место освободилось за 30 секунд. Без ncdu я бы тыкался руками ещё полчаса.

Почему лучше, чем `du`: интерактивность, наглядность, возможность удалять прямо из интерфейса. Не нужно запоминать путь, чтобы потом писать rm -rf.

P.S. На больших дисках (несколько терабайт) первое сканирование может занять несколько минут. Запускайте через screen или tmux, чтобы не оборвалось.

👉🏻 Я в Telegram - https://dzen.ru/id/686102a27e39653c3429f77f

👉🏻 Я в VK - vk.com/helcode

👉🏻 Я на Boosty - boosty.to/helcode