Cose da nerd #10

Torno a postare sulla mia rubrica delle nerdoria dopo molto tempo. Ieri sera su irc il buon Mte90 mi mostra (aka stava facendo lo sborone) un suo script creato per aiutarlo nella operazioni post-installazione di una distro. In pratica ha raccolto tutto quello che fa dopo aver installato una nuova distribuzione dentro uno script, automatizzando il processo 😀

L’idea mi è piaciuta molto cosi ho deciso di creare un nuovo script sull’idea di quello di Mte90 che si adattasse alle mie esigenze, lo script non è nulla di speciale, però volevo condividerlo lo stesso con voi 😀

ecco un anteprima dello script 😀

Ecco qui il link su pastebin.

Ovviamente accetto suggerimenti e critiche di ogni genere, sono sempre utili per correggere errori o per migliorare lo script 🙂

Update: Sotto consiglio di un commentatore di nome andrea e grazie ai ragazzi di friendfeed, ho aggiunto qualche funzione in più nel mio script, in pratica adesso per ogni azione che farà vi chiederà se volete eseguirà, cosi non ci sarà bisogno di andare a commentare o decommentare il codice dello script ogni volta (a parte se si vuole cambiare qualche cosa come il DE da installare o se si vuole commentare i comandi per debian e decommentare quelli per arch). Quindi ecco qui la relese 0.4 del mio script 😀

Update#2: Ho aggiunto al mio script i comandi per installare font ed icone extra, quindi ecco a voi la release 0.5.1 del mio script 😀

Update#3: Ho aggiunto negli echo delle domande dei riquadri del genere [Si/No] cosi come consigliato da Dino nei commenti e in oltre ho corretto un percorso sbagliato e un errore di battitura, quindi ecco qui la versione 0.5.2 del mio script 😀

Update#4: Ho dato una rinfrescatina allo script aggiornando alcuni comandi e aggiungendo alcuni commenti utili, ecco a voi la versione 0.5.3 del mio script 😀

PS: se vi interessa la chat room deve di solito bazzico si trova sui server freenode, stanza DeliriNotturni

19 pensieri riguardo “Cose da nerd #10”

  1. negli script in bash ogni comando deve essere controllato tramite valore di ritorno per evitare che lo script continui e si porti dietro vari errori. i nomi delle directory da cui fare il restore vanno messi in una variabile globale in testa allo script per permettere successive modifiche. La parola chiave degli script in bash è “generico”. Deve funziona bene e da solo, deve prevedere ogni tipo di self-control e non deve essere legato a nessun tipo di nome speciale nel codice, ma solo tramite variabili settate ad inizio script. Queste sono le basi minime per poterlo chiamare script: in caso contrario è solo un elenco di comandi.

    1. grazie per le precisazioni non sapevo queste cose, e dimmi come potrei rendere il mio “elenco di comandi” un vero scrit, fammi vedere come lo si potrebbe modificare.

      1. prova a mettere degli if di controllo per l’esistenza di file e directory, tipo:
        if [ -f nomefile ];
        then

        else

        fi
        Con [ -d directory] per esempio verifichi che sia effettivamente una directory, ecc.

        Poi in testa al file inserisci i valori da riusare nello script tramite $variabile. Per esempio sarebbe opportuno inserirci il nome della cartella di backup, qualora volessi cambiarla piu avanti. Magari le varie cartelle di cui fare il backup le metti in un array da richiamare in un ciclo, cosi nel caso in cui volessi aggiungere cartelle, non dovresti toccare codice.

        Per i programmi tipo cp, wget, sudo, ecc, puoi richiamare il valore che ti ritornano tramite la variabile $? , per esempio:

        cp
        if [ “$?” -eq 0 ]; then
        echo “Copia di $cartella effettuata con successo”
        else
        echo “Errore nella copia”
        exit 1
        fi

        Sembrano tante accortezze, magari rompipalle, ma quando le inizi ad inserire in ogni script la cosa diventerà immediata e piacevole, sicuramente meglio della gestione delle eccezioni nei linguaggi di alto livello (che spesso fa cacare). Se recuperi qualche vecchio script in bash fatto da altri, magari che fa appunto il backup, impari molte piu cose che dal manuale. Nel manuale ti dicono la tecnica, non certo la buona norma.

        happy coding for the lulz.

    1. ho aggiunto delle domanda in mezzo allo script, appena posso implemento anche il controllo sui file e sulle cartelle 😀 (trovi il link per lo script aggiornato nel post)

  2. Mi sento chiamato in causa 😛 quello linkato da Picchio è una bozza in corso d’opera non finita e ancora non testata.
    non ho messo il controllo delle cartelle perchè nel mio script ho scaricato ogni cartella e visto quali contiene.
    Và a finire che devo spolverare il mio blog su wordpress XD

  3. Da precisino ti segnalo un piccolo errore nello script: yaour invece di yaourt nella riga 25. Comunque grande idea mi hai fatto venire voglia anche a me! La prima bash la feci su Ubuntu per automatizzare l’update e upgrade senza programmi aggiuntivi:

    #!/bin/bash

    sudo apt-get update -y

    sudo apt-get upgrade -y

    sudo apt-get autoclean -y

    sudo apt-get autoremove -y

    exit

    In seguito mi resi conto che l’autoremove automatico poteva darmi più danni che altro e che è comunque sempre meglio lavorare sulla riga di comando “live”. Ottimo strumento di recupero dati!

    1. O si anche io tempo fa realizzai una cosa simile lo chiamai updateautomagico, gli feci anche in interfaccia grafica 😀 Eccolo qui.

      PS: grazie per la segnalazione del “bug” xD

  4. Con tutte le volte che provo nuove distro o installo distro ad amici e parenti, oramai son più veloce di uno script 😛

    1. resta cmq un operazione molto noiosa configurare e importare i propri dati, molto meglio usare uno script apposito che mentre tu sorseggi una birra fa tutto da solo 😀 (tu al massimo devi solo mettere si o no)

  5. scusa ma questo script è sconclusionato, e poi è realizzato per la tua macchina, se qualcuno lo scaricasse e lo lanciasse, questo non farebbe nulla.
    cioè, perché postare uno script che agli altri utenti non serve e/o potrebbe arrecare danno?
    non puoi postare uno script con /home/picchio, segui il consiglio datoti sopra, usa delle variabili, ed usa zenity per far scegliere all’utente la cartella da backappare e quella di backup
    evita magari di annidare troppi if elif, usa piuttosto delle funzioni.
    poi qui:

    echo "continuare la procedura per il backup dei dati?"
     
        read risposta

    ma l’utente non sa che deve scrivere si per continuare, magari se glielo suggerisci è meglio 😉
    tipo:
    echo “continuare la procedura per il backup dei dati?[Si/No]”
    ed n questo caso ti verrebbe automatico da usare
    case risposta in
    si/SI/Si) fai questo
    si/NO/No) fai altro
    esac
    ovviamente fai questo o fai altro saranno funzioni

    1. lo script l’ho postato per pura mania di protagonismo xD Cmq chiunque po giovare del mio script rinominando i per corsi della home dir e cambiando ció che ci serve. Per quanto riguarda le risposte be credo proprio che aggiungerò nell’echo il (SI/NO) perchè è vero non tutti possono arrivarci senza guardare il codice dello script. Passando a zenity be penso che non sia necessario utilizzarlo perché basta un semplice editor di testi e si sistemano le dir per le proprie esigenze.

Lascia un commento