Linux

Контроль дискового пространства Linux: быстрые команды и утилиты

Научитесь точно определять использование диска в Linux с помощью стандартных и продвинутых утилит. Разберётесь в командах, которые покажут скрытые потребители места и помогут избежать переполнения разделов.

Обновлено 7 апреля 2026 г.
5-10 мин
Низкая
FixPedia Team
Применимо к:Ubuntu 20.04+Debian 11+RHEL/CentOS 8+Fedora 35+

Зачем контролировать место на диске

Переполненный раздел в 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 /.

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

Почему df и du показывают разный объём использованного места?
Можно ли освободить место без перезагрузки сервера?
Как найти самые большие файлы в конкретной директории?
Что делать, если место закончилось, но df показывает свободные гигабайты?

Полезное

Базовая проверка разделов
Поиск папок-потребителей
Интерактивный анализ ncdu
Очистка системного кэша

Эта статья помогла вам решить проблему?