5 ключевых параметров команды df и практические нюансы

Введение

Системное сообщение «No space left on device» способно мгновенно нарушить стабильность любого рабочего сервера, и первым средством оперативной локализации проблемы всегда выступает утилита df. В данном материале мы разберем наиболее эффективные сценарии ее применения: от вывода данных в интуитивно понятных величинах и фильтрации служебных виртуальных разделов до выявления дефицита индексных дескрипторов (Inode), когда запись блокируется даже при наличии свободных гигабайт. Дополнительно затронем причину расхождений между показателями df и du, а также способы возврата удерживаемого пространства.

1. Базовый анализ накопителей и вывод в удобных единицах измерения (df -h)

Для первичной оценки доступного пространства на всех подключенных накопителях операционной системы Linux используется штатная команда df.
Если запустить ее без уточняющих ключей, емкость отображается в блоках по 1 КБ (1K-blocks), из-за чего составить быстрое представление об объемах в оперативной работе затруднительно.
⚙️ [Полезные параметры утилиты]

-h : форматирует емкость в привычные единицы измерения (K, M, G).
-T : выводит отдельный столбец с типом файловой системы (ext4, xfs, overlay и т. д.).
-i : вместо физических блоков выводит статистику индексных дескрипторов (Inode), определяющих лимит числа создаваемых файлов.
-t : ограничивает отчет только указанным типом файловой системы.
-x : исключает разделы заданного типа из финальной таблицы.

Базовый вывод команды df

С флагом -h (–human-readable) утилита преобразует сухие технические цифры в легко воспринимаемые величины.
Как демонстрирует вывод терминала, громоздкие блоки автоматически переводятся в мегабайты (M) и гигабайты (G), позволяя администратору моментально оценить баланс занятого и свободного места.

Вызов df с ключом -h

2. Фильтрация вывода: исключение виртуальных разделов и выбор целевых ФС (df -h -x / -t)

Команда df -h -x tmpfs -x devtmpfs -x squashfs последовательно применяет аргумент -x (–exclude-type), очищая консоль от второстепенных служебных структур.
В современных инсталляциях Ubuntu экран нередко загромождают многочисленные петлевые устройства пакетов snap с типом squashfs, а также энергозависимые файловые системы в оперативной памяти (tmpfs, devtmpfs).
Такой подход помогает скрыть лишние системные точки монтирования и сфокусироваться исключительно на реальных физических накопителях.

Исключение виртуальных ФС через параметры -x

Если требуется решить обратную задачу и проинспектировать только конкретный формат хранения данных, используют ключ -t (–type), как в команде df -h -t ext4.
В результате вывод изолирует только тома стандарта ext4, исключая необходимость вручную искать главные дисковые разделы среди объемного списка смонтированных ресурсов.

Фильтрация разделов ext4 с помощью ключа -t

3. Проблема исчерпания Inode: когда место есть, но файлы не создаются (df -i)

Чтобы смоделировать работу с дескрипторами на практике, создадим временный каталог и наполним его десятью пустыми текстовыми файлами.

Создание тестовой папки и файлов для проверки inode

Инструкция df -i /tmp/df-test позволяет оценить расход индексных дескрипторов (Inode) файловой системы, к которой принадлежит целевой путь.
Даже если на диске доступны десятки свободных гигабайт, исчерпание лимита Inode (значение IUse% достигает 100%) сделает запись новых файлов технически невозможной.
Анализируя столбцы Inodes (общий пул), IUsed (задействованное количество) и IFree (доступный остаток), можно быстро диагностировать нехватку табличных записей файловой системы.

Проверка состояния дескрипторов Inode в каталоге /tmp/df-test

По завершении проверки удалим созданную экспериментальную директорию вместе со всем содержимым с помощью команды rm -rf /tmp/df-test.

Очистка тестовых данных через rm

4. Тонкости системного администрирования: несовпадение данных df и du из-за удерживаемых дескрипторов

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

Проверка наличия и инсталляция пакета lsof

Вызов lsof +L1 отображает процессы, удерживающие открытыми файлы, количество жестких ссылок на которые уже равно нулю.
Когда тяжелый лог удаляется командой rm, но работающий сервис не закрывает соответствующий файловый дескриптор, занятые блоки не возвращаются операционной системе. В этом случае du сообщает об освобождении объема, а df продолжает показывать заполненный раздел.
Выяснив идентификатор PID из таблицы вывода, администратор может перезапустить или корректно завершить соответствующую службу, после чего дескриптор закроется, а дисковое пространство сразу станет доступным.

Поиск удерживаемых открытых файлов с помощью lsof +L1

Мы разобрали базовые возможности и тонкости работы с утилитой df в Linux, знание которых необходимо при ежедневном сопровождении инфраструктуры.
Своевременное комбинирование этих параметров поможет вам оперативно расследовать инциденты и предотвращать аварийные остановки сервисов из-за переполнения хранилищ.