davethecipo
Utente Èlite
- Messaggi
- 3,332
- Reazioni
- 1,163
- Punteggio
- 138
Ciao gente,
quando scarichiamo un file ISO della nostra distribuzione preferita è sempre bene controllare il checksum!
Controllarlo manualmente non è il massimo, dunque ho scritto uno script in bash che tramite zenity mostra delle finestre per scegliere il file, il tipo di checksum e confrontarlo con quello ufficiale.
Dipendenze:
Zenity è disponibile nei repo di tutte le distro famose.
Il codice:
Salvate il testo in un file di testo (senza estensione per comodità dopo) e rendetelo eseguibile (da interfaccia grafica: click destro sul file, proprietà, permessi).
Io l'ho nominato verifychecksum e l'ho messo dentro una cartella opt nella home
Se volete accedere allo script dalla shell senza dover digitare il percorso assoluto, aggiungete la cartella che lo contiene alla variabile d'ambiente PATH dentro il file ~/.bashrc
Adesso potete chiamare il comando verifychecksum da qualunque terminale. Potete anche aggiungere un lanciatore "grafico", per esempio da KDE click destro su avviatore applicazioni, modifica applicazioni, nuova voce.





quando scarichiamo un file ISO della nostra distribuzione preferita è sempre bene controllare il checksum!
Controllarlo manualmente non è il massimo, dunque ho scritto uno script in bash che tramite zenity mostra delle finestre per scegliere il file, il tipo di checksum e confrontarlo con quello ufficiale.
Dipendenze:
- bash
- zenity
Zenity è disponibile nei repo di tutte le distro famose.
Il codice:
Codice:
#!/bin/bash
function check_exit_value {
exit_value=$?
# se exit_value=1, utente ha premuto annulla, =5 se il timeout è scaduto, =0 ok
# https://help.gnome.org/users/zenity/stable/usage.html.en
if [ $exit_value != 0 ]; then
exit 1
fi
}
homefolder=~
title="Controllo del checksum"
input_file=$(zenity --title="Scegli file da controllare" --file-selection --filename="$homefolder/")
check_exit_value
expected_checksum=$(zenity --entry --title="$title" --text="Checksum corretto" --entry-text="")
check_exit_value
sumtype=$(zenity --title="$title" --text="Checksum type" --list --radiolist --column "Scegli" --column "Tipo" TRUE MD5 FALSE SHA1 FALSE SHA256)
check_exit_value
case "$sumtype" in
MD5)
command="md5sum"
;;
SHA1)
command="sha1sum"
;;
SHA256)
command="sha256sum"
;;
esac
calculated_checksum="$($command $input_file | awk '{print $1}')"
if [ $calculated_checksum == $expected_checksum ]; then
zenity --info --title "Successo!" --text="I checksum corrispondono."
else
zenity --error --title "BSoD!" --text="I checksum non corrispondono!"
fi
Salvate il testo in un file di testo (senza estensione per comodità dopo) e rendetelo eseguibile (da interfaccia grafica: click destro sul file, proprietà, permessi).
Io l'ho nominato verifychecksum e l'ho messo dentro una cartella opt nella home
Codice:
mkdir ~/opt
nano ~/opt/verifychecksum
# incollare il codice e salvare
chmod u+x ~/opt/verifychecksum # rende eseguibile per l'utente
Se volete accedere allo script dalla shell senza dover digitare il percorso assoluto, aggiungete la cartella che lo contiene alla variabile d'ambiente PATH dentro il file ~/.bashrc
Codice:
nano ~/.bashrc
# si apre il file, aggiungete una riga tipo questa
export PATH=/home/davide/opt:$PATH
# salvate e uscite
source ~/.bashrc # carica le modifiche
Adesso potete chiamare il comando verifychecksum da qualunque terminale. Potete anche aggiungere un lanciatore "grafico", per esempio da KDE click destro su avviatore applicazioni, modifica applicazioni, nuova voce.




