News:

è disponibile So.Di.Linux 2025, distro italiana per la scuola basata su mint mate 20 >>> clicca qui

Menu principale

script (non grafico) di pulizia del sistema (sostituto Ubuntu-Tweak)

Aperto da /dev/sda, Sabato 02 Aprile 2016, 18:38:12

Discussione precedente - Discussione successiva

/dev/sda

Ciao, con il supporto degli utenti qui
http://forum.ubuntu-it.org/viewtopic.php?f=33&t=609238

è stato creato uno script di pulizia del sistema, per ovviare al fatto che ubuntu tweak non è più sviluppato ed era un ottimo tool per la pulizia del sistema.

Lo script in questione, pulisce la cahe di apt, i pacchetti non più necessari, la cache delle miniature, di firefox e di google chrome, i vecchi kernel (lascia il kernel in uso e il precedente) e rimuove le configurazioni di pacchetti rimossi.

è tutto scritto nella discussione, ma metto qui  come usarlo

Creare un file in home di nome pulizia.sh (metto come editor di testo gedit, ognuno metta il suo)
gedit ~/pulizia.sh e incollare ciò che segue


#! /bin/bash
# Versione 1.1

APT () {
# PULIZIA DI APT
spazio_apt=$(du -sh /var/cache/apt/archives/ &> /dev/null | 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
which firefox &> /dev/null # Controllo la presenza di Firefox
if [ "$?" == "0" ]
then
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
echo -e "* Pulizia della cache di Firefox *"
echo -e "La cache di Firefox è vuota!"
fi
else
echo -e "* Pulizia della cache di Firefox *"
echo -e "Firefox non risulta installato!"
sleep 2
fi
if [ "$ALL" == "Y" ]
then
return
fi
INIZIO
}

CHROME () {
# CANCELLAZIONE CACHE CHROME
which google-chrome &> /dev/null
if [[ "$?" == "0" ]]
    then
spazio_chrome=$(du -sh $HOME/.cache/google-chrome/Default/Cache/ | cut -d "/" -f1)
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
else
echo -e "* Pulizia della cache di Chrome *"
echo -e "Chrome non risulta installato!"
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' | wc -l)

if [ $kernelList -gt 2 ]
    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



Incollato il codice salvare il file e chiuderlo e dare i permessi di esecuzione al file
chmod +x ~/pulizia.sh

e avviare lo script con
sudo ./pulizia.sh

Si puo creare anche un lanciatore, copiare il file pulizia.sh dalla /home in /usr/bin
sudo cp pulizia.sh /usr/bin

e creare un .desktop in /usr/share/applications
sudo gedit /usr/share/applications/pulizia.desktop
e incollare
[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 inavvertitamente.

********
Vi invitiamo a preferire il tool con interfaccia grafica che potete trovare qui.

Squ@ll

Bella storia!
Bravo /dev..  :ok:
Anche se utilizzo Bleachbit.  :boh:
"Io sono tuo padre.."
Anakin Skywalker
Warning: "I don't use Windows!"

/dev/sda

bleach bit non so se implementa la rimozione dei vecchi kernel, dei file di configurazione residui e l'autoremove...non mi pare, ma probabilmente dico cavolate, non lo conosco bene.

Squ@ll

Autoremove c'è, per i kernel devo guardare ma mi sa di no...  :boh:
"Io sono tuo padre.."
Anakin Skywalker
Warning: "I don't use Windows!"

midnite

 :hmm: sicuro che lascia anche il kernel precedente e non solo quello in uso?
l'ho provato e me ne ha lasciato solo uno ...

danialbi

a me ne ha lasciati due, il 3.13.0.77 e il 3.13.0.79

/dev/sda

#6
Citazione di: midnite il Sabato 02 Aprile 2016, 20:57:01
:hmm: sicuro che lascia anche il kernel precedente e non solo quello in uso?
l'ho provato e me ne ha lasciato solo uno ...

sì, l'ho testato varie volte, ora sono su trusty e questo è l'output della parte che riguarda i kernel, ora ne ho solo due quindi non rimuove niente , ma come vedi alla fine ha lasciato i due kernel, quello in uso e il precedente


Saranno rimossi questi kernel (compreso i loro header):
Kernel attuale in uso:
4.2.0-34-generic
Generating grub configuration file ...
Trovata immagine linux: /boot/vmlinuz-4.2.0-34-generic
Trovata immagine initrd: /boot/initrd.img-4.2.0-34-generic
Trovata immagine linux: /boot/vmlinuz-3.19.0-51-generic
Trovata immagine initrd: /boot/initrd.img-3.19.0-51-generic
Found memtest86+ image: /boot/memtest86+.elf
Found memtest86+ image: /boot/memtest86+.bin
Trovato Windows 7 (loader) su /dev/sda1
Trovato Ubuntu Xenial Xerus (development branch) (16.04) su /dev/sda10
Trovato Manjaro Linux (15.12) su /dev/sda11
Trovato PCLinuxOS su /dev/sda12
Trovato PCLinuxOS su /dev/sda8
Trovato PCLinuxOS su /dev/sda9
fatto
Sono rimasti installati questi due kernel:
linux-image-3.19.0-51-generic
linux-image-4.2.0-34-generic
Headers installati:
linux-headers-3.19.0-51
linux-headers-3.19.0-51-generic
linux-headers-4.2.0-34
linux-headers-4.2.0-34-generic
Fatto!


E questo è l'output di
dpkg --get-selections | grep linux-image;dpkg --get-selections | grep linux-headers

~$ dpkg --get-selections | grep linux-image;dpkg --get-selections | grep linux-headers
linux-image-3.19.0-51-generic                   install
linux-image-4.2.0-34-generic                    install
linux-image-extra-3.19.0-51-generic             install
linux-image-extra-4.2.0-34-generic              install
linux-image-generic-lts-wily                    install
linux-headers-3.19.0-51                         install
linux-headers-3.19.0-51-generic                 install
linux-headers-4.2.0-34                          install
linux-headers-4.2.0-34-generic                  install
linux-headers-generic-lts-wily                  install


dove si vedono anche i linux-image-extra delle versioni del kernel rimaste

midnite

ok. ho verificato su un altro pc e ha fatto come previsto (lasciando 2 kernel) ... ora devo solo capire cos'ho combinato su quello dove ho provato ieri sera  ;D

/dev/sda

#8
l'ho modificato, segnala la dimensione della cache di apt da cancellare e se non ci sono vecchi kernel lo dice

chi non usa entrambi i browser, può commentare tutta la parte di script relativa al browser che non usa

inoxidabile

Interessante ...   :ok:
Non sapevo della cessazione dello sviluppo di Tweak, è una grande perdita (per me, almeno... :sigh:)
Bleachbit avevo smesso di usarlo da quando, forse per causa mia, mi aveva fatto dei disastri e comunque l'ho sempre trovato un po' poco user friendly, ed allora facevo a manina o con Tweak.
Grazie a /dev/sda/  :)

trigg

bello e intrigante ^_^
fatto .

ho 2 domande da fare

1) mi dice sempre di eseguire apt-get update per correggere l'errore (come da screen) ma continua a darmi lo stesso script.

2) cosa sono le miniature di sistema?
se hai paura di far domande...
                                             ...hai paura d'imparare
     ... non si finisce mai d'imparare...

