Серверы без регулярной чистки накапливают устаревшие пакеты, старые ядра, журналы systemd и архивы Snap. Это приводит к деградации дискового пространства и увеличению времени бэкапов. Ниже — последовательный и безопасный workflow для LTS-серверов без GUI.

1. Базовая очистка APT

APT хранит кэш скачанных пакетов и зависимости, которые больше не требуются. Эти команды абсолютно безопасны:

sudo apt update
sudo apt autoremove --purge
sudo apt autoclean
sudo apt clean

Что делают:

Команда Назначение
autoremove --purge Удаляет неиспользуемые пакеты и их конфиги
autoclean Чистит старые кэш-файлы пакетов
clean Полностью очищает APT-кэш

2. Удаление старых ядер

Ядра занимают наибольший объём на /boot и /lib/modules.

Рекомендуемый и безопасный способ

sudo apt install --reinstall linux-generic
sudo apt autoremove --purge

APT автоматически удалит все ядра, кроме используемого и последнего резервного.

Альтернативный метод (оставить только 2 последних ядра)

sudo apt install byobu
sudo purge-old-kernels --keep 2 -qy

!!!⛔Никогда не удаляйте текущее ядро (uname -r). Проверяйте вывод перед подтверждением.

3. Очистка журналов systemd

journalctl по умолчанию хранит логи без ограничений. Для серверов с высокой нагрузкой это может быть гигабайты данных.

sudo journalctl --vacuum-time=14d
sudo journalctl --vacuum-size=150M
Параметр Эффект
--vacuum-time Удаляет записи старше указанного срока
--vacuum-size Ограничивает общий размер журнала

4. Очистка Snap-пакетов

Snap сохраняет старые ревизии, которые не удаляются автоматически.

LANG=C snap list --all | awk '/disabled/{print $1, $3}' |
while read snapname revision; do
    sudo snap remove "$snapname" --revision="$revision"
done

Дополнительно (очистка snapshot-ов Snap):

sudo snap saved | awk 'NR>1 && $NF=="disabled" {print $1,$2}' |
while read set rev; do sudo snap forget "$set"; done

5. Удаление временных файлов сервера

sudo rm -rf /var/tmp/*
sudo rm -rf /tmp/*
sudo find /var/cache -type f -name "*.old" -delete

⛔Выполняйте rm -rf /tmp/* только если уверены, что нет активных временных процессов.

6. Очистка старых логов сервера

sudo find /var/log -type f -name "*.gz" -delete
sudo find /var/log -type f -name "*.1" -delete
sudo find /var/log -type f -name "*.old" -mtime +60 -delete

Удаляются только архивированные и старые файлы.

7. Контроль результатов

df -h
du -sh /var/cache /var/log /var/lib/snapd/snaps /boot

Рекомендуемый универсальный порядок

sudo apt update
sudo apt autoremove --purge
sudo apt autoclean
sudo apt clean
sudo journalctl --vacuum-time=30d
sudo journalctl --vacuum-size=300M
sudo purge-old-kernels --keep 2 -qy
LANG=C snap list --all | awk '/disabled/{print $1, $3}' | while read snapname revision; do sudo snap remove "$snapname" --revision="$revision"; done
df -h

Итог

На типичном сервере освобождается 2–15+ ГБ.
Это снижает нагрузку на файловую систему, ускоряет бэкапы и предотвращает переполнение раздела /boot.