2.10.19. Анализ дискового пространства с помощью ncdu

Утилита ncdu (NCurses Disk Usage) позволяет анализировать дисковое пространство в интерактивном режиме. Она отображает данные в псевдографическом интерфейсе и позволяет быстро перемещаться по древовидной структуре каталогов. Доступна по умолчанию на всех серверах обычного и бизнес-хостинга.

Для запуска подключитесь к хостинг-аккаунту по SSH и выполните команду:

ncdu

После запуска ncdu сканирует дисковое пространство для дерева каталогов, начиная с текущего. Прервать сканирование можно клавишей q.

При запуске можно явно задавать, что нужно сканировать:

  • Всё дисковое пространство хостинг-аккаунта независимо от текущего каталога:
    ncdu ~
  • Содержимое только определённого каталога:
    ncdu ~/путь/к/каталогу

Утилиту можно запускать с различными ключами:

  • –exclude=путь/к/каталогу — исключить указанный каталог из сканирования.
  • -o result.txt — выполнить сканирование и сохранить результаты в указанный файл.
  • -f result.txt — вместо сканирования открыть результаты из указанного файла. Примечание По умолчанию утилита считает, что файл не имеет отношения к текущей файловой системе, поэтому клавиши повторного сканирования, удаления файлов/каталогов и открытия консоли будут отключены.
  • -e — расширенное сканирование. Дополнительно сканируются: время изменения файлов и каталогов, права доступа, информация о владельце. Внимание При работе с результатами сканирования из файла ключ должен использоваться как при сохранении, так и открытии.
  • –exclude шаблон — исключить из сканирования файлы и каталоги, совпадающие с шаблоном (они будут отображены, но не будут учтены в статистике). Ключ можно указывать несколько раз.
  • -X файл, –exclude-from файл — исключить из сканирования файлы и каталоги, совпадающие с шаблонами, перечисленными в указанном файле (каждый шаблон с новой строки).
  • -L, –follow-symlinks — при сканировании следовать по симлинкам и учитывать в статистике размеры файлов и каталогов, на которые они указывают.
  • -r — запрет удаления файлов и каталогов из утилиты (режим только для чтения).
  • -rr — запрет открытия консоли в текущем каталоге.
  • –confirm-quit — требовать подтверждение при выходе.

Полный список ключей можно посмотреть в справке, выполнив команду:

man ncdu

После сканирования утилита выводит данные по всем каталогам в виде списка:

Информация выводится в несколько столбцов:

  • В первом столбце могут выводиться специальные обозначения, среди которых:
    • e — пустой каталог.
    • @ — элемент не является файлом или каталогом (например, симлинк, сокет и т. д.).
    • < — файл/каталог исключён из статистики (см. ключи).
    • ! — ошибка при чтении каталога.
    • . — ошибка при чтении подкаталога (размер может быть неверным).
  • Размеры и единицы измерения. Могут выводиться в одном из двух форматов:
    • С использованием префикса 2 в виде степеней от 1024 (KiB, MiB и т. д.).
    • С использованием префикса 10 в виде степеней от 1000 (KB, MB и т. д.).
  • Граф — количество символов # показывает, какой из файлов/подкаталогов в текущем каталоге занимает больше места.
  • Название файла/каталога.

Внизу отображается информация о текущем каталоге:

  • Объём занимаемого места на диске.
  • Реальный размер содержимого каталога.
  • Количество элементов (инодов).
  • , , j, k — перемещение по списку вверх-вниз.
  • , l, Enter — переход в выбранный каталог.
  • , h — возврат в родительский каталог.
  • a — режим отображения размера: реальный размер или занимаемое место на диске. Примечание Информация на диске хранится блоками, поэтому занятое место может быть больше реального размера файла.
  • n — сортировка по имени: по алфавиту или в обратном порядке.
  • s — сортировка по размеру: по убыванию или возрастанию.
  • e — включение/отключение отображения скрытых элементов (файлов и каталогов с точкой в начале или исключённых из сканирования).
  • g — режим отображения занятого места: граф, проценты, оба варианта, не отображать. Процент относится к текущему каталогу, граф — к наибольшему элементу в текущем каталоге.
  • i — информация о выбранном объекте (название, полный путь, тип, занимаемое место на диске и реальный размер). В расширенном режиме (с ключом -e) дополнительно выводятся права и дата изменения.
  • r — повторное сканирование текущего каталога.
  • d — удаление выбранного файла или каталога.
  • c — включение/отключение отображения количества вложенных элементов для каждого каталога (инодов).
  • C — сортировка по количеству вложенных элементов (инодов): по убыванию или возрастанию.
  • t — включение/отключение отображения каталогов перед файлами: каталоги отображаются в начале списка или вместе с файлами.
  • m — включение/отключения отображения времени последнего изменения файлов/каталогов (mtime). Внимание! Доступно только в расширенном режиме (с ключом -e).
  • M — сортировка по времени последнего изменения: по убыванию или возрастанию. Внимание! Доступно только в расширенном режиме (с ключом -e).
  • q — выход.
  • b — открытие консоли в текущем каталоге (после выхода будет возврат в ncdu).
  • ? — просмотр краткой справки.

Сканирование всего содержимого хостинг-аккаунта с сохранением результатов в файл и его архивацией:

  • Сканирование:
    ncdu -1xo- ~ | gzip > result.gz
  • Открытие файла для анализа:
    zcat result.gz | ncdu -f-

Сканирование текущего каталога с сохранением результатов в файл и открытием для анализа:

ncdu -o- | tee result.txt | ncdu -f-
Содержание