Зачем контролировать место на диске
Переполненный раздел в Linux быстро приводит к сбоям служб, невозможности установки обновлений и потере данных. Регулярный мониторинг помогает заранее выявлять скрытые потребители: раздутые логи, кэш пакетов, забытые контейнеры или временные файлы процессов. В этом руководстве вы освоите проверенные терминальные утилиты, которые за несколько минут покажут точную картину использования хранилища.
Требования и подготовка
Перед началом убедитесь, что у вас есть доступ к терминалу. Для анализа системных каталогов потребуются права суперпользователя, поэтому используйте sudo или работайте под учётной записью root. Все команды проверены на современных дистрибутивах с systemd и стандартными утилитами GNU coreutils.
Шаг 1: Оценка общей загрузки файловых систем
Самая быстрая проверка выполняется стандартной утилитой df. Она показывает информацию о всех смонтированных разделах.
df -h
Флаг -h переводит байты в человеко-читаемый формат (КБ, МБ, ГБ). В колонке Use% обратите внимание на разделы, загруженные более чем на 85%. Чтобы сразу отфильтровать локальные диски и скрыть виртуальные файловые системы (tmpfs, devtmpfs), добавьте тип ФС:
df -Th -t ext4 -t xfs -t btrfs
💡 Совет: Если в колонке
Use%стоит значение 100%, но вы знаете, что место должно быть, проверьте количество инодов командойdf -i. Переполнение таблицы инодов возникает при создании миллионов мелких файлов и блокирует запись так же надёжно, как нехватка гигабайт.
Шаг 2: Поиск крупнейших каталогов и файлов
Утилита df не покажет, какая именно папка занимает место. Для этого используйте du. Начните с корня или домашней директории:
sudo du -sh /* 2>/dev/null | sort -rh | head -n 15
Разберём параметры: -s суммирует размер директории, -h форматирует вывод. Конструкция 2>/dev/null подавляет ошибки доступа, а sort -rh сортирует результат по убыванию. Команда head -n 15 выводит только топ-15 потребителей.
Если нужно найти конкретные файлы, а не папки, примените find:
sudo find /var -type f -size +100M -exec ls -lh {} \; 2>/dev/null
Этот запрос найдёт все файлы тяжелее 100 МБ в /var, где обычно хранятся логи и базы данных.
Шаг 3: Интерактивный анализ с помощью ncdu
Вывод du удобен для скриптов, но в консоли быстрее ориентироваться в визуальном навигаторе. Установите ncdu из репозитория вашего дистрибутива:
# Для Debian/Ubuntu
sudo apt install ncdu
# Для RHEL/Fedora
sudo dnf install ncdu
# Для Arch
sudo pacman -S ncdu
Запустите сканирование целевой директории:
sudo ncdu /
После завершения сканирования откроется интерфейс, похожий на файловый менеджер. Перемещайтесь по каталогам стрелками, нажимайте Enter для входа. Чтобы удалить папку или файл, выделите его и нажмите d. Выход осуществляется клавишей q.
⚠️ Важно: Будьте осторожны с удалением файлов в
/var,/etcи/usr. Удаляйте только очевидно лишние логи, кэши (~/.cache,/tmp) или старые ядра, если вы чётко понимаете последствия.
Проверка результата
После очистки повторно выполните df -h, чтобы убедиться, что процент использования снизился. Если система всё ещё сообщает об ошибке No space left on device, вероятно, удалённые файлы удерживаются запущенными процессами. Найдите их командой:
sudo lsof +L1
Перезапустите указанные службы (например, sudo systemctl restart rsyslog) или перезагрузите сервер, чтобы ядро полностью освободило блокировки.
Возможные проблемы
Ошибка Permission denied при сканировании. Запускайте команды анализа с sudo или добавьте 2>/dev/null в конец, чтобы игнорировать недоступные системные папки и не засорять вывод.
Место не освобождается после удаления файлов. Это классическая ситуация с открытыми файловыми дескрипторами. Либо перезапустите сервис, либо используйте lsof +L1 для идентификации процесса. В крайнем случае плановая перезагрузка гарантированно очистит кэш дескрипторов.
Медленное сканирование ncdu на медленных дисках. При работе с HDD или сетевыми хранилищами (NFS) сканирование может занять несколько минут. Добавьте флаг -x, чтобы утилита не переходила на другие смонтированные разделы: sudo ncdu -x /.