Consenso all'uso dei cookies

SITO1 -- SITO2 -- Forum1 -- CercaGlobale -- Informativa su Cookie e Privacy


Valutazione discussione:
  • 0 voto(i) - 0 media
  • 1
  • 2
  • 3
  • 4
  • 5
[Guida] Ubuntu script sostituto pulizia ubuntu-tweak
#1
A quanto pare, gli sviluppatori di ubuntu-tweak hanno abbandonato lo sviluppo da ubuntu 14.04 in poi, qui cè uno script per automatizzare quella che è la scheda "Pulizia" di ubuntu-tweak

ciao, la situazione si è evoluta, l'utente Tony ha creato anche uno script con interfaccia grafica qui

http://www.linuxmind-italia.org/index.ph...#msg241866

quindi ho modificato un po' il post, metto direttamente il link allo script grafico e istruzioni per crearlo di sistema in /usr/bin e creare lanciatore per dash o menu

Codice:
gksu gedit /usr/bin/pulizia.sh
e incollare il codice dello script


Codice:
#!/bin/bash
# Versione 3.3

USCITA () {
rm /tmp/analisi_sistema /tmp/locked_files_list /tmp/locked_files_table 2>/dev/null
exit
}

ERRORE () {
echo -e "#Si è verificato un errore.\n$MSGERR"
exit
ANALISI_SISTEMA
MENU
}

ERRORE_ZEN () {
zenity --error --text="Si è verificato un errore\no il processo è stato interrotto.\n$MSGERR"
ANALISI_SISTEMA
MENU
}

CERCA_LOCKED_FILES () {
find /home/ -iname ".~lock.*" -print0 2>/dev/null > /tmp/locked_files_list
find /media/ -iname ".~lock.*" -print0 2>/dev/null >> /tmp/locked_files_list
find /mnt/ -iname ".~lock.*" -print0 2>/dev/null >> /tmp/locked_files_list
}

APT () {
# PULIZIA DI APT
# elimina cache dei programmi installati
MSGERR="Pulizia cache apt non completata!" # Messaggio in caso di errore
if [[ "$SPAZIO_APT" != "Pulizia non necessaria (cache < 500kB)" ]]
then
    (
    echo "#Sto pulendo la cache."
    echo 50
    apt-get clean -y || ERRORE
    echo "#La cache apt è pulita!"
    echo 100
        ) | zenity --progress --title="Pulizia cache apt" --width=400 --height=100 || ERRORE_ZEN
    SPAZIO_APT="Pulizia non necessaria (cache < 500kB)"
fi
}


PACCHETTI () {
#elimina i pacchetti installati come dipendenze che non sono più necessari
MSGERR="Rimozione pacchetti-dipendenze non completata!" # Messaggio in caso di errore

if [[ "$PACCHETTI_DA_RIMUOVERE" == "0" ]]
    then
    return
fi
(
echo "#Ricerca di pacchetti-dipendenze non più necessari"
LIB=$(LANG=C apt-get autoremove -s | sed '1,/REMOVED:/d;/to remove/,$d') #TODO migliorare i criteri usati con sed
echo 50
echo "#Rimozione di $LIB"
apt-get autoremove -y || ERRORE
    echo "#Pulizia eseguita!"
    echo 100
) | zenity --progress --title="Pulizia di programmi-dipendenze non più necessari" --width=400 --height=100 || ERRORE_ZEN
PACCHETTI_DA_RIMUOVERE=$(LANG=C apt-get autoremove -s | grep -o "[[:digit:]]* to remove" | awk '{print $1}')
}

