Это старая версия документа!
Скрипт очистки от лишнего
На все удаления скрипт запрашивает отдельное подтверждение
Скрипт очистки от лишнего мусора
- scleaner.sh
#!/bin/bash
# ==AUTOEXEC==
# === Safe Cleaner ===
# * Осторожная очистка системы перед переносом
# * Работает в интерактивном режиме с подробными пояснениями
#
set -e
# Универсальный лог-файл в домашней директории
LOG_DIR="$HOME/logs"
mkdir -p "$LOG_DIR"
LOG_FILE="$LOG_DIR/safe-cleaner.log"
DATE=$(date '+%Y-%m-%d %H:%M:%S')
echo -e "\n[$DATE] === Запуск safe-cleaner ===\n" | tee -a "$LOG_FILE"
confirm() {
echo -ne "\n$1 [y/N]: "
read -r reply
[[ "$reply" == "y" || "$reply" == "Y" ]]
}
# 1. Очистка кэша APT
if confirm "Очистить кэш APT (удалит .deb-файлы из /var/cache/apt)?"; then
sudo apt clean && echo "✓ Кэш APT очищен" | tee -a "$LOG_FILE"
else
echo "✗ Пропущено: кэш APT" | tee -a "$LOG_FILE"
fi
# 2. Автоматическое удаление неиспользуемых пакетов
if confirm "Удалить неиспользуемые пакеты (apt autoremove)?"; then
sudo apt autoremove --purge -y | tee -a "$LOG_FILE"
else
echo "✗ Пропущено: autoremove" | tee -a "$LOG_FILE"
fi
# 3. Очистка логов journalctl (старше 7 дней)
if confirm "Очистить systemd-журналы старше 7 дней?"; then
sudo journalctl --vacuum-time=7d | tee -a "$LOG_FILE"
else
echo "✗ Пропущено: journalctl" | tee -a "$LOG_FILE"
fi
# 4. Очистка временных файлов в /tmp
if confirm "Очистить содержимое /tmp (временные файлы)?"; then
sudo rm -rf /tmp/* && echo "✓ /tmp очищен" | tee -a "$LOG_FILE"
else
echo "✗ Пропущено: /tmp" | tee -a "$LOG_FILE"
fi
# 5. Очистка архивов логов /var/log/*.gz и *.1
if confirm "Удалить старые архивы логов в /var/log (*.gz, *.1)?"; then
sudo find /var/log -type f \( -name '*.gz' -o -name '*.1' \) -delete && echo "✓ Старые логи удалены" | tee -a "$LOG_FILE"
else
echo "✗ Пропущено: архивные логи" | tee -a "$LOG_FILE"
fi
# 6. Анализ содержимого /var/backups (без удаления по умолчанию)
echo -e "\nПроверка содержимого /var/backups:" | tee -a "$LOG_FILE"
sudo ls -lh /var/backups | tee -a "$LOG_FILE"
if confirm "Удалить только безопасные файлы из /var/backups (dpkg.status.*, apt.*, *.gz)?"; then
sudo find /var/backups -type f \( -name 'apt.*' -o -name 'dpkg.status.*' -o -name '*.gz' \) -delete
echo "✓ Удалено безопасное содержимое /var/backups" | tee -a "$LOG_FILE"
else
echo "✗ Пропущено: /var/backups" | tee -a "$LOG_FILE"
fi
# 7. Анализ тяжёлых директорий
if confirm "Показать самые тяжёлые директории в /?"; then
sudo du -h --max-depth=1 / | sort -hr | head -n 15 | tee -a "$LOG_FILE"
fi
echo -e "\n[$(date '+%Y-%m-%d %H:%M:%S')] ✅ Очистка завершена. Лог: $LOG_FILE"
exit 0