è questo, per come l'ho testato mi pare funzioni bene
Codice: Seleziona tutto
#! /bin/bash
APT () {
# PULIZIA DI APT
spazio_apt=`du -sh /var/cache/apt/archives/ | cut -d "/" -f1`
echo " * Pulizia della cache di apt *"
if [ -n "$spazio_apt" ]
then
echo "La cache di apt è di $spazio_apt"
echo "Provvedo a pulirla (potrebbe essere necessaria la password)"
sleep 0.5
sudo apt-get clean -y # elimina cache dei programmi installlati
sleep 1
echo "Pulita!"
sleep 2
else
echo "La cache apt è vuota."
sleep 2
fi
if [ "$ALL" == "Y" ]
then
return
fi
INIZIO
}
PACCHETTI () {
#elimina programmi installati come dipendenze non più necessarie
echo -e "* Pulizia di programmi-dipendenze non più necessari *"
if [ -n "$LIB" ]
then
echo "Programmi installati come dipendenze non più necessarie"
echo $LIB
sudo apt-get autoremove -y
echo "Eliminati!"
sleep 2
else
echo "Non ci sono programmi installati come dipendenze da rimuovere!"
sleep 2
fi
if [ "$ALL" == "Y" ]
then
return
fi
INIZIO
}
MINIATURE () {
# CANCELLAZIONE CACHE MINIATURE SISTEMA
spazio_thumbnails=`du -sh $HOME/.cache/thumbnails/ | cut -d "/" -f1`
echo -e "* Pulizia della cache delle miniature *"
if [ -n "$spazio_thumbnails" ]
then
echo "La cache delle miniature è pari a $spazio_thumbnails"
echo -e "Attendere, sto cancellando."
sleep 1
rm -fr $HOME/.cache/thumbnails/fails/*
rm -fr $HOME/.cache/thumbnails/large/*
rm -fr $HOME/.cache/thumbnails/normal/*
echo -e "Fatto!"
sleep 2
else
echo "La cache delle miniature è vuota!"
sleep 2
fi
if [ "$ALL" == "Y" ]
then
return
fi
INIZIO
}
FIREFOX () {
# CANCELLAZIONE CACHE FIREFOX
DIR="$HOME/.cache/mozilla/firefox/"
echo -e "* Pulizia della cache di Firefox *"
if [ -d "$DIR" ]
then
for I in `ls $DIR`
do
spazio_firefox=`du -sh $DIR/$I/ | cut -d "/" -f1`
PROFILO=`echo $I | cut -d "." -f2`
echo "La cache del profilo \"$PROFILO\" è di $spazio_firefox"
echo -e "Cancellare?\n(premi s per sì o un altro tasto per no)"
read -s -n1
if [ "$REPLY" == "s" -o "$REPLY" == "S" ]
then
echo -e "Attendere, sto cancellando."
sleep 1
rm -fr $DIR/$I/*
echo -e 'Fatto!'
sleep 2
else
echo
fi
done
else
which firefox &> /dev/null # Controllo la presenza di Firefox
if [ "$?" != "0" ]
then
echo "Firefox non risulta installato!"
else
echo "La cache di Firefox è vuota!"
fi
sleep 2
fi
if [ "$ALL" == "Y" ]
then
return
fi
INIZIO
}
CHROME () {
# CANCELLAZIONE CACHE CHROME
spazio_chrome=`(du -sh $HOME/.cache/google-chrome/Default/Cache/ | cut -d "/" -f1) &> /dev/null`
echo -e "* Pulizia della cache di Chrome *"
if [ -n "$spazio_chrome" ]
then
echo "La cache è di $spazio_chrome"
echo -e "Attendere, sto cancellando."
sleep 1
rm -fr $HOME/.cache/google-chrome/Default/Cache/*
echo 'Fatto'
sleep 2
else
echo "La cache di Chrome è vuota!"
sleep 2
fi
if [ "$ALL" == "Y" ]
then
return
fi
INIZIO
}
KERNEL () {
#Rimuove i vecchi kernel lasciando solo gli ultimi due, quello in uso e il precedente
echo -e "* Pulizia dei vecchi kernel *"
ls /boot/ | grep vmlinuz | sed 's@vmlinuz-@linux-image-@g' | sort -Vr | sed -e '1,2d' > /tmp/kernelList
kernelList=$(ls /boot/ | grep vmlinuz | sed 's@vmlinuz-@linux-image-@g' | sort -Vr | sed -e '1,2d')
if [ "$kernelList" != "" ]
then
echo 'Saranno rimossi questi kernel (compreso i loro header):'
cat /tmp/kernelList
echo 'Kernel attuale in uso:'
uname -r
for l in `cat /tmp/kernelList`
do
sudo apt-get remove --purge -y $l
done
#questo rimuove i header:
ls /usr/src |grep headers | sort -Vr |sed -e '1,4d' > /tmp/headerList
for l in `cat /tmp/headerList`
do
sudo apt-get remove --purge -y $l
done
sudo rm -f /tmp/headerlist
sudo rm -f /tmp/kernelList
sudo update-grub
echo 'Sono rimasti installati questi due kernel:'
ls /boot/ | grep vmlinuz | sed 's@vmlinuz-@linux-image-@g'
echo 'Headers installati:'
ls /usr/src |grep headers
else
echo "Non ci sono kernel da rimuovere!"
fi
sleep 2
if [ "$ALL" == "Y" ]
then
return
fi
INIZIO
}
CONFIGURAZIONI () {
# PULIZIA DELLE CONFIGURAZIONI INUTILIZZATE
LIB=`dpkg -l | egrep "^rc" | cut -d ' ' -f3`
echo -e "* Pulizia configurazioni inutilizzate *"
if [ -n "$LIB" ]
then
echo 'Le eventuali configurazioni inutilizzate sono:'
echo $LIB
echo -e "Cancellare?\n(premi s per sì o un altro tasto per no)"
read -sn 1
if [ "$REPLY" = "s" -o "$REPLY" = "S" ]
then
sudo dpkg --purge `dpkg -l | egrep "^rc" | cut -d ' ' -f3`
echo "Cancellate!"
fi
else
echo "Non ci sono configurazioni inutilizzate da rimuovere!"
sleep 2
fi
INIZIO
}
INIZIO () {
clear
ALL="NO"
cat << EOF
*** Pulizia del sistema ***
Opzioni:
a) Pulisci cache di apt
k) Rimuovi i vecchi kernel lasciando solo quello in uso e il precedente
t) Cancella cache miniature
d) Elimina programmi installati come dipendenze non più necessarie
f) Cancella cache di Firefox
c) Cancella cache di Google Chrome
l) Rimuovi le configurazioni non utilizzate
x) Pulizia completa
q) Esci
EOF
read -s -n1 TASTO
clear
case $TASTO in
a | A) APT ;;
d | D) PACCHETTI ;;
t | T) MINIATURE ;;
k | K) KERNEL ;;
f | F) FIREFOX ;;
c | C) CHROME ;;
l | L) CONFIGURAZIONI ;;
x | X) ALL=Y ; APT ; echo ; PACCHETTI ; echo ; MINIATURE ; echo ; KERNEL ; echo ; FIREFOX; echo ; CHROME ; echo ; CONFIGURAZIONI ;;
q | Q) exit ;;
* ) INIZIO ;;
esac
}
INIZIO
Per usare lo script Creare un file in home di nome pulizia.sh (metto come editor di testo gedit, ognuno metta il suo)
Incollato il codice salvare il file e chiuderlo e dare i permessi di esecuzione al file
e avviare lo script con
Si puo creare anche un lanciatore, copiare il file pulizia.sh in /usr/bin
e creare un .desktop in /usr/share/applications
e incollare
Codice: Seleziona tutto
[Desktop Entry]
Version=1.6
Encoding=UTF-8
Name=Pulizia Sistema
Type=Application
Exec=/usr/bin/pulizia.sh
Terminal=true
Icon=/usr/share/icons/clean.png
Comment=Pulisce il sistema
NoDisplay=false
Categories=System;
salvare il file e chiuderlo e si trova il lanciatore in menu/Sistema
alla voce Icon= mettere il percorso ad una propria icona, io ne ho scaricato una da internet e copiata il /usr/share/icons, così non cè il rischio di canecellarla inavvertitamentesi