MINIATURE () {
# CANCELLAZIONE CACHE MINIATURE SISTEMA
MSGERR="Pulizia cache delle miniature non completata!" # Messaggio in caso di errore
if [[ "$SPAZIO_MINIATURE" == "Pulizia non necessaria (cache < 500kB)" ]]
then
return
fi
(
    echo "#Attendere, sto cancellando la cache delle miniature."
    rm -fr "$HOME"/.cache/thumbnails/fails/* 2>/dev/null || ERRORE
    rm -fr "$HOME"/.cache/thumbnails/large/* 2>/dev/null || ERRORE
    rm -fr "$HOME"/.cache/thumbnails/normal/* 2>/dev/null || ERRORE
    sleep 1
    echo "#Fatto, cache delle miniature pulita!"
) | zenity --progress --pulsate --title="Pulizia della cache delle miniature" --width=400 --height=100 || ERRORE_ZEN
SPAZIO_MINIATURE="Pulizia non necessaria (cache < 500kB)"
}

FIREFOX () {
# CANCELLAZIONE CACHE FIREFOX
MSGERR="Pulizia cache Firefox non completata!" # Messaggio in caso di errore
case $SPAZIO_FIREFOX_TOTALE in
"Firefox non è installato" | "Pulizia non necessaria (cache < 500kB)" ) return ;;
esac


(
DIR="$HOME"/.cache/mozilla/firefox/
echo "#Pulizia della cache di Firefox"
if [ -d "$DIR" ]
then
    for I in $(ls "$DIR")
    do
       PROFILO=$(echo "$I" | cut -d "." -f2)
       echo "#Sto pulendo la cache del profilo \"$PROFILO\""
       sleep 1
       rm -fr "$DIR"/"$I"/* || ERRORE
       echo "#Fatto!"
    done
else
    echo "#Cartella cache inesistente!"
fi
) | zenity --progress --pulsate --title="Pulizia cache di Firefox" --width=400 --height=100 || ERRORE_ZEN

SPAZIO_FIREFOX_TOTALE=$(du -sh -t +500k "$HOME"/.cache/mozilla/firefox/ 2>/dev/null | awk '{print $1}')
    if [[ "$SPAZIO_FIREFOX_TOTALE" == "" ]]
        then
        SPAZIO_FIREFOX_TOTALE="Pulizia non necessaria (cache < 500kB)"
    fi
}

CHROME () {
# CANCELLAZIONE CACHE CHROME
MSGERR="Pulizia cache Chrome non completata!" # Messaggio in caso di errore

case $SPAZIO_CHROME in
"Chrome non è installato" | "Pulizia non necessaria (cache < 500kB)" ) return ;;
esac

(
echo "#Sto pulendo la cache di Chrome"
sleep 1
rm -fr "$HOME"/.cache/google-chrome/Default/Cache/* || ERRORE
echo "#Fatto!"
) | zenity --progress --pulsate --title="Pulizia cache di Chrome" --width=400 --height=100 || ERRORE_ZEN
SPAZIO_CHROME=$(du -sh -t +500k "$HOME"/.cache/google-chrome/Default/Cache/ 2> /dev/null | awk '{print $1}')
    if [[ "$SPAZIO_CHROME" == "" ]]
        then
        SPAZIO_CHROME="Pulizia non necessaria (cache < 500kB)"
    fi
}

KERNEL () {
#Rimuove i vecchi kernel lasciando solo gli ultimi due, quello in uso e il precedente
MSGERR="Rimozione vecchi kernel non completata!" # Messaggio in caso di errore
if [[ "$KERNEL_DA_RIMUOVERE" == "0" ]]
    then
    return
fi

(
echo "#Analisi dei kernel"
sleep 1
KERNEL_LIST=$(ls /boot/ | awk '/vmlinuz/ {gsub(/vmlinuz-/, "linux-image-"); print}'| sort -Vr | sed -e '1,2d')
KERNEL_USED=$(uname -r)
echo "#Kernel attuale in uso: $KERNEL_USED"
sleep 1
for l in $KERNEL_LIST
    do
    echo "#Sto rimuovendo $l"
    apt-get remove --purge  -y  "$l" || ERRORE
done

#RIMOZIONE HEADER
MSGERR="Rimozione vecchi header non completata!" # Messaggio in caso di errore
HEADER_LIST=$(ls /usr/src | grep headers | sort -Vr |sed -e '1,4d')
for l in $HEADER_LIST
    do
    echo "#Sto rimuovendo $l"
    apt-get remove --purge  -y  "$l" || ERRORE
done

#AGGIORNAMENTO GRUB
MSGERR="Aggiornamento grub non completata!" # Messaggio in caso di errore
    echo '#Aggiorno il grub'
    update-grub || ERRORE
    echo '#Fatto!'
) | zenity --progress --pulsate --title="Rimozione vecchi kernel" --width=400 --height=100 || ERRORE_ZEN
KERNEL_DA_RIMUOVERE=$(ls /boot/ | awk '/vmlinuz/ {gsub(/vmlinuz-/, "linux-image-"); print}'| sort -Vr | sed -e '1,2d' | wc -l)
}

CONFIGURAZIONI () {
# PULIZIA DELLE CONFIGURAZIONI INUTILIZZATE
MSGERR="Pulizia vecchie configurazioni non completata!" # Messaggio in caso di errore
if [[ "$LIB_DA_RIMUOVERE" == "0" ]]
    then
    return
fi
(
echo "#Pulizia configurazioni inutilizzate"
sleep 0.5
echo "#Analizzo"
LIB=$(dpkg -l | egrep "^rc" | cut -d ' ' -f3)
sleep 0.5
echo "#Le configurazioni inutilizzate sono: $LIB"
sleep 1
echo "#Attendere. Sto cancellando."
dpkg --purge $(dpkg -l | egrep "^rc" | cut -d ' ' -f3) || ERRORE
if [[ $? -eq 0 ]]
    then
    echo "#Pulizia eseguita!"
    echo 100
    else
    echo -e "#Si è verificato un errore.\nPulizia configurazioni inutilizzate non completata!"
fi
) | zenity --progress --pulsate --title="Rimozione configurazioni non utilizzate" --width=400 --height=100 || ERRORE_ZEN
LIB_DA_RIMUOVERE=$(dpkg -l | egrep "^rc" | cut -d ' ' -f3 | wc -l)
}

LOCKED_FILES () {
MSGERR="Eliminazione dei file non completata!" # Messaggio in caso di errore
if [[ "$LOCKED_FILES_NUM" != "0" ]] # Se ci sono file da rimuovere
    then
    LISTA=$(xargs -0 -a /tmp/locked_files_list)
    : > /tmp/locked_files_table
    for ELENCO in "$LISTA"
        do
        echo "$ELENCO" >> /tmp/locked_files_table
    done
    LISTA_ELENCO=$(cat /tmp/locked_files_table)
    zenity --question --cancel-label="Annulla" --ok-label="Continua" --title="Rimozione lock files" --text="Il c.d. file locking viene utilizzato per segnalare al sistema che una determinata risorsa non è disponibile.\nQuando, ad esempio, si lavora su un file odt, writer crea il corrispondente lock file (nascosto).\nTale file ha il seguente prefisso: .~lock.\nCiò avviene per evitare che un altro utente modifichi lo stesso file odt.\nInfatti, se c'è il relativo lock file, gli altri utenti potranno aprire il file odt esclusivamente in sola lettura.\nIl lock file viene solitamente cancellato dallo stesso programma che lo ha creato una volta che si è\nchiuso il file su cui si stava lavorando.\nPuò, tuttavia, accadere che ciò non avvenga (ad esempio a causa di crash del programma).\nLa seguente opzione rimuove i \"lock files\" presenti nella home di tutti gli utenti e nelle sottocartelle,\nnonché quelli presenti sui dispositivi di massa montati.\n\nSe si prosegue, questi file saranno eliminati\n$LISTA_ELENCO\nContinuare?\n\n<span color=\"red\">Prima di continuare si raccomanda di chiudere tutti gli altri programmi eventualmente aperti.</span>"
    if [ $? != 0 ]
        then
        return
    fi
    (
    echo "#Eliminazione file in corso."
    xargs -a /tmp/locked_files_list -0 rm 2>/dev/null
    if [ $? != 0 ]
        then        
        # Ricontrollo
        echo -e "#Si è verificato un errore!\nLa rimozione dei file potrebbe non essere completa.\nAttendere, mentre eseguo una nuova scansione."
        CERCA_LOCKED_FILES
        else        
        echo "#Eliminazione dei file completata!"
        : > /tmp/locked_files_list 2>/dev/null # Svuoto il file
    fi
    ) | zenity --progress --pulsate --title="Rimozione file di backup automatici" --width=400 --height=100 || ERRORE_ZEN
fi
}

MENU () {
LOCKED_FILES_NUM=$(grep -c ".~lock" /tmp/locked_files_list) # Controllo se è stata aggiornata la lista dei file lock

#### Mostro il menu
SCELTA=$(zenity --list --checklist --print-column=2 --width=850 --height=320 --hide-column=2 --title="Tool di pulizia del sistema (versione 3.3)" --cancel-label="Esci" --ok-label="Esegui" --separator " " --text="Scegli tra le opzioni seguenti:" \
--column="Scelta" --column="Scelta" --column="Descrizione" --column="Info" \
false "APT" "Pulisci la cache di apt" "$SPAZIO_APT" \
false "KERNEL" "Rimuovi i vecchi kernel esclusi quello in uso ed il precedente" "$KERNEL_DA_RIMUOVERE kernel da rimuovere" \
false "MINIATURE" "Cancella cache miniature" "$SPAZIO_MINIATURE" \
false "PACCHETTI" "Elimina i pacchetti installati come dipendenze che non sono più necessari" "$PACCHETTI_DA_RIMUOVERE pacchetti da rimuovere" \
false "FIREFOX" "Cancella la cache di Firefox" "$SPAZIO_FIREFOX_TOTALE" \
false "CHROME" "Cancella la cache di Chrome" "$SPAZIO_CHROME" \
false "CONFIGURAZIONI" "Rimuovi le configurazioni non utilizzate" "$LIB_DA_RIMUOVERE configurazioni da rimuovere" \
false "LOCKED_FILES" "Elenca e rimuovi i file lock" "$LOCKED_FILES_NUM file da rimuovere" \
) || USCITA

if [ "$SCELTA" == "" ]
then
    MENU
fi

for ISTRUZIONE in $SCELTA
do
    $ISTRUZIONE
done
MENU
}


ANALISI_SISTEMA () {
(
echo "#Analisi cache apt"
echo 5
SPAZIO_APT=$(du -sh -t +500k /var/cache/apt/archives/ 2>/dev/null | awk '{print $1}')
if [[ "$SPAZIO_APT" == "" ]]
    then
    echo SPAZIO_APT="\"Pulizia non necessaria (cache < 500kB)\"" >> /tmp/analisi_sistema
else
    echo SPAZIO_APT=$(du -sh -t +500k /var/cache/apt/archives/ 2>/dev/null | awk '{print $1}') > /tmp/analisi_sistema
fi

echo "#Analisi cache miniature"
echo 10
SPAZIO_MINIATURE=$(du -sh -t +500k "$HOME"/.cache/thumbnails/ 2>/dev/null | awk '{print $1}')
if [[ "$SPAZIO_MINIATURE" == "" ]]
    then
    echo SPAZIO_MINIATURE="\"Pulizia non necessaria (cache < 500kB)\"" >> /tmp/analisi_sistema
else
    echo SPAZIO_MINIATURE=$(du -sh -t +500k "$HOME"/.cache/thumbnails/ 2>/dev/null | awk '{print $1}') >> /tmp/analisi_sistema
fi

echo "#Analisi cache Firefox"
echo 15
which firefox &> /dev/null # Controllo la presenza di Firefox
if [[ "$?" != "0" ]]
    then
    echo SPAZIO_FIREFOX_TOTALE="\"Firefox non è installato\"" >> /tmp/analisi_sistema
    echo "#Firefox non è installato!"
else
    SPAZIO_FIREFOX_TOTALE=$(du -sh -t +500k "$HOME"/.cache/mozilla/firefox/ 2>/dev/null | awk '{print $1}')
    if [[ "$SPAZIO_FIREFOX_TOTALE" == "" ]]
        then
        echo SPAZIO_FIREFOX_TOTALE="\"Pulizia non necessaria (cache < 500kB)\"" >> /tmp/analisi_sistema
        else
        echo SPAZIO_FIREFOX_TOTALE=$(du -sh -t +500k "$HOME"/.cache/mozilla/firefox/ 2>/dev/null | awk '{print $1}') >> /tmp/analisi_sistema
    fi
fi
###

echo "#Analisi cache Chrome"
echo 20
which google-chrome &> /dev/null # Controllo la presenza di Chrome
if [[ "$?" != "0" ]]
    then
    echo SPAZIO_CHROME="\"Chrome non è installato\"" >> /tmp/analisi_sistema
    echo "#Chrome non è installato!"
else
    SPAZIO_CHROME=$(du -sh -t +500k "$HOME"/.cache/google-chrome/Default/Cache/ 2> /dev/null | awk '{print $1}')
    if [[ "$SPAZIO_CHROME" == "" ]]
        then
        echo SPAZIO_CHROME="\"Pulizia non necessaria (cache < 500kB)\"" >> /tmp/analisi_sistema
        else
        echo SPAZIO_CHROME=$(du -sh -t +500k "$HOME"/.cache/google-chrome/Default/Cache/ 2> /dev/null | awk '{print $1}') >> /tmp/analisi_sistema
    fi
fi
###

echo "#Ricerca pacchetti non necessari"
echo 30
echo PACCHETTI_DA_RIMUOVERE=$(LANG=C apt-get autoremove -s | grep -o "[[:digit:]]* to remove" | awk '{print $1}') >> /tmp/analisi_sistema

echo "#Ricerca kernel da rimuovere"
echo 50
echo KERNEL_DA_RIMUOVERE=$(ls /boot/ | awk '/vmlinuz/ {gsub(/vmlinuz-/, "linux-image-"); print}'| sort -Vr | sed -e '1,2d' | wc -l) >> /tmp/analisi_sistema

echo "#Ricerca configurazioni da rimuovere"
echo 60
echo LIB_DA_RIMUOVERE=$(dpkg -l | egrep "^rc" | cut -d ' ' -f3 | wc -l) >> /tmp/analisi_sistema

echo "#Ricerca file di backup bloccati da rimuovere"
echo 90
CERCA_LOCKED_FILES
echo 100
) | zenity --progress --title="Analisi del sistema" --text="Analisi in corso" --width=400 --height=100 --auto-close || ERRORE_ZEN

source /tmp/analisi_sistema #Leggo le variabili salvate
}

#### Inizio ####
# Controllo privilegi utente
rm /tmp/pulisci_sistema_error_pw.txt 2> /dev/null
sudo -k
if [[ "$UID" -eq 0 ]]
then
    trap 'MENU' INT
    ANALISI_SISTEMA
    MENU
else
    PWD=$(zenity --password --title="Tool di pulizia del sistema (Ver. 3.3)" --cancel-label="Esci") || exit
    if [[ "$PWD" == "" ]]
    then
        $0
        exit
    fi
    echo "error_pw" > /tmp/pulisci_sistema_error_pw.txt
    clear
    echo "$PWD" | sudo -S $0
    if [[ $(grep error_pw /tmp/pulisci_sistema_error_pw.txt 2> /dev/null) ]]
    then    
        zenity --error --title="Tool di pulizia del sistema (Ver. 3.3)" --width=300 --text="La password digitata\nè errata." --ok-label="<< Torna indietro"
        $0
        exit
    fi
    rm /tmp/pulisci_sistema_error_pw.txt 2> /dev/null    
    exit
fi

fatto questo salvare il file e chiuderlo e dare i permessi di esecuzione
Codice:
sudo chmod +x /usr/bin/pulizia.sh
per crearne un lanciatore per il menu

Codice:
gksu gedit /usr/share/applications/pulizia.desktop
e incollare
Codice:
[Desktop Entry]
Version=1.6
Encoding=UTF-8
Name=Pulizia Sistema
Type=Application
Exec=/usr/bin/pulizia.sh
Terminal=false
Icon=/usr/share/icons/clean.png
Comment=Pulisce il sistema
NoDisplay=false
Categories=System;

alla voce Icon= inserire il percoso di una propria icona .png , io ne ho scaricato una da internet ( rinominata in clean.png) e copiata come si vede dal percorso in /usr/share/icons così non cè il rischio di cancellarla per sbaglio

allego immagini il lanciatore si trova nella dash (nel caso di ubuntu) e poi puo essere bloccato sulla dock e immagine di come si presenta l'interfaccia grafica.

Complimenti a Tony, di linux mind italia forum per il lavoro.

Allego il .deb archiviato in .tar.gz perchè se non si è iscritti al forum linux mind italia non si può scaricare direttamente


Allegati Anteprime
           

.gz   mind-cleaner_3.5_all.deb.tar.gz (Dimensione: 72,98 KB / Download: 2)
Personalizzare Grub


Nu se peu sciuscià e sciurbì





Cita messaggio
#2
Io da tempo uso questo script dovrebbe essere lo stesso,  il vantaggio che è già pronto all'uso,basta eseguirlo nel terminale.
Tra l'altro l'ho inserito nel menu della mia ultima xubuntuplus
Non richiedermi l'amicizia, siamo già amici  Big Grin il mio blog LinuxEasy  Tux

Cita messaggio
Grazie da:
#3
ok, visto, ma da quanto ho capito si occupa di molte altre cose, tra cui cose particolari come deborphan che come scritto nello script può essere pericoloso, e tutta un'altra serie di cose, come aggiornamenti etc..., inoltre non mi è parso di vedere la pulizia dei vecchi kernel, cosa molto utile che faceva ubuntu tweak.

Quello segnalato è proprio un sostituto della pulizia di ubuntu tweak niente di più
Personalizzare Grub


Nu se peu sciuscià e sciurbì





Cita messaggio
Grazie da:
#4
Cambiato il link alla discussione segnalata, inserito link dove è stato sviluppato maggiormente lo script
Personalizzare Grub


Nu se peu sciuscià e sciurbì





Cita messaggio
Grazie da: eu66
#5
Io con mint17 uso ubuntu-tweak regolarmente, poi cosa succederà? smetterà di funzionare o potrebbe creare problemi?
Aspettare che gli altri facciano il proprio dovere è il miglior alibi per non fare il nostro.

--Roberto Gervaso--
Cita messaggio
Grazie da:
#6
finchè sei su mint 17 non hai problemi, è basata su ubuntu 14.04 ed è compatibile, da ubuntu 16.04 e quindi su versioni di mint che si baseranno su quest'ultimo, non è installabile
Personalizzare Grub


Nu se peu sciuscià e sciurbì





Cita messaggio
Grazie da:
#7
aggiornato il primo post , ho inserito le istruzioni per creare lo script, renderlo eseguibile e lanciarlo
Personalizzare Grub


Nu se peu sciuscià e sciurbì





Cita messaggio
Grazie da: bilodiego
#8
ciao, faccio un up, perchè ho modificato il primo post, visto che l'utente Tony di linux mind italia ha creato lo script con interfaccia grafica e ho editato per le nuove istruzioni e per la creazione di un lanciatore per menu, ciao
Personalizzare Grub


Nu se peu sciuscià e sciurbì





Cita messaggio
Grazie da: eu66
#9
Ma io ho scaricato questo da internet: ubuntu-tweak_0.8.7-1~getdeb2~xenial_all.deb; e l'ho installato con GDebi. Per caso non va bene?
Ciao
Cita messaggio
Grazie da:
#10
lo puoi usare, questa discussione era nata perchè lo sviluppatore di ubuntu tweak aveva abbandonato il progetto, poi qualcuno lo reso disponibile per 16.04 ed è installabile.

comunque con lo script in questione, puoi evitare di installare un programma e fare le stesse cose
Personalizzare Grub


Nu se peu sciuscià e sciurbì





Cita messaggio
Grazie da:


Vai al forum:


Utenti che stanno guardando questa discussione: 1 Ospite(i)