Проблема переполнения диска в Linux-системах — одна из самых распространённых, особенно при работе с серверами, где важно контролировать объемы хранимых данных. Когда свободное место заканчивается, система начинает работать нестабильно, могут возникать сбои в логировании, отказ приложений, а в худшем случае — потеря данных. Важно уметь быстро определить, какие файлы и каталоги занимают много места. Для этого в арсенале администратора есть два незаменимых инструмента — du и df.
Команда df: обзор использования дискового пространства
Команда df (disk free) позволяет получить общую картину — сколько всего места на диске, сколько из него занято и сколько свободно. Она показывает статистику по файловым системам, а не по отдельным файлам или папкам. Это удобно для быстрой диагностики.
Простейший вариант использования:
Опция -h выводит данные в человекочитаемом виде — с единицами измерения (K, M, G). Вывод команды может выглядеть так:
Этот результат сразу дает понять, что корневой раздел переполнен, и нужно выяснить, где именно сосредоточено наибольшее количество данных. Но df не покажет, какие конкретно каталоги занимают место. Для этого понадобится команда du.
Команда du: точечный анализ объема данных
Команда du (disk usage) используется для анализа объема файлов и каталогов. В отличие от df, она показывает, сколько места занимают отдельные директории и файлы. Например, чтобы просмотреть объем всех подкаталогов текущей директории, можно выполнить:
Здесь:
-
-h— человекочитаемый формат. -
--max-depth=1— ограничивает глубину обхода, показывая только первый уровень подкаталогов.
Пример вывода:
В этом примере видно, что каталог var занимает более двух гигабайт. Это уже направление для дальнейшего анализа.
Анализ конкретных директорий
Если подозрение падает на каталог /var, стоит проверить его содержимое:
Результат может быть, например, таким:
Теперь видно, что большая часть занятого пространства в /var — это логи. Возможно, старые журналы не удалялись и накапливались неделями или даже месяцами.
Поиск самых «тяжелых» каталогов с сортировкой
Чтобы быстро определить, какие каталоги занимают больше всего места, можно использовать связку du и sort:
Здесь:
-
2>/dev/null— убирает ошибки доступа. -
sort -hr— сортирует по размеру в обратном порядке. -
head -n 10— выводит только 10 самых больших директорий.
Это дает моментальный список лидеров по объему, на которых стоит сосредоточиться в первую очередь.
Дополнительные полезные ключи
Команда du имеет множество опций. Некоторые из них могут быть особенно полезны:
-
-s— выводит только итоговую сумму, без деталей по подкаталогам. -
--apparent-size— показывает размер файлов, как он видится пользователю (не учитывая сжатие, sparse-файлы). -
--exclude— позволяет исключить из анализа определенные файлы и папки.
Например:
Этот вариант игнорирует все файлы с расширением .log, что удобно, если нужно временно исключить шум от логов.
Комбинирование du и df: комплексный подход
Правильный анализ начинается с df, чтобы понять, какой раздел переполнен, а затем используется du для детального разбора содержимого. Такая последовательность обеспечивает логичный и целенаправленный подход к поиску проблемы. Например, если df показал, что / переполнен, а du — что в /var/log скопились гигабайты логов, значит, решение — очистка или архивация старых журналов.
Неочевидные ловушки: скрытые файлы и удалённые дескрипторы
Иногда даже после удаления больших файлов место не освобождается. Это происходит, если файл удалён, но дескриптор к нему ещё используется процессом. Такой файл продолжает занимать место до тех пор, пока процесс не будет перезапущен.
Выяснить это можно через lsof:
Если вы видите в списке удалённые, но всё ещё открытые файлы — это причина, почему df показывает занятое пространство, хотя du — нет. Это важно учитывать при разборе аномалий.
Заключение
Инструменты du и df — это мощные средства для мониторинга и анализа дискового пространства в Linux. Команда df даёт обзорную картину по разделам, а du позволяет точно определить, какие каталоги и файлы занимают наибольший объём. В сочетании с сортировкой, фильтрами и дополнительными утилитами, этими инструментами можно быстро выявить и устранить проблему переполнения диска. Регулярный контроль дискового пространства с помощью этих команд помогает избегать серьёзных сбоев и поддерживать стабильную работу системы.