Backup di un pc/server

Dopo aver analizzato perchè fare i backup e aver visto alcuni tipi di backup, passiamo alla parte più interessante, cioè COME fare un backup di un pc o di un server.

In questa mini guida andremo a vedere un caso specifico che implementeremo in due modi diversi: vogliamo fare il backup dei nostri documenti e della cartella web del sito su cui stiamo lavorando. “Dove” lo faremo non è importante perchè sia in un caso che nell’altro, ai fini pratici, indicheremo un file in un punto di mount e quindi, come sai (perchè lo sai vero???), che sia un disco fisico, un Volume Raid interno o una unità di rete è totalmente indifferente.

Cominciamo dalle basi, cioè decidiamo cosa dobbiamo salvare, quando e in che modalità.

Cosa salvare

Come anticipato vogliamo salvarci i documenti, le foto, i video e il sito web su cui stiamo lavorando.
Iniziamo quindi a prendere qualche decisione selettiva: vogliamo tutti i documenti indistintamente o solo alcuni tipi? Vogliamo anche le impostazioni dei programmi (tipo /home/utente/.chrome/) o solo alcuni? Vogliamo tutte le foto o solo alcuni tipi? Tutti i fogli di lavoro o solo alcuni? Tutto il sito web? Usiamo anche un database e quindi ci serve un backup anche del database? Ecc ecc.

Tutta la cartella /home/mioUtente/ tranne:
file compressi (gz, zip, tar)
file della posta (è in imap, quindi risiede sul server, quindi non ci interessa un backup locale)
video (o tutta la cartella Video, per esempio, oppure tutti i FORMATI video. Nel primo caso, ci fosse un file video da qualche parte nella home, verrebbe incluso nel backup e sarebbe “inutile” perchè avevamo deciso di non includere i video e inoltre i video sono già compressi all’origine, il risparmio in termini di spazio è irrisorio)
musica (è tutta musica campione che non usiamo in nessun progetto e al massimo si può scaricare nuovamente da Internet)
in generale altri file “inutili” come le preferenze del browser, i preferiti ecc.

Quando salvare

Quanto spesso modifichiamo i file e quali modifichiamo più spesso?
Questa è una discriminante molto importante perchè, ovviamente, se un certo documento lo modifichiamo una volta all’anno, è inutile farne un backup ogni volta. Se un documento lo modifichiamo ogni giorno è opportuno che venga salvato ogni giorno e magari tenuto in retain per 30 giorni (esempio banale: un database. Sì, un database lo possiamo considerare un documento o un file, non è importante che sia formato da tanti files nella cartella /var/lib/mysql/nome_database. Non in questa guida, almeno!).
In base quindi alla frequenza con cui vengono modificati i file, è opportuno fare i backup una volta al giorno, una volta a settimana, una volta al mese ecc.

Una volta al giorno, verso le 19.45 (finiamo di lavorare alle 18 e se proprio facciamo tardi, alle 19:30 siamo fuori ufficio).
Avendo solo UN pc di cui fare backup, non è necessario scaglionare gli orari. Avessimo più pc dovremmo prima vedere quanto ci mette il “primo” pc, poi impostare il secondo pc in modo che inizi il backup qualche minuto dopo che ha finito il primo pc (diciamo almeno 5 minuti ogni ora impiegata, per avere un buon margine di sicurezza) e via così.

Come salvare

Qui andiamo sul difficile. Come salvare un backup? O meglio, che formato usare? La scelta più ovvia e normalmente usata, dato che parliamo pur sempre di sistemi Unix/Linux, è un bel file Tar. Al massimo tar.gz.

Ecco, non è sempre vero che tar.gz sia la scelta migliore per i backup. In base al tipo di backup potrebbe non essere un formato adatto. Non è il massimo infatti se decidiamo di fare dei backup incrementali!

Apriamo e chiudiamo una parentesi…

