Гид по технологиям

Как быстро найти и очистить место на диске в Linux: df, du и ncdu

• 5 min read • Системное администрирование • Обновлено 01 Dec 2025
Освободить место в Linux: df, du и ncdu
Освободить место в Linux: df, du и ncdu

Фото: панель состояния диска сервера

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

Недостаток свободного места на сервере — частая причина сбоев обновлений, падений логирования и проблем с базами данных. На production-системах внезапная потеря места может привести к потере данных, невозможности перезапустить службы и появлению неочевидных ошибок (например, процессы держат удалённые файлы в памяти).

Определите базовую цель: обнаружить, какие данные занимают место, и безопасно освободить его без риска для работы служб.

Основные команды и что они показывают

  • df — отчёт о доступном/занятом месте на смонтированных файловых системах.
  • du — оценка занимаемого места файлов и директорий (рекурсивно).

Краткая аналогия: df — «сканер пространства на полке», показывает, сколько пустого места на каждой полке; du — «взвешивание коробок на полке», показывает, какие коробки самые тяжёлые.

Использование df

Обычная команда:

df -h
  • -h делает вывод удобочитаемым (K/MB/GB).

Чтобы выбрать столбцы вывода:

df --output=source,size,used,avail,pcent,target

Пример полезного сокращённого вывода:

df --output=source,used,avail,pcent,target -h

Советы:

  • Проверьте колонку pcent и целевые точки монтирования (target).
  • Если какой-то раздел заполнен, посмотрите, смонтирован ли он в правильное место и не перекрывается ли другим mount (bind-overmount может скрывать данные).

Использование du для поиска «пожирателей» места

du по умолчанию рекурсивно суммирует размер файлов, поэтому без фильтров он может работать очень долго. Несколько привычных приёмов:

Показать общие размеры для каждого элемента в текущей директории и отсортировать по убыванию (топ-10):

du -shx * 2>/dev/null | sort -hr | head -n 10

Объяснение:

  • -s — только суммарный размер для каждого аргумента;
  • -h — человеко-читаемый формат;
  • -x — не переходить на другие файловые системы (полезно при наличии смонтированных томов);
  • 2>/dev/null — скрыть сообщения об ошибках доступа;
  • sort -hr — сортировка по размеру в человеко-читаемом формате;
  • head -n 10 — вывести 10 крупнейших.

Если нужно просканировать весь корень и получить топ-папок:

du -x / 2>/dev/null | sort -n -r | head -n 20

Для быстрого просмотра размера конкретной директории:

du -sh /var/log

Исправление типичных ошибок с df и du

  • Большая часть занятого места может быть «удалёнными» файлами, которые всё ещё открыты процессами. df покажет, что раздел заполнен, а du не покажет большого размера — потому что файл уже «удален» из каталога, но дескриптор открыт. Для поиска таких файлов используйте lsof:
lsof / | grep deleted
  • Если разделы смонтированы поверх каталогов, du может «не увидеть» фактических данных под точкой монтирования. Подумайте о запуске сканирования на реальном устройстве (см. /dev/… или используйте -x).

Альтернатива: ncdu — интерактивный просмотр размеров

ncdu даёт ncurses-интерфейс для быстрой навигации и удаления (если разрешено). Установка и запуск:

sudo apt update
sudo apt install ncdu
ncdu /

Плюсы ncdu:

  • Быстро видно, какие папки «тяжёлые»;
  • Можно заходить внутрь папок стрелками;
  • Поддерживает удаление из интерфейса (требуется осторожность и права).

Интерактивный обзор ncdu c деревом папок и размерами

Практические приёмы очистки для Ubuntu и Debian

Очистка устаревших пакетов и кэшей:

sudo apt autoremove
sudo du -sh /var/cache/apt
sudo apt autoclean
sudo apt clean
  • sudo apt autoremove — удаляет пакеты-зависимости, которые больше не нужны.
  • sudo apt autoclean — очищает устаревшие пакеты в кэше, оставляя актуальные.
  • sudo apt clean — полностью очищает кэш пакетов (освобождает больше места).

Очистка журналов systemd (journalctl):

sudo journalctl --disk-usage
sudo journalctl --vacuum-size=200M
sudo journalctl --vacuum-time=7d
  • –vacuum-size и –vacuum-time уменьшают размер журналов; подберите значения, соответствующие политике хранения логов в вашей организации.

Очистка временных файлов:

