За годы использования Linux (а Debian у меня стоит уже не первый год) накопилось немало опыта в борьбе с «цифровым хламом». Сегодня поделюсь тем, что реально работает, а что — пустая трата времени или может нанести вред.
Начинаем с диагностики
Первое правило — никогда не удаляй ничего вслепую. Сначала нужно понять, где именно «сидит» проблема.
Самая простая команда для начала:
df -h
Показывает общую картину по разделам. Но это только верхушка айсберга. Для реальной работы я использую du
— утилиту, которая стала моим лучшим другом в этом деле.
du -sh /* 2>/dev/null | sort -h
Эта команда покажет размер каждой папки в корне системы. Обычно самые «жирные» — это /home
, /var
, /usr
. Иногда неожиданно большими оказываются /tmp
или /opt
.
Но есть нюанс, который меня когда-то поставил в тупик. Команда выше не показывает скрытые файлы и папки. А именно в них часто скрывается основная проблема! Особенно в домашней папке пользователя.
du -sh ~/.* 2>/dev/null | sort -h
Вот тут-то и начинается самое интересное. У меня однажды папка ~/.cache
весила 15 гигабайт! А ~/.local/share
— еще 8.
Когда кэш становится проблемой
Кэш — это палка о двух концах. С одной стороны, он ускоряет работу программ. С другой — может разрастись до невероятных размеров.
APT кэш — первый кандидат на удаление:
du -sh /var/cache/apt/archives/
У меня там было 3.2 ГБ старых .deb файлов. Почистить можно так:
sudo apt clean
Эта команда безопасна на 100%. Худшее, что может случиться — при повторной установке пакетов они заново скачаются из интернета.
Пользовательские кэши — тут интереснее. Firefox, Chrome, различные Python утилиты — все они создают свои кэши.
du -sh ~/.cache/* | sort -h
Моими «чемпионами» по размеру оказались:
~/.cache/mozilla
— 2.1 ГБ~/.cache/pip
— 1.8 ГБ~/.cache/yarn
— 900 МБ
Все это можно удалить без последствий:
rm -rf ~/.cache/mozilla/
rm -rf ~/.cache/pip/
rm -rf ~/.cache/yarn/
Правда, Firefox потом пару дней загружался чуть медленнее, пока кэш не восстановился.
Логи: когда система слишком разговорчива
Однажды я обнаружил, что /var/log
весит 4 гигабайта. Оказалось, что одна из служб писала в лог каждую секунду уже полгода.
Посмотреть размер логов:
sudo du -sh /var/log/* | sort -h
Systemd журналы можно почистить вот так:
journalctl --disk-usage
sudo journalctl --vacuum-time=30d
Первая команда покажет, сколько места занимают журналы, вторая — оставит только записи за последний месяц.
Со старыми логами в /var/log
нужно быть осторожнее. Я обычно делаю так:
sudo find /var/log -name "*.gz" -mtime +30 -delete
sudo find /var/log -name "*.old" -mtime +30 -delete
Это удалит сжатые и старые логи, которым больше 30 дней.
Когда snap съедает диск
Если используете snap пакеты, приготовьтесь к сюрпризу. Система по умолчанию хранит по 3 версии каждого пакета. Для браузеров и больших приложений это может быть несколько гигабайт.
snap list --all
Увидите что-то вроде:
firefox 108.0 2800 latest/stable mozilla disabled
firefox 109.0 2813 latest/stable mozilla -
Строчка с «disabled» — это старая версия, которая просто занимает место.
Почистить можно командой:
sudo snap set system refresh.retain=2
А потом вручную удалить старые версии:
snap list --all | grep disabled | awk '{print $1" --revision="$3}' | xargs -I {} sudo snap remove {}
Команда выглядит страшно, но работает отлично. Только будьте аккуратны с копированием — один пробел не в том месте, и ничего не получится.
Полезные утилиты для анализа
За время использования Linux я перепробовал множество утилит для анализа дискового пространства. Поделюсь теми, которые реально пригодились:
ncdu — интерактивный анализатор дискового пространства:
sudo apt install ncdu
ncdu /
Эта штука показывает размеры папок в виде удобного списка, по которому можно перемещаться стрелочками. Очень наглядно.
baobab (для тех, кто любит графику):
sudo apt install baobab
Показывает диаграммы использования диска. Иногда легче понять проблему визуально.
duf — современная замена df:
wget https://github.com/muesli/duf/releases/download/v0.8.1/duf_0.8.1_linux_amd64.deb
sudo dpkg -i duf_0.8.1_linux_amd64.deb
Показывает информацию о дисках в красивом цветном виде.
Автоматизация: чтобы не делать вручную каждый раз
Со временем понял, что лучше автоматизировать рутинные задачи очистки. Написал простой скрипт:
#!/bin/bash
# cleanup.sh
echo "Начинаем очистку системы..."
# APT кэш
echo "Очищаем APT кэш..."
sudo apt clean
sudo apt autoclean
sudo apt autoremove
# Журналы systemd
echo "Очищаем журналы..."
sudo journalctl --vacuum-time=30d
# Пользовательские кэши
echo "Очищаем пользовательские кэши..."
rm -rf ~/.cache/thumbnails/
rm -rf ~/.cache/pip/
rm -rf ~/.cache/yarn/
# Временные файлы
echo "Удаляем старые временные файлы..."
sudo find /tmp -type f -atime +7 -delete 2>/dev/null
echo "Очистка завершена!"
df -h /
Запускаю его раз в месяц, и проблем с местом больше не возникает.
Что НЕ стоит удалять
Новички часто совершают ошибки, которые могут привести к проблемам. Вот чего я никогда не трогаю:
/usr/lib
и/usr/share
— системные библиотеки и данные~/.config
— настройки программ (можно потерять конфигурацию)/etc
— конфигурация системы/boot
— файлы загрузчика (можете не загрузиться)
Также осторожно с очисткой логов активных сервисов — иногда они нужны для диагностики проблем.
Поддержание чистоты в файловой системе — это как уборка в квартире. Лучше делать понемногу, но регулярно, чем доводить до критического состояния.
Основные принципы, которые я вынес для себя:
- Регулярно мониторить использование диска
- Очищать кэши раз в месяц
- Не хранить большие файлы в домашней папке без необходимости
- Использовать автоматизацию для рутинных задач
И помните — всегда лучше удалить меньше, но быть уверенным в безопасности, чем агрессивно чистить все подряд и потом восстанавливать систему.