Creare i backup di sistema con Linux [parte 1]
Luca Longo | 2 gennaio 2010Una delle problematiche che affligge di più chi gestisce un server (anche solo casalingo), è senza ombra di dubbio il backup e la sua gestione. Non effettuare un backup oppure non verificarne la sua integrità, può senza dubbio essere letale in caso di malfunzionamento del sistema. Sostanzialmente un backup ben fatto e ben pianificato dovrebbe annullare o quanto meno tamponare i malfunzionamenti e permettere al gestore di riportare tutto alla normalitàin tempi brevi e con il minimo “dolore†per chi usufruisce del servizio offerto.
Tuttavia, prima di pianificare un backup, è necessario domandarsi quali siano realmente i dati necessari da inserire in un backup. Grosso modo, le cose fondamentali da salvare sono quelle che analizzeremo qui di seguito.
Configurazioni del server
Solo salvando queste configurazioni saràpossibile ripristinare un servizio. Ad esempio, se sul nostro server gira un server di posta ed un server web, non possiamo ignorare il salvataggio delle loro configurazioni.
I dati degli utenti
Come ogni sistema operativo che si rispetti, anche in Linux ogni utente ha il suo spazio (solitamente in /home/nome_utente). Potrebbe essere necessario (ma non fondamentale… dipende dai casi!) salvare queste directory per permettere ai vostri utenti il recupero dei dati salvati. Questi però possono essere anche presentati in forma diversa. Se avete degli utenti di posta, dovrete pianificare il salvataggio della loro Mailbox, se avete dei siti internet dovrete salvare la root di ogni sito, e così via.
Tuttavia, sappiamo benissimo che lo spazio su un disco di backup non è infinito e, a meno che non abbiate a disposizione budget faraonici, dovreste cercare di selezionare con parsimonia tutto: questo anche in virtù del fatto che più dati andremo a salvare e maggiore saràil tempo che ci impiegheremo per il recupero. Tra i files che possono essere ignorati dal backup, sicuramente abbiamo i binari (eseguibili): questi possiamo tranquillamente installarli nuovamente.
Se è vero che ripristinare un backup occupa del tempo, è anche vero che effettuarlo, di volta in volta, è anche tempo occupato (ma non perso!!!). Esistono diverse forme di backup, ma tra le più usate, sicuramente troviamo il backup completo e il backup incrementale.
Proviamo ora a simulare la creazione dei backup, immaginando che:
- il disco origine sia /dev/hda1
- il disco di backup sia /dev/sda1
Il backup completo
Il backup completo, ogni qual volta viene eseguito, effettua un nuovo backup partendo da zero. Il suo funzionamento è uno tra i più semplici, classici e funzionali. Tuttavia, effettuare un backup completo ha delle gravi incidenze sul tempo impiegato, quindi conviene pianificarlo una volta la settimana.
Per procedere con la realizzazione di un backup completo, dobbiamo prima sapere quali sono i punti di mount del nostro sistema. Semplice, logghiamoci sul sistema con l’utente root e lanciamo il comando “mountâ€Â:
# mount
proc on /proc type proc (rw)
/dev/hda1 on /home type ext3 (rw,noatime,quota)
/dev/sda1 on /mnt/backup type ext3 (rw,noatime)
Bene, ora sappiamo che la partizione hda1 è montata in /home (proprio la directory che vogliamo salvare noi!!!) e la partizione di backup sda1 è montata in /mnt/backup. Procediamo con il backup:
# dump –0 –u –f /mnt/backup/full_backup /dev/hda1
Eseguendo questo comando, lanceremo un backup di livello 0 (ossia completo) sul file full_backup nel punto di mount /mnt/backup. Infine, aggiorna il file /var/lib/dumpdates al termine del backup.
Nonostante questa sia una procedura fantastica (e neanche poi così lenta), potremmo non avere a disposizione un disco di backup collegato alla macchina. Ed ecco che ci viene in aiuto SSH. Grazie al protocollo SSH, potremo trasferire a run-time il backup: facile, semplice e sicuro. Per fare tutto questo, modifichiamo il comando sopra, come segue:
# dump –b 1024 –0 –u –f - /dev/hda1 | ssh –c arcfour nomeutente@backup.server.com \
         dd of=/home/backup/full_backup bs=20M
Per quanto riguarda il comando dump, non varia molto se non “-f –“ che sostanzialmente indica al programma di non inviare l’output su file bensì di inviarlo su stdout, lo standard output. Per quanto riguarda l’aggiunta del comando SSH, sostanzialmente viene utilizzata una codifica per SSH molto veloce (arcfour) e successivamente viene indicato il nome utente con cui loggarsi e l’host (potete inserire anche un indirizzo IP) su cui connettersi. Una volta connessi, SSH eseguiràil comando “dd of…..†salvando i dati del backup sul file /home/backup/full_backup (sulla macchina remota!!) utilizzando blocchi da 20MB.
Al termine del backup, è possibile anche comprimerlo (per risparmiare spazio sul disco) tramite gzip o bunzip2.
Il backup incrementale
Ciò che differenzia un backup incrementale da uno completo è che, il primo, effettua il backup di tutto (la prima volta) e di ciò che viene modificato (le volte successive). Nel proseguire con la descrizione di questo sistema di backup, dò per scontato che abbiate letto la parte riguardante il backup completo… se non l’avete fatto, è inutile proseguire: potreste perdere il significato di alcuni comandi.
Per eseguire il primo backup incrementale, possiamo lanciare questo comando:
# dump –1 –u –f /mnt/backup/full_backup /dev/hda1
Anche in questo caso, il backup verràfatto sul nostro disco di ripristino (/dev/sda1). In questo caso potrete notare il cambiamento di –0 in –1: questo significa che siamo al livello 1 del backup incrementale. Per eseguire il backup incrementale di livello 2:
# dump –2 –u –f /mnt/backup/full_backup /dev/hda1
E così via… man mano che andrete avanti con i backup incrementali.
APPUNTI RIFLESSIVI
Se avete intenzione di pianificare un backup automatico tramite SSH, avrete la necessitàdi utilizzare uno schema di autenticazione a chiave, così potrete fare il backup senza bisogno di inserire la password dell’utente ssh ogni volta.
Per questa prima parte abbiamo finito. Nella seconda parte cercherò di spiegare come effettuare il restore dei dati backupati grazie a questo howto.
Hai trovato interessante questo articolo?
Articoli suggeriti:


