Script pulizia/manutenzione Ubuntu 9.10/10.04


Salvataggio e utilizzo:

Copiare il codice sorgente (segue) in un editor di testo e salvarlo in formato .sh

recarsi nella directory contenente il file e dare i seguenti comandi, sostituendo nomeprogramma col nome che avete dato allo script:

chmod +x nomeprogramma.sh

./nomeprogramma.sh

Codice sorgente:

#!/bin/bash
#Questo script effettua la manutenzione di un sistema operativo GNU/Linux Ubuntu 9.10

#------------------------------------------------------------------------------------------+
# Funzione aggiornamento                                                                   |
#------------------------------------------------------------------------------------------+
function aggiornamento {
echo
echo "********************** INIZIO AGGIORNAMENTO DEL SISTEMA **********************"
echo
echo -n "# Aggiorno gli indici dei pacchetti? "
read sure
if [[ $sure = "s" ]]
then
sudo apt-get update
echo "* Aggiornamento indici pacchetti...[OK]"
else
echo "* Aggiornamento indici pacchetti...[NOT EXECUTED]"
fi
echo
echo -n "# Aggiorno le chiavi GPG degli indici dei pacchetti? "
read sure
if [[ $sure = "s" ]]
then
touch err
sudo apt-get update 2>err
num=$(grep 'NO_PUBKEY' err | wc -l)
str=$(grep 'NO_PUBKEY'  err)
tot=$num
if [ $num != 0 ]
then
echo "- Risolvo NO_PUBKEY..."
for (( i=0 ; i<$num ; i++ ))
do
tmp=${str#*NO_PUBKEY }
key=${tmp:0:16}
str=${str#*NO_PUBKEY}
echo "Aggiungo la chiave:$key"
gpg --keyserver subkeys.pgp.net --recv $key
gpg --export --armor $key | sudo apt-key add -
done
fi
num=0
num=$(grep 'BADSIG' err | wc -l)
str=$(grep 'BADSIG'  err)
tot=$(( $tot + $num ))
if [ $num != 0 ]
then
echo "- Risolvo BADSIG..."
for (( i=0 ; i<$num ; i++ ))
do
tmp=${str#*BADSIG }
key=${tmp:0:16}
str=${str#*BADSIG}
echo "Aggiungo la chiave:$key"
gpg --keyserver subkeys.pgp.net --recv $key
gpg --export --armor $key | sudo apt-key add -
done
fi
rm err
else
echo "* Aggiornamento chiavi GPG degli indici dei pacchetti...[NOT EXECUTED]"
fi
echo
echo -n "# Aggiorno i pacchetti? "
read sure
if [[ $sure = "s" ]]
then
sudo apt-get upgrade
echo "* Aggiornamento pacchetti...[OK]"
else
echo "* Aggiornamento pacchetti...[NOT EXECUTED]"
fi
echo
echo -n "# Aggiorno la data e l'ora del sistema? "
read sure
if [[ $sure = "s" ]]
then
sudo ntpdate it.pool.ntp.org
echo "* Aggiornamento data e ora...[OK]"
else
echo "* Aggiornamento data e ora...[NOT EXECUTED]"
fi
echo -n "# Aggiorno il kernel del sistema? "
read sure
if [[ $sure = "s" ]]
then
sudo apt-get dist-upgrade -f
echo "* Aggiornamento kernel...[OK]"
else
echo "* Aggiornamento kernel...[NOT EXECUTED]"
fi
echo
echo -n "# Aggiorno l'immagine initramfs del kernel? "
read sure
if [[ $sure = "s" ]]
then
sudo update-initramfs -u
echo "* Aggiornamento immagine initramfs...[OK]"
else
echo "* Aggiornamento immagine initramfs...[NOT EXECUTED]"
fi
echo
echo -n "# Verifico che non ci siano pacchetti difettosi? "
read sure
if [[ $sure = "s" ]]
then
sudo apt-get install -f
echo "* Verifica pacchetti difettosi...[OK]"
else
echo "* Verifica pacchetti difettosi...[NOT EXECUTED]"
fi
echo
echo "ATTENZIONE: COMANDO POTENZIALMENTE PERICOLOSO!!"
echo -n "# Aggiorno le configurazioni di GRUB? "
read sure
if [[ $sure = "s" ]]
then
sudo cp /etc/default/grub /etc/default/grub.bak
sudo update-grub
echo "* Backup /boot/grub/menu.lst...[OK]"
echo "* Aggiornamento GRUB...[OK]"
else
echo "* Aggiornamento GRUB...[NOT EXECUTED]"
fi
echo
echo "--------------------------- AGGIORNAMENTO TERMINATO --------------------------"
echo
}

#------------------------------------------------------------------------------------------+
# Funzione pulizia                                                                         |
#------------------------------------------------------------------------------------------+
function pulizia {
echo
echo "************************* INIZIO PULIZIA DEL SISTEMA *************************"
echo
echo -n "# Rimuovo le dipendenze inutili? "
read sure
if [[ $sure = "s" ]]
then
sudo apt-get --purge autoremove
echo "* Rimozione dipendenze inutili...[OK]"
else
echo "* Rimozione dipendenze inutili...[NOT EXECUTED]"
fi
echo
echo -n "# Rimuovo la cache dei pacchetti scaricati dai repository obsoleti? "
read sure
if [[ $sure = "s" ]]
then
sudo apt-get autoclean
echo "* Rimozione cache pacchetti obsoleti...[OK]"
else
echo "* Rimozione cache pacchetti obsoleti...[NOT EXECUTED]"
fi
echo
echo -n "# Rimuovo la cache dei pacchetti scaricati dai repository? "
read sure
if [[ $sure = "s" ]]
then
sudo apt-get clean
echo "* Rimozione cache pacchetti scaricati...[OK]"
else
echo "* Rimozione cache pacchetti scaricati...[NOT EXECUTED]"
fi
echo
echo -n "# Rimuovo tutti i pacchetti di sistema oramai diventati obsoleti? "
read sure
if [[ $sure = "s" ]]
then
sudo dpkg --purge `COLUMNS=300 dpkg -l "*" | egrep "^rc" | cut -d\  -f3`
echo "* Rimozione pacchetti obsoleti...[OK]"
else
echo "* Rimozione pacchetti obsoleti...[NOT EXECUTED]"
fi
echo
echo -n "# Elimino il contenuto di /temp? "
read sure
if [[ $sure = "s" ]]
then
sudo rm -rfv /tmp/*
echo "* Eliminazione contenuto /temp...[OK]"
else
echo "* Eliminazione contenuto /temp...[NOT EXECUTED]"
fi
echo
echo -n "# Elimino il contenuto della directory /.thumbnails? "
read sure
if [[ $sure = "s" ]]
then
sudo rm -rfv ~/.thumbnails/*
echo "* Eliminazione files da /.thumbnails ...[OK]"
else
echo "*Eliminazione files da /.thumbnails ...[NOT EXECUTED]"
fi
echo
echo -n "# Effettuo una ricerca dei residui di files? "
read sure
if [[ $sure = "s" ]]
then
find $HOME -name "*~"
find $HOME -name "Desktop.ini"
find $HOME -name "Thumbs.db"
echo -n "# Rimuovo questi residui di file? "
read sure
if [ $sure == "s" ]
then
find $HOME -name "*~" -print0|xargs -0 /bin/rm -f
find $HOME -name "Desktop.ini" -print0|xargs -0 /bin/rm -f
find $HOME -name "Thumbs.db" -print0|xargs -0 /bin/rm -f
echo "* Eliminazione residui...[OK]"
else echo "* Eliminazione residui...[NOT EXECUTED]"
fi
else echo "* Ricerca residui di files...[NOT EXECUTED]"
fi
echo
echo -n "# Elimino il contenuto del Cestino? "
read sure
if [[ $sure = "s" ]]
then
sudo rm -rfv ~/.local/share/Trash/*
echo "* Eliminazione files da /Trash ...[OK]"
else
echo "* Eliminazione files da /Trash ...[NOT EXECUTED]"
fi
echo
echo -n "# Pulisco i documenti recenti? "
read sure
if [[ $sure = "s" ]]
then
sudo mv ~/.recently-used.xbel .recently-used.xbel.bak
sudo mv ~/.recently-used .recently-used.bak
touch ~/.recently-used.xbel
echo "<?xml version="1.0" encoding="UTF-8"?>\n<xbel version="1.0"\nxmlns:bookmark="http://www.freedesktop.org/standards/desktop-bookmarks"\nxmlns:mime="http://www.freedesktop.org/standards/shared-mime-info"\n></xbel>\n
" > ~/.recently-used.xbel
echo "* Pulizia documenti recenti...[OK]"
else
echo "* Pulizia documenti recenti...[NOT EXECUTED]"
fi
echo
echo -n "# Elimino i log di bootchart (se presenti)? "
read sure
if [[ $sure = "s" ]]
then
sudo rm -rfv /var/log/bootchart/*
echo "* Eliminazione files da /var/log/bootchart/ ...[OK]"
else
echo "* Eliminazione files da /var/log/bootchart/ ...[NOT EXECUTED]"
fi
echo
echo
echo "Per l'esecuzione di questo comando verrà installato il pacchetto deborphan"
echo "ATTENZIONE: COMANDO POTENZIALMENTE PERICOLOSO!!"
echo -n "# Rimuovo le librerie orfane? "
read sure
if [[ $sure = "s" ]]
then
sudo apt-get -y install deborphan
sudo apt-get --purge remove `deborphan`
echo "* Rimozione librerie orfane...[OK]"
else
echo "* Rimozione librerie orfane...[NOT EXECUTED]"
fi
echo
echo "Per l'esecuzione di questo comando verrà installato il pacchetto deborphan"
echo "ATTENZIONE: COMANDO POTENZIALMENTE PERICOLOSO!!"
echo -n "# Rimuovo le librerie orfane di sviluppo? "
read sure
if [[ $sure = "s" ]]
then
sudo apt-get -y install deborphan
sudo apt-get --purge remove `deborphan --libdev`
echo "* Rimozione librerie orfane...[OK]"
else
echo "* Rimozione librerie orfane...[NOT EXECUTED]"
fi
echo
echo "------------------------------ PULIZIA TERMINATA -----------------------------"
echo
}

#------------------------------------------------------------------------------------------+
# Programma principale                                                                     |
#------------------------------------------------------------------------------------------+
echo "+============================================================================+"
echo "|                           MANUTENZIONE DI UBUNTU                           |"
echo "|                                                                            |"
echo "|        Questo script effettua una manutenzione guidata del sistema         |"
echo "|        per rispondere affermativamente alle domande che verranno           |"
echo "|        poste premete s e confermate premendo il tasto <invio>              |"
echo "|        per saltare la domanda premete <invio>                              |"
echo "|                                                                            |"
echo "+============================================================================+"
echo
echo -n "~~~ ESEGUIRE I COMANDI PER L'AGGIORNAMENTO DEL SISTEMA? "
read sure
if [[ $sure = "s" ]]
then
aggiornamento
else
echo "*** Aggiornamento del sistema...[NOT EXECUTED]"
fi
echo
echo -n "~~~ ESEGUIRE I COMANDI PER LA PULIZIA DEL SISTEMA? "
read sure
if [[ $sure = "s" ]]
then
pulizia
else
echo "*** Pulizia del sistema...[NOT EXECUTED]"
fi
echo
echo -n "~~~ E' CONSIGLIABILE RIAVVIARE IL SISTEMA. RIAVVIARE? "
read sure
if [[ $sure = "s" ]]
then
sudo reboot
else
echo "*** Riavvio del sistema...[NOT EXECUTED]"
fi
echo
read -p "Premi <INVIO> per uscire"

Spiegazione dei comandi:

sudo apt-get update

aggiorna l’elenco locale degli indici dei pacchetti

sudo apt-get upgrade

aggiorna i pacchetti

sudo ntpdate it.pool.ntp.org

aggiorna l’ora di sistema sincronizzandosi col server it.pool.ntp.org

sudo apt-get dist-upgrade -f

aggiorna l’intero sistema da una revisione a un’altra

sudo apt-get install -f

controlla che non ci siano pacchetti difettosi

sudo apt-get --purge autoremove

rimuove le dipendenze inutili

sudo apt-get autoclean

rimuove la cache dei pacchetti scaricati dai repository obsoleti

sudo apt-get clean

rimuove la cache dei pacchetti scaricati dai repository

sudo dpkg --purge `COLUMNS=300 dpkg -l "*" | egrep "^rc" | cut -d\  -f3`

rimuove tutti i pacchetti di sistema oramai diventati obsoleti e le dipendenze oramai irrisolte e residui di file di configurazione

sudo rm -fr /tmp/*

rimuove files dalla cartella /temp

sudo rm -rfv ~/.local/share/Trash/*

rimuove i files dalla cartella cestino

11 thoughts on “Script pulizia/manutenzione Ubuntu 9.10/10.04

  1. Ema90

    Ma c’è differenza tra “sudo apt-get –purge autoremove” e “sudo apt-get autoremove” ?

  2. Con l’opzione –purge vengono rimossi tutti i files inerenti al pacchetto, in particolare i files di configurazione

  3. DAT

    Ciao, interessantissimo script.
    Sono su Ubuntu 9.10 e sarei interessato particolarmente alla realizzazione di uno script che possa effettuare solo ed esclusivamente la pulizia (es. Documenti recenti, Cestino, temp ecc.), magari in automatico alla CHIUSURA del sistema, quando spengo e/o riavvio.
    Sarebbe possible?

  4. Pingback: subprocess installed post-removal script returned error exit status 1 « six110@wordpress:~#

Leave a Reply

Please log in using one of these methods to post your comment:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s