Linux

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

Этот гайд поможет вам диагностировать использование дискового пространства и безопасно очистить систему Linux от ненужных данных, вернув gigabytes свободного места.

Обновлено 16 февраля 2026 г.
10-15 мин
Средняя
FixPedia Team
Применимо к:Ubuntu 20.04+Debian 10+CentOS 7+Fedora 35+

Введение / Зачем это нужно

Дисковое пространство на серверах и рабочих станциях Linux часто заканчивается из-за накопления временных файлов, кэша пакетов, старых журналов и ненужных пакетов. Этот гайд поможет вам быстро диагностировать, какие данные занимают больше всего места, и безопасно освободить gigabytes без потери важной информации. Вы научитесь использовать стандартные утилиты (df, du, find) и пакетные менеджеры для поддержания системы в чистоте.

Требования / Подготовка

Перед началом убедитесь, что:

  • У вас есть доступ к терминалу Linux с правами sudo (администратора) для выполнения команд удаления и анализа системных каталогов.
  • Установлены базовые утилиты: df, du, find, sort, grep. Они есть в любом стандартном установленном дистрибутиве.
  • Для удобства анализа рекомендуется установить ncdu (sudo apt install ncdu или sudo dnf install ncdu), но это необязательно.
  • Внимание: Не удаляйте файлы в системных каталогах (/bin, /sbin, /usr, /etc), если не уверены в их назначении.

Пошаговая инструкция

Шаг 1: Проверка текущего использования диска

Сначала определите, какие разделы диска заполнены. Команда df (disk free) показывает использование каждого смонтированного раздела.

df -h

Ключи:

  • -h — human-readable, показывает размеры в MB, GB.
  • Вывод: Filesystem Size Used Avail Use% Mounted on. Обращайте внимание на Use% — если значение близко к 100%, это критично.

Пример вывода:

Filesystem      Size  Used Avail Use% Mounted on
/dev/sda1        50G   48G  2.0G  96% /

В этом случае корневой раздел / заполнен на 96%. Дальнейшие действия сосредоточим на нём.

Шаг 2: Поиск самых больших каталогов

Теперь нужно найти, какие каталоги занимают больше всего места. Начнём с корня /.

sudo du -h --max-depth=1 / | sort -rh | head -n 20

Пояснение:

  • sudo — требуется для доступа к некоторым системным каталогам.
  • du -h — вычисляет использование диска каталогами.
  • --max-depth=1 — показывает только первый уровень вложенности (только подкаталоги корня).
  • sort -rh — сортирует по убыванию размера (human-readable numeric).
  • head -n 20 — выводит топ-20 самых больших.

Если du работает медленно на большом разделе, используйте ncdu (интерактивный инструмент):

sudo ncdu /

Он позволяет перемещаться по каталогам и видеть размеры в реальном времени.

Шаг 3: Очистка кэша пакетного менеджера

Пакетные менеджеры хранят скачанные архивы пакетов в кэше. За годы они могут накопиться в несколько gigabytes.

Для Ubuntu/Debian (apt):

sudo apt clean

Удаляет все файлы из /var/cache/apt/archives. Безопасно, так как пакеты уже установлены.

Для Fedora/CentOS/RHEL (dnf/yum):

sudo dnf clean all

или для старых версий:

sudo yum clean all

Шаг 4: Удаление старых журналов и логов

Журналы в /var/log могут разрастаться, особенно если есть ошибки в системе. Очистите старые или сжатые логи.

Внимание: Не удаляйте файлы, которые активно используются (например, syslog, auth.log без сжатия). Лучше удалять только архивы (*.gz, *.old) и логи старше определённого срока.

# Удалить сжатые логи старше 30 дней
sudo find /var/log -type f -name "*.gz" -mtime +30 -delete

# Удалить обычные логи (не сжатые) старше 7 дней (осторожно!)
sudo find /var/log -type f -name "*.log" -mtime +7 -delete

Также проверьте размер конкретных логов:

sudo du -sh /var/log/*

Если видите огромные файлы (например, kern.log), возможно, стоит настроить logrotate (обычно он уже есть).

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

Временные каталоги /tmp и /var/tmp часто содержат ненужные данные. Очистите их, но убедитесь, что нет важных файлов.

# Очистка /tmp
sudo rm -rf /tmp/*

# Очистка /var/tmp
sudo rm -rf /var/tmp/*

Также проверьте /var/cache — там могут быть кэши приложений:

sudo du -sh /var/cache/*

Если видите крупные каталоги (например, man, apt, yum), их можно очистить аналогично шагу 3.

Шаг 6: Удаление ненужных пакетов и зависимостей

Со временем в системе накапливаются пакеты, которые были установлены как зависимости, но больше не нужны. Удалите их.

Для Ubuntu/Debian:

# Показать пакеты, которые можно удалить (зависимости)
sudo apt autoremove --purge

# Также проверьте список установленных пакетов и удалите ненужные вручную:
apt list --installed | less
# Затем: sudo apt remove package-name

Для Fedora/CentOS:

sudo dnf autoremove

Важно: Не удаляйте пакеты вручную, если не уверены, что они не нужны системе. Команда autoremove безопасна.

Проверка результата

После выполнения всех шагов снова проверьте использование диска:

df -h

Сравните значения Used и Avail с первоначальными. Вы должны увидеть рост свободного места (Avail). Также можно повторить анализ каталогов (шаг 2) для подтверждения.

Возможные проблемы

  1. Ошибка доступа (Permission denied)
    • Решение: используйте sudo для команд, требующих прав администратора. Не запускайте rm -rf без понимания, что удаляете.
  2. Место не освобождается после удаления файлов
    • Причина: процесс всё ещё держит открытый дескриптор удалённого файла.
    • Решение: найдите процесс: sudo lsof | grep '(deleted)'. Затем перезапустите соответствующий процесс (например, службу) или завершите его.
  3. Система стала работать нестабильно после удаления пакетов
    • Причина: случайно удалён критичный пакет.
    • Решение: восстановите пакет через sudo apt install package-name (или аналог). Имея резервную копию списка пакетов, можно восстановить систему.
  4. Критически важные логи удалены
    • Решение: если удалили активный лог, перезапустите службу, которая его пишет (например, sudo systemctl restart rsyslog), чтобы создать новый файл. Старые данные могут быть потеряны.
  5. Недостаточно места даже после очистки
    • Возможно, есть большие файлы, которые не были учтены (например, дампы баз данных, виртуальные машины). Проверьте домашние каталоги пользователей и каталоги приложений (/opt, /var/lib/docker если используется Docker).

Рекомендация: Регулярно выполняйте очистку кэша пакетов и журналов (раз в месяц) для поддержания здоровья системы.

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

Как быстро проверить, какие каталоги занимают больше всего места?
Безопасно ли удалять файлы в /tmp вручную?
Что делать, если место не освобождается после удаления больших файлов?
Как автоматизировать очистку, чтобы место не заканчивалось снова?

Полезное

Проверка текущего использования диска
Поиск самых больших каталогов
Очистка кэша пакетного менеджера
Удаление старых журналов и логов
Очистка временных файлов
Удаление ненужных пакетов и зависимостей