#!/bin/shclear
#Определяем цвет выделения
color='\e[31m'; ncolor='\e[0m';
if [[ "$EUID" != "0" ]] ; then
# /usr/bin/pkexec /mageia-cleaner/mageia-cleaner "$@"
echo "Требуются привилегии root..."
su -c "'$(pwd)'/mageia-cleaner" "$@"
exit $?
fi
echo -e "\e[1mMageia Cleaner\e[0m"
echo -e "------------------------------------------------"
echo -e "просматриваю установленные ядра, ждите..."
#Задаю тип возможного ядра для поиска [desktop, server, linus]
ktype="(desktop|server|linus)"
#Просматриваю все установленные ядра и сортирую их по времени Unix сверху вниз. Внизу - самое свежее
allkernel=$(rpm -qa --qf '%{name}-%{version}-%{release} %{installtime}\n' | grep -E "^kernel-$ktype" | \
sort -nk 2 | awk '{ print $1 }')
#Выделяю ядра для удаления. Сортирую по времени Unix, исключаю latest и последнюю строку с имененм активного, т.е. самого свежего ядра
remkernel=$(rpm -qa --qf '%{name}-%{version}-%{release} %{installtime}\n' | grep -E "^kernel-$ktype" | \
grep -v "devel" | grep -v "latest" | sort -nk 2 | sed '$d' | awk '{ print $1 }')
#Выделяю имя самого свежего ядра
actkernel=$(rpm -qa --qf '%{name}-%{version}-%{release} %{installtime}\n' | grep -E "^kernel-$ktype" | \
grep -v "devel" | grep -v "latest" | sort -rnk 2 | awk '{ print $1 }' | head -n 1)
clear
echo -e "\e[1mMageia Cleaner\e[0m"
echo "------------------------------------------------"
echo -e ${color}"Активный релиз:${ncolor}\n$actkernel\n"
echo -e ${color}"Установленные ядра:${ncolor}\n$allkernel\n"
#Считаю размер удаляемых ядер, если есть ядра на удаление
if [ -n "$remkernel" ]; then
#Выделяю из вывода rpm -qi размеры пакетов через пробел
klsize=$(rpm -qi $remkernel | grep "Size" | cut -f 2 -d : -s | cut -c 2-)
#Заменяю пробелы на "+"
klsize=$(echo $klsize | sed 's/ /+/g')
#Считаю общий вес пакетов [ Мбайт ]
let "klsize=($klsize) / 1048576"
echo -e ${color}"Можно безопасно удалить:${ncolor}\n$remkernel\n"
echo -e ${color}"Освобождается без зависимостей: $klsize МБайт\n"${ncolor}
echo "------------------------------------------------"
else
echo -e ${color}"Лишних ядер не обнаружено...\n"${ncolor}
echo "------------------------------------------------"
fi;
#Корзина
if [ -d "/home/$USER/.local/share/Trash" ]; then
trash=$(du -sh /home/$USER/.local/share/Trash | awk '{ print $1 }')
if [ "$trash" != "4,0K" ]; then
echo -e "Корзина пользователя: ${color}$trash${ncolor}"
else
echo -e "Корзина пользователя: пуста"
fi;
else
trash="4,0K"
echo -e "Корзина пользователя: не обнаружена"
fi;
#Каталог временных файлов пользователя
if [ -d "/home/$USER/tmp" ]; then
usertmp=$(du -sh /home/$USER/tmp | awk '{ print $1 }')
if [ "$usertmp" != "4,0K" ]; then
echo -e "Каталог временных файлов: ${color}$usertmp${ncolor}"
else
echo -e "Каталог временных файлов: пуст"
fi;
fi;
#Каталог RecentDocuments
if [ -d "/home/$USER/.local/share/RecentDocuments" ]; then
userrdoc=$(du -sh /home/$USER/.local/share/RecentDocuments | awk '{ print $1 }')
if [ "$userrdoc" != "4,0K" ]; then
echo -e "Каталог RecentDocuments: ${color}$userrdoc${ncolor}"
else
echo -e "Каталог RecentDocuments: пуст"
fi;
else
userrdoc="4,0K"
echo -e "Каталог RecentDocuments: не обнаружен"
fi;
#Кеш urpmi
urpmicache=$(du -chs /var/cache/urpmi/partial /var/cache/urpmi/rpms | awk '{ print $1 }' | tail -1)
if [ "$urpmicache" != "8,0K" ]; then
echo -e "Кеш менеджера пакетов urpmi: ${color}$urpmicache${ncolor}"
else
echo -e "Кеш менеджера пакетов urpmi: пуст"
fi;
#Кеш Mozilla Firefox
if [ -d "/home/$USER/.cache/mozilla" ]; then
mozcache=$(du -sh /home/$USER/.cache/mozilla | awk '{ print $1 }')
echo -e "Кеш браузера Mozilla Firefox: ${color}$mozcache${ncolor}"
else
echo -e "Кеш браузера Mozilla Firefox: нет"
fi;
#Кеш Google Chrome
if [ -d "/home/$USER/.cache/google-chrome" ]; then
chromecache=$(du -sh /home/$USER/.cache/google-chrome | awk '{ print $1 }')
echo -e "Кеш браузера Google Chrome: ${color}$chromecache${ncolor}"
else
echo -e "Кеш браузера Google Chrome: нет"
fi;
#Кеш Opera
if [ -d "/home/$USER/.cache/opera" ]; then
operacache=$(du -sh /home/$USER/.cache/opera | awk '{ print $1 }')
echo -e "Кеш браузера Opera: ${color}$operacache${ncolor}"
else
echo -e "Кеш браузера Opera: нет\n"
fi;
echo "------------------------------------------------"
echo "Продолжить - Enter, иначе Ctrl+C..."
read a
#Проверяю, есть ли что чистить, или - выход
proverka="${kernel}${trash}${usertmp}${urpmicache}${mozcache}${chromecache}${operacache}${userrdoc}"
if [ "$proverka" = "4,0K4,0K8,0K4,0K" ]; then
exit 0
fi;
#Блок очистки--------------------------------------------
clear
#Если есть ядра на удаление - удаляю
if [ -n "$remkernel" ]; then
echo "Удаляю старые ядра, ждите..."
/usr/sbin/urpme $remkernel
fi;
#Очищаю корзину
if [ "$trash" != "4,0K" ]; then
echo -en "Очищаю корзину пользователя... "
rm -rf /home/$USER/.local/share/Trash/*
echo -e "${color}завершено${ncolor}\n"
fi;
#Очищаю временные файлы пользователя
if [ "$usertmp" != "4,0K" ]; then
echo -en "Очищаю временные файлы пользователя... "
rm -rf /home/$USER/tmp/*
echo -e "${color}завершено${ncolor}\n"
fi;
#Очищаю временные файлы пользователя RecentDocuments
if [ "$userrdoc" != "4,0K" ]; then
echo -en "Очищаю файлы пользователя RecentDocuments... "
rm -rf /home/$USER/.local/share/RecentDocuments/*
echo -e "${color}завершено${ncolor}\n"
fi;
#Если кеш urpmi <> 8,0K - очищаю
if [ "$urpmicache" != 8,0K ]; then
echo -en "Очищаю кеш urpmi... "
/usr/sbin/urpmi --clean;
echo -e "${color}завершено${ncolor}\n"
fi;
#Очищаю кеш Mozilla Firefox
if [ -n "$mozcache" ]; then
echo -en "Очищаю кеш браузера Mozilla Firefox... "
rm -rf /home/$USER/.cache/mozilla
echo -e "${color}завершено${ncolor}\n"
fi;
#Очищаю кеш Google Chrome
if [ -n "$chromecache" ]; then
echo -en "Очищаю кеш браузера Google Chrome... "
rm -rf /home/$USER/.cache/google-chrome
echo -e "${color}завершено${ncolor}\n"
fi;
#Очищаю кеш Opera
if [ -n "$operacache" ]; then
echo -en "Очищаю кеш браузера Opera... "
rm -rf /home/$USER/.cache/opera
echo -e "${color}завершено${ncolor}\n"
fi;
#Завершаю очистку
echo "------------------------------------------------"
echo "Очистка завершена. Выйти - Enter или Ctrl+C"
read a