Это старая версия документа.


Чистка системы

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

sudo apt-get install bleachbit deborphan

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

Внимание: С этой утилитой необходимо соблюдать определенную осторожность. Если Вы собирали пакеты зависящие друг от друга (rtorrent libtorrent xmlrpc-c) при помощи checkinstall (или подобной утилиты), но при этом не указали их в зависимостях друг друга, то deborphan может их удалить. Чтобы избежать такой ситуации можно запретить обновлять версию пакета командой:
sudo aptitude -y hold имя_пакета

Параметры 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 в скрипте по своему усмотрению.

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

Копируем текст в файл и не забываем сделать его исполняемым командой 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
deborphan | xargs apt-get -y purge 2>> $LOG
 
echo -e $YELLOW"Удаление старых ядер..."$ENDCOLOR
apt-get -y purge $OLDKERNELS 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 путь_к_скрипту