Ncdu - анализ жесткого диска в Linux-терминале

Ncdu - анализ жесткого диска в Linux-терминале

Ncdu – это анализатор использования места на жестком диске с ncurses-интерфейсом. Программа была создана для обнаружения причин нехватки места на жестком диске.

Установка Ncdu

sudo apt-get install ncdu Ubuntu
yum install ncdu Fedora, CentOS
pacman -S ncdu Archlinux
brew install ncdu MacOS
После установки программы в систему, можно сразу же приступать к непосредственному использованию. Запуск утилиты без определения флагов и параметров приведёт к тому, что она тут же приступит к сканированию дерева подкаталогов, начиная с текущего.
После того, как сканирование будет завершено, вы сможете при помощи стрелок и клавиши Enter перемещаться по дереву подкаталогов:
Ncdu - анализ жесткого диска в Linux-терминале
Нажатая клавиша i покажет подробную информацию о текущем элементе:
Ncdu - анализ жесткого диска в Linux-терминале

Клавиатурные сокращения

  • n — сортировка по имени в обоих направлениях;
  • s — сортировка по размеру в обоих направлениях;
  • d — удалить текущий файл или каталог;
  • t — включение/отключение вывода каталогов перед файлами;
  • g — включение/отключение вывода процентного соотношения и графика;
  • a — переключение между выводом реального размера элементов и занимаемым пространством на диске;
  • e — показать/скрыть скрытые и исключённые файлы
  • r — пересчитать текущий каталог.

Флаги и параметры

ncdu  в качестве единственного параметра принимает путь к каталогу для сканирования, например:
ncdu /usr/share
Поскольку работа du-подобных утилит может занимать много времени, в ncdu предусмотрен вывод в файл, коотрый можно позже просмотреть. Чтобы сохранить результаты работы ncdu в файл, используется флаг -o  с указанием путь к файлу в качестве параметра:
ncdu -o ~/tmp/ncdu.results /usr/share
Позже, когда утилита завершит свою работу и вам понадобится ознакомиться с результатами, вы можете открыть ранее сохранённый файл:
ncdu -f ~/tmp/ncdu.results
В качестве пути к файлу может быть указан '-', но об этом немного ниже.

При помощи флага -0 вы можете запретить утилите совершать какой-бы то ни было вывод до тех пор, пока вся информация не будет собрана. Данный флаг имеет смысл использовать в случае, если утилита работает в графическом режиме или же выводит данные в stdout. Флаг -1 поход на предыдущий с тем отличием, что построчно выводит в stdout информацию о процессе сканирования.

По умолчанию в графическом режиме ncdu при сканировании обновляет информацию 10 раз в секунду. Если это каким-то образом негативно сказывается на работе системы или у вас глаз дёргается от быстро-меняющихся букв на экране, то можно воспользоваться флагом -q, сигнализирующим утилите о том, что обновление экрана нужно проводить не чаще раза в две секунды.

В случае, если вам необходимо отключить возможность удаления файлов и каталогов непосредственно из утилиты, добавьте при запуске флаг -r.

Также, среди оставшихся полезных опций следует отметить:

  • -x — ограничивает ncdu границами текущей файловой системы;
  • --exclude шаблон — позволяет определить шаблон имён файлов, подлежащих исключению из результатов сканирования; этот флаг можно использовать многократно
  • -X путь_к_файлу — действует аналогично предыдущему флагу, позволяя определить перечень шаблоном имён в отдельном файле

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

Используя старый-добрый ssh и флаги ncdu, можно запустить ncdu на удалённой системе, а результаты просмотреть локально:
ssh -C user@system ncdu -o - / | ./ncdu -f -