sudo rm -rf /tmp/*
sudo du -sh /tmp

Контейнеры и образы Docker могут занимать много места:

docker system df
docker system prune -a --volumes

Важно: перед удалением проверьте, что данные не нужны и не принадлежат запущенным контейнерам.

Чеклист расследования проблемы с заполнением диска (для системных администраторов)

  1. Проверить уровни заполнения: df -h.
  2. Выявить крупные каталоги: du -shx / 2>/dev/null | sort -hr | head -n 20.
  3. Проверить удалённые, но открытые файлы: lsof | grep deleted.
  4. Проверить логи systemd: journalctl --disk-usage.
  5. Очистить apt-кэш и старые ядра: sudo apt autoremove и sudo apt autoclean.
  6. Проверить контейнеры и образы Docker.
  7. Сделать резервную копию перед удалением больших/неоднозначных данных.
  8. Автоматизировать мониторинг (см. раздел ниже).

Когда df и du могут вводить в заблуждение — примеры и обходные пути

  • Случай: df показывает 100% заполнения, а du суммирует значительно меньше. Причина: файлы были удалены, но процессы их держат. Обход: найдите процессы с lsof и перезапустите их (после согласования).

  • Случай: смонтирован сетевой ресурс (NFS/SMB) — du может не учитывать удалённые расхождения. Проверьте состояние сетевого монтирования и используйте du на удалённом сервере.

  • Случай: лог-файлы быстро увеличиваются (например, повторяющиеся ошибки приложения). Решение: настроить ротацию логов (logrotate) и устранить причину ошибок.

Методология и SOP для регулярной проверки (мини-руководство)

  1. Ежедневно: мониторинг свободного места (алёрты при достижении 80–85%).
  2. При предупреждении: выполнить шаги чеклиста расследования.
  3. При критическом уровне (95%+): оперативные меры — очистка кэшей, временных файлов, ротация журналов, уведомление владельцев приложений.
  4. После инцидента: пост-инцидентный разбор причин, корректировка политики ротации, возможно — план расширения дискового пространства.

Уровни зрелости управления дисковым пространством

  • Низкий: ручные проверки по запросу, редкие очистки.
  • Средний: cron-скрипты для очистки временных данных, базовые алёрты.
  • Высокий: централизованный мониторинг (Prometheus/Grafana), автоматическая ротация и тесты на предупреждение, CI-процедуры для артефактов.

Таблица-справочник команд (cheat sheet)

df -h                                  # обзор заполнения разделов
df --output=source,used,avail,pcent -h  # целевые столбцы
du -shx /path/* | sort -hr | head -n 20 # топ папок в /path
du -sh /var/log                         # размер каталога логов
lsof | grep deleted                     # файлы, удалённые, но занятые процессом
sudo apt autoremove                     # удалить неиспользуемые пакеты
sudo apt autoclean                      # очистить устаревшие кэши apt
sudo journalctl --vacuum-size=200M      # уменьшить журналы systemd
ncdu /                                  # интерактивный анализ диска

Часто задаваемые вопросы

Как быстро освободить место, не рискуя сломать систему?

Начните с sudo apt autoremove и sudo apt autoclean, затем проверьте /var/log, /tmp и кэши приложений. Никогда не удаляйте файлы в /var/lib или /etc без понимания их роли; делайте резервные копии.

Почему df показывает заполнение, а du — нет?

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

Можно ли запускать ncdu на production-сервере?

Можно, но осторожно: чтение большого числа файлов может нагрузить диск/IO. Запускайте в off-peak время или используйте опцию –exclude для пропуска тяжёлых директорий.

Итог

df и du — базовый набор инструментов для диагностики проблем с местом на диске. ncdu ускоряет интерактивный анализ. Важнее не только очистка, но и выявление первопричины (логирование, приложения, контейнеры, удалённые файлы). Автоматизируйте мониторинг и настройте правила ротации логов и кэшей — это снизит вероятность неожиданных инцидентов.

Важное: всегда делайте резервные копии и согласуйте перезапуск служб с владельцами приложений перед удалением сомнительных данных.

Вывод df с указанием разделов и использования

Пример вывода df для конкретного устройства /dev/sda и его разделов

Пример использования df --output для выбора столбцов

Результат топ-10 директорий с использованием du и сортировки

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Несколько аккаунтов Skype: Multi Skype Launcher
Программное обеспечение

Несколько аккаунтов Skype: Multi Skype Launcher

Журнал для работы: повысить продуктивность
Productivity

Журнал для работы: повысить продуктивность

Персональные звуки уведомлений на Android
Android.

Персональные звуки уведомлений на Android

Скачивание шоу Hulu для офлайн‑просмотра
Стриминг

Скачивание шоу Hulu для офлайн‑просмотра

Microsoft Start: персонализированная новостная лента
Новости

Microsoft Start: персонализированная новостная лента

Как изменить имя в Epic Games быстро
Гайды

Как изменить имя в Epic Games быстро