Yandex
Обновить настройки cookies

Анализ дискового пространства: ncdu, du

Мониторинг дискового пространства, анализ места на диске linux имеет решающее значение для поддержания производительности вашей системы и предотвращения проблем с недостаточным объемом памяти, таких как сбои системы, потеря данных и прерывание работы сервисов.

Рекомендуем регулярно проверять дисковое пространство в Linux, если вы управляете виртуальным частным сервером (VPS), поддерживаете базы данных и запускаете крупномасштабные приложения.

du

Команда du - это стандартная команда Linux/Unix, которая позволяет пользователю быстро получить информацию об использовании диска в каталогах и файлах. Она лучше всего применяется к определенным каталогам и допускает множество вариаций для настройки вывода в соответствии с вашими потребностями.

Синтаксис утилиты du следующий:
du [options] [file]

Ключи du

Команда du предлагает ряд опций, которые расширяют ее функциональность. Давайте рассмотрим некоторые часто используемые опции:
  • -s или --summarize  Предоставляет сводную информацию об использовании диска для указанного каталога или файла, не отображая отдельные сведения об использовании подкаталогов.
  • -h или --human-readable Отображает размеры в удобном для восприятия формате, используя такие единицы измерения, как KB, MB, GB и т. д. Этот параметр облегчает интерпретацию информации об использовании диска.
  • -c или --total Показывает общее использование диска в дополнение к индивидуальному использованию для каталогов и файлов.
  • -a или --all Отображает информацию об использовании диска для всех файлов и каталогов, включая скрытые.
  • --time Показывает время последней модификации любого файла или каталога
  • --exclude Исключение определенных каталогов или файлов и папок из расчета использования диска на основе шаблонов или имен.

Команда 'du' в Linux - это универсальный инструмент, который может дать ценную информацию об использовании вашего диска.

Давайте начнем с простого примера. Предположим, вы хотите проверить использование диска в определенном каталоге. Вы можете сделать это, используя команду 'du', за которой следует путь к каталогу. Например, чтобы проверить использование диска каталога /home/user/documents, используйте следующую команду:
du /home/user/documents
Вывод этой команды покажет общее использование диска указанным каталогом, включая все его подкаталоги. Отображаемое число - это общий размер всех файлов и каталогов, содержащихся в указанном каталоге, измеренный в килобайтах.

Но что, если вы хотите увидеть размер каждого подкаталога по отдельности? Вы можете сделать это, используя опцию '-h' с командой 'du'. Эта опция облегчает чтение вывода, отображая размеры в формате «читаемом человеком» (т.е. в килобайтах (K), мегабайтах (M), гигабайтах (G) и т.д.). Вот как вы можете использовать эту опцию:
du -h /home/user/documentsВ этом выводе вы увидите список всех подкаталогов в указанном каталоге вместе с их соответствующими размерами и определите, какие подкаталоги занимают больше всего места.

Использование флагов '-a' и '-h'

Предположим, вы хотите видеть использование диска всех файлов в каталоге, а не только общий размер каталога. Вы можете сделать это, используя флаг '-a'. Объедините это с флагом '-h', чтобы сделать вывод более понятным. Вот пример:
du -ah /home/user/documentsВ этом выходе вы увидите список всех файлов в указанном каталоге вместе с их соответствующими размерами. Это поможет вам узнать, какие конкретные файлы занимают больше всего места.

Использование флага «--exclude»

Наконец, флаг '–exclude=PATTERN' позволяет исключить файлы, соответствующие определенному шаблону. Это может быть полезно, если вы хотите исключить определенные типы файлов. Вот пример:
du -h --exclude='*.txt' /home/user/documentsВ этом примере 'du' исключает все файлы .txt из расчета использования диска, что позволяет сосредоточиться на других типах файлов.

Это всего лишь несколько примеров из многих способов использования команды 'du' в Linux. Объединив различные флаги и опции, вы можете настроить команду в соответствии с вашими конкретными потребностями и получить подробную картину использования вашего диска.

Использование опции -c:

Эта опция отображает общий итог:
du -c -h kt.txt pt.txt
8.0K    kt.txt
4.0K    pt.txt
12.0K  total

