Перед началом работы скрипта требуется установить несколько утилит:

sudo apt-get install bleachbit deborphan

bleachbit — подчищает за указанными приложениями т. е. удаляет историю посещенных страниц, cookies, временные файлы и т. п. deborphan — удаляет пакеты, которые не задействованы в системе т.е пакеты не находящиеся в зависимостях у иных пакетов.

Параметры bleachbit

Поскольку предполагается, что скрипт будет использоваться по расписанию­ (cron), то использовать графическую часть bleachbit нецелесообразно. К счастью утилита имеет консольный интерфейс. Узнаем для каких приложений поддерживается очистка:

bleachbit_cli -l

Видим (вывод команды сокращен):

vuze.cache
vuze.logs
vuze.tmp
wine.tmp
winetricks.temporary_files
x11.debug_logs
xchat.logs
xine.cache
yum.clean_all
yum.vacuum

Например, чтобы очистить временные файлы Wine будет достаточно прописать:

bleachbit_cli -do wine.tmp

Редактируем часть с bleachbit в скрипте по своему усмотрению.

Скрипт очистки

У меня данный скрипт (deborphan) упорно выпиливает xvba-va-driver, который нужен для аппаратного ускорения воспроизведения видео. Будьте внимательны, читайте вывод в консоль, чтобы быть уверенным, что скрипт не напортачил!

Копируем текст в файл и не забываем сделать его исполняемым командой chmod +x. Запускаем в терминале ./имя_скрипта.

#!/bin/bash
 
LOG="/root/Clean_system.log"
GREEN="\033[1;32m"
RED="\033[0;31m"
YELLOW="\033[1;33m"
ENDCOLOR="\033[0m"
 
OLDCONF=$(dpkg -l|grep "^rc"|awk '{print $2}')
CURKERNEL=$(uname -r|sed 's/-*[a-z]//g'|sed 's/-386//g')
LINUXPKG="linux-(image|headers|ubuntu-modules|restricted-modules)"
METALINUXPKG="linux-(image|headers|restricted-modules)-(generic|i386|server|common|rt|xen)"
OLDKERNELS=$(dpkg -l|awk '{print $2}'|grep -E $LINUXPKG |grep -vE $METALINUXPKG|grep -v $CURKERNEL)
 
if [ $USER != root ]; then
  echo -e $RED"Вы должны быть root"
  exit 0
fi
 
echo "------------------------------------------------------------------------------" >> $LOG
date  >> $LOG
echo "------------------------------------------------------------------------------" >> $LOG
 
echo -e $YELLOW"Чистка пакетов запущена\n"$ENDCOLOR
echo -e $YELLOW"Bleachbit - приложения"$ENDCOLOR
bleachbit_cli -do  bash.history \
                   deepscan.backup \
                   deepscan.ds_store \
                   deepscan.thumbs_db \
                   deepscan.tmp \
                   firefox.cache \
                   firefox.cookies \
                   firefox.download_history \
                   firefox.forms \
                   firefox.places \
                   firefox.session_restore \
                   firefox.url_history \
                   flash.cache \
                   flash.cookies \
                   gedit.recent_documents \
                   gimp.tmp \
                   gnome.run \
                   java.cache \
                   kde.cache \
                   kde.recent_documents \
                   kde.tmp \
                   nautilus.history \
                   openofficeorg.cache \
                   openofficeorg.recent_documents \
                   pidgin.cache \
                   pidgin.logs \
                   system.cache \
                   system.clipboard \
                   system.desktop_entry \
                   system.free_disk_space \
                   system.localizations \
                   system.memory \
                   system.recent_documents \
                   system.rotated_logs \
                   system.tmp \
                   system.trash \
                   thumbnails.cache \
                   wine.tmp \
                   winetricks.temporary_files \
                   x11.debug_logs 2>> $LOG
 
echo -e $YELLOW"\nУдаление кэша apt..."$ENDCOLOR
apt-get -y clean 2>> $LOG
 
echo -e $YELLOW"Удаление частичных пакетов..."$ENDCOLOR
apt-get -y autoclean 2>> $LOG
 
echo -e $YELLOW"Удаление старых конфигов..."$ENDCOLOR
apt-get -y purge $OLDCONF 2>> $LOG
 
echo -e $YELLOW"Удаление незадействованных пакетов..."$ENDCOLOR
while [ -n "`deborphan`" ]; do
    deborphan
    echo
    apt-get -y purge `deborphan` 2>>$LOG
done
 
echo -e $YELLOW"Удаление старых ядер..."$ENDCOLOR
apt-get -y purge $OLDKERNELS 2>> $LOG
 
echo -e $YELLOW"Удаление пакетов, установленных по зависимостям и которые больше не нужны..."$ENDCOLOR
apt-get -y autoremove --purge 2>> $LOG
 
echo -e $YELLOW"Чистим корзины пользователей..."$ENDCOLOR
rm -rf /home/*/.local/share/Trash/*/** 2>> $LOG
rm -rf /root/.local/share/Trash/*/** 2>> $LOG
 
echo -e $GREEN"------------------------------------------------------------------------------"$ENDCOLOR >> $LOG
echo -e $RED"Очистка завершена!"$ENDCOLOR >> $LOG
echo -e $GREEN"------------------------------------------------------------------------------"$ENDCOLOR >> $LOG
cat "$LOG"
echo -e $GREEN"------------------------------------------------------------------------------"$ENDCOLOR >> $LOG

Запуск скрипта по расписанию

Чистка ежедневно в 6:25 утра:

25 6 * * * root путь_к_скрипту

Чистка при каждом входе в систему:

@reboot root путь_к_скрипту

Примечание

Также можно установить localepurge.

apt-get install localepurge

Данный скрипт автоматически удаляет неиспользуемые локали. В процессе установки Вам будет предложено выбрать из списка локали, используемые в Вашей системе.