Полная очистка Linux: освобождаем место на диске безопасно
С течением времени любой Linux-системе, особенно на серверах или старых ноутбуках с SSD, начинает не хватать места на диске. Это может вызывать ошибки обновления, сбои в работе сервисов и замедление системы. В этом гайде вы узнаете, как безопасно и эффективно очистить систему от временных файлов, кэша пакетов и ненужных данных, не затрагивая пользовательские документы и конфигурации.
Почему это важно?
Заполненный корневой раздел (/) — частая причина сбоев. Многие службы (например, MySQL, Docker, веб-серверы) требуют свободного места для работы. Регулярная очистка — часть базового обслуживания системы. Мы сосредоточимся на безопасных методах, которые не удалят ваши личные файлы.
Шаг 1: Анализ использования диска
Прежде чем удалять что-либо, узнайте, что именно занимает место.
1.1 Проверка свободного места на разделах
df -h
-h выводит размеры в удобочитаемом формате (МБ, ГБ). Обратите внимание на процент использования в столбце Use%. Критично, если он выше 85-90%.
1.2 Поиск крупных каталогов
sudo du -sh /* 2>/dev/null | sort -rh | head -20
Эта команда показывает размеры верхних каталогов в корне (/), сортирует по убыванию и выводит топ-20. Обычно самые большие — /usr, /var, /home.
💡 Совет: Для более детального анализа установите
ncdu(sudo apt install ncdu). Это интерактивный инструмент, который позволяет "путешествовать" по файловой системе и видеть размеры каталогов. Запуститеsudo ncdu /.
Шаг 2: Очистка кэша пакетного менеджера
Все дистрибутивы сохраняют загруженные файлы пакетов (.deb, .rpm) для возможной повторной установки. Их можно безопасно удалить.
2.1 Для Debian/Ubuntu (APT)
# Очистка всего кэша (все загруженные .deb файлы)
sudo apt clean
# Более щадящий вариант: удалить только устаревшие файлы
sudo apt autoclean
После clean при следующем apt upgrade пакеты придётся скачивать заново.
2.2 Для Fedora/RHEL/CentOS (DNF)
sudo dnf clean all
Удаляет все кэши DNF, включая метаданные репозиториев.
2.3 Для Arch Linux (Pacman)
# Очистка кэша пакетов (старые версии удалятся, текущие останутся)
sudo paccache -r
# ОЧЕНЬ агрессивная очистка: удаляет ВСЕ кэшированные пакеты
# sudo pacman -Scc # ВНИМАНИЕ! Используйте с осторожностью, только если уверены
Шаг 3: Удаление ненужных зависимостей и старых ядер
При обновлениях системы часто остаются старые версии библиотек и ядра Linux. Они могут занимать сотни мегабайт.
3.1 Для Debian/Ubuntu
# Удаляет пакеты, которые были установлены как зависимости,
# но больше не нужны ни одному установленному пакету.
# --purge также удаляет конфигурационные файлы этих пакетов.
sudo apt autoremove --purge
Важно: Команда предложит удалить пакеты. Внимательно проверьте список. Если вы вручную установили какой-то пакет через apt install, он не будет удалён autoremove.
3.2 Для Fedora/RHEL
sudo dnf autoremove
3.3 Удаление старых ядер вручную (если autoremove не справился)
# Показать установленные ядра
dpkg -l 'linux-image*' | grep ^ii # Debian/Ubuntu
rpm -qa | grep kernel # Fedora/RHEL
# Удалить конкретное старое ядро (пример)
sudo apt remove linux-image-5.4.0-42-generic
Оставляйте как минимум одно рабочее ядро (текущее и предыдущее на случай отката).
Шаг 4: Очистка временных файлов и логов
4.1 Временные файлы в /tmp
# Удалить файлы старше 10 дней в /tmp (безопасно)
sudo find /tmp -type f -atime +10 -delete
# Удалить пустые каталоги в /tmp
sudo find /tmp -type d -empty -delete
⚠️ Важно: Не удаляйте всё в
/tmpагрессивно (rm -rf /tmp/*). Некоторые приложения могут использовать этот каталог для работы сейчас. Лучше удалять старые файлы.
4.2 Логи в /var/log
Логи сервисов могут разрастаться. Очищайте их, если уверены, что они не нужны для отладки.
# Очистить старые логи (например, старше 7 дней)
sudo find /var/log -type f -name "*.log" -mtime +7 -delete
# Очистить логи конкретного сервиса (например, nginx)
sudo truncate -s 0 /var/log/nginx/access.log
sudo truncate -s 0 /var/log/nginx/error.log
Альтернатива: Используйте logrotate — он автоматически ротирует и сжимает логи. Проверьте его конфигурацию в /etc/logrotate.conf.
4.3 Логи systemd (journal)
# Оставить логи только за последние 3 дня (или укажите нужный объём: --vacuum-size=100M)
sudo journalctl --vacuum-time=3d
# Показать текущий размер журнала
sudo journalctl --disk-usage
Шаг 5: Поиск и удаление крупных лишних файлов
Иногда место занимают несистемные файлы: загрузки, iso-образы, кэши браузеров.
5.1 Поиск файлов больше 100 МБ
sudo find / -type f -size +100M 2>/dev/null | head -20
2>/dev/null скрывает ошибки доступа (например, к /proc). Вручную проверьте найденные пути перед удалением.
5.2 Очистка кэша браузеров (пример для Firefox)
# Кэш Firefox для текущего пользователя
rm -rf ~/.cache/mozilla/firefox/*.default/cache2/
Замените *.default на имя вашего профиля (посмотрите в ~/.mozilla/firefox/).
5.3 Удаление старых загрузок
# Показать файлы в ~/Downloads старше 30 дней
find ~/Downloads -type f -mtime +30 -ls
# Удалить их (сначала проверьте список!)
find ~/Downloads -type f -mtime +30 -delete
Шаг 6: Проверка результата
После всех очисток снова выполните:
df -h
Вы должны увидеть увеличение свободного места в разделе / (обычно на 1-5 ГБ, в зависимости от системы).
Автоматизация (опционально)
Чтобы не забывать о чистке, настройте регулярные задачи.
Для APT-систем (Debian/Ubuntu)
Создайте файл /etc/apt/apt.conf.d/02autoremove с содержимым:
DPkg::Post-Invoke {"if [ -x /usr/bin/apt-autoremove ]; then apt-autoremove -y; fi";};
Это автоматически запустит autoremove после каждого apt upgrade. Используйте с осторожностью на продакшн-серверах.
Для systemd-журнала
В файле /etc/systemd/journald.conf установите:
SystemMaxUse=100M
Это ограничит размер журнала 100 МБ.
Заключительные рекомендации
- Не удаляйте вручную файлы в
/usr,/bin,/sbin,/lib. Это сломает систему. - Создавайте резервные копии важных данных перед массовыми операциями.
- Регулярность — ключ к успеху. Очистка раз в месяц предотвратит проблемы.
- Для мониторинга свободного места добавьте в
~/.bashrcалиас:
Теперьalias dfh='df -h | grep -E "^(/dev|Filesystem)"'dfhбыстро покажет состояние дисков.
Следуя этому гайду, вы поддерживаете систему в чистоте и избегаете критических ситуаций с нехваткой дискового пространства.