Использование опции --time:

Эта опция используется для отображения времени последней модификации на выходе du.

ncdu

ncdu (NCurses Disk Usage) - это версия популярной команды 'du с командой, которая основана на ncurses и предлагает самый быстрый способ анализа и отслеживания использования дискового пространства в Linux. Это простая, быстрая и легкая в использовании программа, которая работает на любой минимальной системе на базе Linux/Unix с установленным ncurses.

Обладая отличным интерфейсом утилита ncdu linux отображает информацию, показывающую использование дискового пространства в мегабайтах и гигабайтах, а также графической полосой использования, именами файлов/директорий, удалением файлов, опциями обновления и т.д.

Сначала обновите систему:
apt update
Затем выполните команду обновления:
apt upgrade
Рассмотрим как установить ncdu на Debian (10,11 и 12) и Ubuntu (все версии).

Для Debian, Ubuntu и Mint
apt install ncdu 
Для RHEL/CentOS/Fedora и Rocky/AlmaLinux
yum install ncdu 
Для Gentoo Linux
emerge -a sys-apps/ncdu     
Для Alpine Linux
apk add ncdu                 
Для Arch Linux
pacman -S ncdu               
Для OpenSUSE
zypper install ncdu         
Для FreeBSD   
pkg install ncdu
После установки запустите ncdu:
ncdu
Эта команда отсканирует ваш рабочий каталог и откроет интерфейс ncdu.

Формат вывода

После завершения сканирования ncdu покажет вам структуру файлов и каталогов с использованием диска:  Записи в интерфейсе браузера могут быть отображены с одним символом. Эти символы имеют следующее значение:
  • ! При чтении этого каталога произошла ошибка.
  • . При чтении подкаталога произошла ошибка, поэтому указанный размер может быть неправильным.
  • < Файл или каталог исключается из статистики с помощью шаблонов исключения.
  • > Каталог находится в другой файловой системе.
  • ^ Каталог исключен из статистики из-за того, что является псевдофайловой системой Linux.
  • @ Это не файл и не папка (символическая ссылка, сокет, ...).
  • Х Тот же файл уже был засчитан (жесткая ссылка).
  • е Пустой каталог.

Навигация

Для навигации по файлам используйте клавишу со стрелкой. Это позволит вам двигаться вверх и вниз. Чтобы увидеть информацию о выбранном каталоге (путь, использование диска), нажмите 'i'.
Нажатие кнопки вправо, enter, l  -  Открыть выбранный каталог
Нажатие кнопки влево left, <, h  -  Перейти в предыдущий каталог

Чтобы скрыть это окно, нажмите 'i' еще раз.

Доступные функции интерфейса

По умолчанию файлы и каталоги сортируются по размеру. Однако интерфейс ncdu предлагает различные варианты их сортировки.

n  Упорядочить по имени файла (нажмите еще раз, чтобы упорядочить по убыванию)

s  Упорядочить по размеру файлов

C  Упорядочить по количеству элементов

a  Переключение между отображением использования диска и  отображением видимого размера.

M  Упорядочить по последнему дочернему mtime или измененному времени.

d  Удаление выбранного файла или каталога. Сообщение об ошибке будет показано, если содержимое каталога не совпадает или больше не существует в файловой системе.

t    Переключайте папки перед файлами при сортировке.

g  Переключение между отображением процента, графика, обоих или ни одного. Процент - относительно размера текущего каталога, график - относительно самого большого элемента в текущем каталоге.

c  Переключение отображения количества дочерних элементов.

m  Переключение отображения последнего дочернего mtime или измененного времени.

e  Показать/скрыть «скрытые» или «исключенные» файлы и каталоги. Обратите внимание, что даже если вы не видите скрытые файлы и каталоги, они все равно существуют и учитываются при подсчете размеров каталогов. Если вы подозреваете, что итоговые значения, отображаемые в нижней части экрана, не соответствуют действительности, убедитесь, что вы не включили эту опцию.

i  Отображение информации о текущем выбранном элементе.

r  Обновление/пересчет текущего каталога.