Il backup incrementale, molto usato in ambienti dove i file sono tantissimi ma vengono modificati relativamente poco, sostanzialmente e semplificando un po’, consiste in una serie di backup. Il primo sarà un backup totale di tutti i file da salvare. I backup successivi invece saranno solo dei file modificati rispetto al backup precedente.
Esempio….

File1, file2, file3, file4, file5

Di questi files, a titolo di esempio, il file1 e il file4 sono modificati ogni giorno, file5 ogni due giorni, file2 ogni 3 e gli altri una volta al mese.
Avremo quindi il nostro set di backup così formato

giorno 1: BckFull (file1, file2, file3, file4, file5)
giorno 2: BckInc1 (file1, file4)
giorno 3: BckInc2 (file1, file4, file5)
giorno 4: BckInc3 (file1, file4, file2)

…. giorno 7: BckFull2 (file1, file2, file3, file4, file5)
ecc

Parentesi chiusa.

Per i backup incrementali targz o tar.gz non è quindi propriamente il formato adatto, anche se è comunque sfruttabile.
Per il nostro esempio e la nostra guida però useremo questo formato, perchè faremo una serie di backup “full” ma mirati a ciò che ci serve.

Avendo solo backup di tipo full (per semplicità della guida), il formato tar.gz è perfetto. Meglio ancora tar.bz2 e ancora meglio se per fare la compressione bz usiamo pbzip2 anzichè bzip2.

Backup automatizzato tramite crontab e comando tar

Avendo tutti gli elementi, cominciamo a costruirci la riga di comando per Tar.
Nulla di più facile, basterà usare un paio di switch di Tar

–exclude=
Ci permette di escludere file, estensioni, directory. Uno switch per esclusione. ATTENZIONE: NON mettere spazi dopo il “=”, NON mettere doppi spazi tra un exclude e l’altro.

Esempio
tar –create –file=/mnt/bck/bck.tar –exclude=/home/utente/Video/ –exclude=*.mov /home/utente/

–use-compress-program=
Ci permette di specificare che programma usare per la compressione finale.

Esempio
tar –create –file=/mnt/bck/bck.tar.bz2 –exclude=*.mov –use-compress-program=pbzip2 /home/utente/ /var/www/

A questo punto quindi prendendo spunto dalle righe di cui sopra, andiamo a creare la riga “corretta”, la inseriamo in uno script e impostiamo il crontab.

Tar ha moltissimi switch anche interessanti che però esulano dalla nostra mini guida quindi, per approfondire, ti consiglio il classico “man tar”, con un occhio di riguardo agli switch elencati più sotto nella sezione “Considerazioni finali“…buona lettura!

Backup automatizzato tramite Webmin

Beh ragazzi dai, con webmin si possono fare tantissime belle operazioni e tra queste si possono programmare i backup del file system. Non credo serva che vi spieghi qualcosa ma nel caso è facilissimo.

  • Installi webmin se non lo hai già fatto
  • Vai nella sezione “Sistema” e cerca “Backup del File System”
  • Crei un nuovo backup set e imposti le varie opzioni

Le opzioni del backup sono auto esplicative e di facile comprensione ma nel caso di dubbi c’è l’help online di webmin, quindi non sto a spiegarti nulla.

Considerazioni finali

Con gli script e con Webmin è quindi facile sia creare backup che gestirli, ma quale scegliere tra i due semplici metodi visti oggi?

Se la tua esigenza è avere un backup “pronti via” e non vuoi divertirti a creare uno script, vai di webmin: pochi click e sei pronto. Non ti resterà altro che crearti un eventuale script per fare la rotazione dei nomi per evitare che ogni giorno (o quel che è) il backup precedente venga sovrascritto…

Se invece ti piace scrivere codice, anche se relativamente semplice, allora vai con tar e le sue opzioni, soprattutto gli switch –exclude come

–exclude
–exclude-backups
–exclude-caches
ecc ecc

Buon divertimento

I commenti sono chiusi.