/dev/sda

quello è un problema che non c'entra con lo script devi aggiustare il sources.list, hai dei repo duplicati, apri una discussione apposita per il problema e in quella fai sapere che distro usi e il DE

se vedi nella tua /home le cartelle nascoste , cè .thumbnails è una sorta di memoria in cui vengono inserite le miniature delle immagini visualizzate sul pc

Tony

#12
Mi permetto di far notare che nello script si fa uso della variabile $scelta ma a questa non viene mai assegnato un valore.
Dunque, dopo la prima riga del file aggiungerei questa
scelta="Premere s oppure S per sì, un altro tasto per no."

P.S. Inoltre, sostituirei queste righe
# PULIZIA DI APT
echo -e "Lo spazio occupato dalla cache di APT è:\n"
sudo du -sh /var/cache/apt/archives/


con queste
# PULIZIA DI APT
spazio=`sudo du -sh /var/cache/apt/archives/`
echo -e "Lo spazio occupato dalla cache di APT è:\n$spazio"


così la richiesta della password è meno invadente e non ruba la riga.

Linux non è solo un sistema operativo ma...
"È uno stato mentale, dove prima ti perdi e poi ti ritrovi"
(cit. Point Break).
Il mio pc.

/dev/sda

Ciao Tony, io di programmazione non ci capsico niente,  se vuoi modificare lo script nelle parti interessate,  fai pure, intanto con i poteri di mega super astro mod puoi modificare il mio messaggio....;D

Tony

Ok, mi inviti a nozze. Incomincio con le modifiche. Vedrò di fare uno script più interattivo.

Linux non è solo un sistema operativo ma...
"È uno stato mentale, dove prima ti perdi e poi ti ritrovi"
(cit. Point Break).
Il mio pc.

Powered by EzPortal