b  Ncdu определит предпочитаемую оболочку по переменным «NCDU_SHELL» или «SHELL» (в том же порядке) или вызовет «/bin/sh», если ни одна из них не задана. Это позволяет вам также настроить выполнение другой команды при нажатии клавиши 'b'. Например, чтобы вызвать файловый менеджер vifm(1) вместо оболочки, запустите ncdu следующим образом:

export NCDU_SHELL=vifmncdu
Ncdu установит переменную окружения «NCDU_LEVEL» или увеличит ее перед запуском оболочки. Эта переменная позволяет определить, когда ваша оболочка запускается из ncdu, что может быть полезно для избежания вложенности нескольких экземпляров ncdu. Сам Ncdu (в настоящее время) не предупреждает при попытке запуска вложенных экземпляров.

q  выйти.

Ключи ncdu

-h вывод небольшого справочного сообщения

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

-v  Версия для печати.

-x  Учитывает только файлы и каталоги, находящиеся в той же файловой системе, что и указанный dir.

--exclude PATTERN  Исключить файлы, соответствующие шаблону. Эти файлы по-прежнему будут отображаться по умолчанию, но не будут учитываться в статистике использования диска. Этот аргумент можно добавить несколько раз, чтобы добавить больше шаблонов.

--exclude-from FILE Исключить файлы, соответствующие любому шаблону в FILE. Шаблоны должны быть разделены новой строкой.

--include-caches, --exclude-caches  Включить (по умолчанию) или исключить каталоги, содержащие CACHEDIR.TAG. Эти каталоги будут отображаться, но их содержимое не будет сканироваться и учитываться в статистике использования диска.

--include-kernfs, --exclude-kernfs (Только для Linux) Включить (по умолчанию) или исключить псевдофайловые системы Linux, например /proc (procfs), /sys (sysfs).

Полный список известных в настоящее время псевдофайловых систем: binfmt, bpf, cgroup, cgroup2, debug, devpts, proc, pstore, security, selinux, sys, trace.

Нюансы

Несоответствие данных du, ncdu и ПО

Хотя команды ‘ncdu', 'du' является мощным инструментом для оценки использования диска в Linux, существуют другие методы и инструменты, которые также могут быть эффективными, особенно для более сложных сценариев или для пользователей, которые предпочитают другой подход. Такой альтернативой является команда «df».

Использование команды 'df'

Команда 'df' в Linux используется для определения использования дискового пространства файловой системы. В то время как 'du' оценивает использование файлов и каталогов на диске, 'df' отображает объем используемого и доступного дискового пространства в файловых системах.

Основной синтаксис df:
df [options] [filesystems]
Здесь,
  • options: Это дополнительные флаги, которые изменяют вывод команды.
  • filesystems: Вы можете указать конкретные файловые системы для проверки их использования вместо получения информации для всех смонтированных дисков.
Если имя файла не указано, он отображает пространство, доступное во всех установленных в данный момент файловых системах.

Если вы хотите запустить df в удобном читаемом формате, используйте опцию --human-readable (сокращенно-h ), вот пример того, как использовать команду 'df':
df -h
В этом примере флаг '-h' используется для отображения вывода в удобном формате. Вы увидите список всех смонтированных файловых систем, а также их общий размер, используемое пространство, доступное пространство и процент используемого пространства.
Если удаление ненужных файлов на сервере не очищает дисковое пространство, вы можете просмотреть список всех удаленных файлов с открытыми дескрипторами файлов с помощью этой команды:

lsof | grep deleted
А затем выполнить перезапуск
service <имя_процесса> restart
Вот краткое сравнение методов проверки дискового пространства:

СпособЗаПротив
Команда 'du'Подробная информация об

использовании диска, множество

вариантов
Может потребоваться устранение

ошибок разрешений
Команда 'df'Обеспечивает использование дисковых

файловых систем
Менее подробно, чем «du»
Сторонние инструменты

(например, 'ncdu')
Удобный интерфейс, графический выводТребуется установка, может быть не таким гибким,

как инструменты командной строки
02 Sep 2024, 09:59:51