[Risolto] Migliorare script bash Backup
Inviato: venerdì 18 luglio 2008, 13:53
Allora... visto che mi ero stancato di scrivere lunghi comandi da terminale per fare backup (cosa che faccio molto frequentemente per ovvi motivi di sicurezza
), ho deciso di fare un bel scriptino bash.
L'ho anche commentato molto in modo che sia il più chiaro possibile. Questo però è solo la prima bozza, quindi, se potete, sareste così gentili da aiutarmi a migliorarlo??
Grazie anticipatamente.
L'ho anche commentato molto in modo che sia il più chiaro possibile. Questo però è solo la prima bozza, quindi, se potete, sareste così gentili da aiutarmi a migliorarlo??
Grazie anticipatamente.
Codice: Seleziona tutto
#!/bin/bash
# Questa frase di benvenuto chiede se si vuole creare o recuperare un archivio.
echo -n "Vuoi creare o recuperare un archivio? (c/r) "
# Alla risposta, c o r, viene assegnata la variabile cr.
read cr
# Se questa variabile, quindi quello che hai risposto, corrisponde a c...
if [ $cr = c ]
then
# Si attiva questa parte dello script.
# Innanzitutto qusta frase avverte che eliminerà un eventuale file backup.tgz
# presente in / in modo da far spazio al futuro backup.
echo "Adesso verrà eliminato un eventuale file backup.tgz che si trova in / per poterlo sostituire con quello del backup"
# Quindi ci spostiamo in /
cd /
# ed eliminamo il presunto file.
sudo rm -rf /backup.tgz
# Quest'altra frase ci dice che il processo sta per iniziare.
echo "Adesso inizierà il processo di backup!"
# Ed ecco il vero comando che eseguirà il backup.
sudo tar cvpzf backup.tgz --exclude=/proc --exclude=t+found --exclude /var/spool --exclude /var/log --exclude=/backup.tgz --exclude=/mnt --exclude=/sys /
# Al termine, veniamio avvertiti che il backup è finito e non dobbiamo preoccuparci
# se escono messaggi come tar: uscita per errore ritardata dall'errore precedente.
echo "Il processo di backup è finito, puoi anche evitare di preoccuparti per messaggi di errori come: tar: uscita per errore ritardata dall'errore precedente, considerali semplicemente dei warning."
# Adesso, per comodità, questa frase ci dice che il file contenente
# il backup verrà trasferito sulla Scriviania.
echo "Adesso il file di backup varrà spostato sulla Scrivania"
# Ed ecco che ciò viene fatto.
sudo mv /backup.tgz /home/nicola/Scrivania/
# Adesso veramente è tutto finito, e questa frase lo dimostra.
echo "Tutto è finito, il file contenente il backup si trova sulla Scrivania"
# Ora non resta che chiudere lo script
exit 0
# Se invece di aver scritto all'inizio c, avessimo scritto r...
elif [ $cr = r ]
then
# ... questa frase ci chiede dove si trova il file che contiene il backup,
echo -n "Scrivi qui il percorso del file contenente il backup "
# e a quello che scriviamo viene assegnata la variabile per (sta per percorso).
read per
# Ora veniamo avvertiti che sta iniziando il recupero,
echo "Adesso inizierà il processo di recupero!"
# ed ecco che inizia.
sudo tar xvpfz $per -C /
# Queste due frasi ci dicono che il recupero è completato e che non
# dobbiamo preoccuparci se visualizziamo messaggi di errore come,
# tar: uscita per errore ritardata dall'errore precedente.
echo "Tutto è finito, Ubuntu è tornato come prima!!"
echo "Aspetta, non allarmarti! Se visualizzi messaggi di errore come, tar: uscita per errore ritardata dall'errore precedente, considerali come dei warning, cioè fai finta che non esistono."
# Non resta che chiudere lo script.
exit 0
# Lo script potrebbe finire qui, ma poniamo il caso che invece di c o r,
# avessimo scritto qualcos'altro, cosa sarebbe successo? Che lo script si
# sarebbe chiuso senza dirci niente, ed ecco che entra in gioco else.
else
# Questa frase ci dice cosa abbiamo scritto e ci avverte che se vogliamo
# ottenere qualche risultato, dobbiamo rispondere con c o r.
echo "Hai risposto con $cr!! Devi rispondere con c o r, a seconda se vuoi creare o recuperare un backup!!"
# Lo script, quindi si chiude.
exit 0
# Ora non ci resta che mettere fi per chiudere if, elif e else.
fi
# E lo script è veramente finito!
exit 0