Concludiamo questa serie di articoli fornendo il codice per il ripristino e qualche suggerimento che renda la nostra implementazione di un sistema di backup pratica e portabile.
Iniziamo con la procedura di ripristino.
Dato il nome del file di archivio, iniziamo ad espanderlo (con utenza amministrativa): questo collocherà i files dei dischi virtuali nel percorso originale (ripristiniamo il percorso assoluto collocando la radice delle operazioni di tar con l’opzione -C) ed il file XML di definizione della macchina virtuale in /tmp (per costruzione del backup).
tar xz -C / -f "$1"
Il nome del file di descrizione è il nome della macchina virtuale (ancora per costruzione del backup) ed è parte del nome dell’archivio: quindi estraiamo da questo il nome della macchina virtuale che stiamo ripristinando e con questo ricaviamo il nome del file di descrizione:
fname="$(basename $1)" vmname=${fname%%.tar.gz}
Quindi se confermiamo l’esistenza del file di descrizione possiamo importare la macchina inviando l’XML allo stdout della console amministrativa di libvirt (virsh):
if [ -f /tmp/${fname}.xml ] then echo define /tmp/${name%%.tar.gz}.xml | virsh fi
Questo rende nuovamente disponibile la macchina virtuale.
Come vi avevo promesso, ora qualche suggerimento per rendere il tutto un prodotto.
Dapprima racchiudiamo in funzioni la procedura di salvataggio e ripristino: chiamiamole backup() e restore().
Il codice presentato in queste puntate non necessita di modifiche, ed i parametri che dovevano essere per un ipotetico comando saranno ora per le funzioni: nome di macchina per backup(), nome file archivio per restore().
A questo punto creiamo un file per la nostra applicazione; diciamo libvirt-utils.sh.
Poniamo in questo le nostre funzioni e aggiungiamo il seguente codice:
case $(basename $0) in virbackup) backup "$1" ;; virestore) restore "$1" ;; *) [ ! -f /sbin/virbackup ] && cp $0 /sbin/virbackup [ ! -f /sbin/virestore ] && ln /sbin/virbackup /sbin/virestore ;; esac
Lanciate almeno una volta lo script senza parametri come amministratore: avrete installati due nuovi programmi: virbackup e virestore ! Lo script originale potrà anche essere rimosso o meglio collocato nella vostra “cassetta degli attrezzi”.
Buona virtualizzazione e buon salvataggio e ripristino a tutti !