Backup incrementali con il tar
Written by Mottola Michele - Italy - Reggio Emilia   
Thursday, 27 May 2010 08:00
Last Updated on Tuesday, 27 September 2011 18:31
AddThis Social Bookmark Button

Spesso e volentieri chi ha a che fare con sistemi informatici e manipola software si dimentica che prima ancora di iniziare occorre avere un buon sistema di backup. Avventurarsi nella realizzazione o nell'utilizzo di software dove si impiega tanto tempo senza avere nessun sistema di backup vuol dire partire con il piede sbagliato, si rischia di stare li tutti i giorni con la preoccupazione che non ti succeda mai niente.

In particolar modo avere un sito web dove avvengono molte variazioni nel tempo e non avere un buon sistema di backup automatico presenta gli stessi problemi appena detti. E' vero molti servizi di hosting forniscono sistemi di backup ma il più delle volte o non li si utilizza per niente oppure sono manuali e quindi vengono dimenticati.

Fare il backup di un sito web o più in generale di un'applicazione web spesso vuol dire non solo fare il backup delle directory ma anche dover fare il backup del database.

Per quanto riguarda il backup di directory ci sono numerosi strumenti, spesso con architettura client-server, più o meno complicati che svolgono questa funzione. Spesso questi strumenti non sono altro che degli script che utlizzano strumenti fondamentali come il dump o il tar.

Alle volte utilizzare uno strumento client server per fare il backup può essere eccessivo per le proprie esigenze, ma basterebbe realizzarsi uno script ritagliato su misura.

Il tar, se analizzato a fondo, permette la creazione di script anche complessi e anche se è un "vecchio" strumento è tutt'ora molto valido.

Una delle funzionalità richieste ad un sistema di backup è quella di poter fare backup incrementali in modo da alleggerire il carico di lavoro. Difatti il backup se fatto su volumi di dati consistenti richiede molto utilizzo di cpu, nonchè di spazio fisico. Per questa ragione si ricorre a backup incrementali in cui si crea un primo archivio e i giorni successivi, partendo da questo, si costruiscono archivi in cui si memorizzano soltanto i file che hanno subito modifiche o che sono stati aggiunti o cancellati.

Il tar permette la gestione di backup incrementali.

Per creare backup incrementali, il tar ricorre ad un file di snapshot nel quale memorizza le informazioni necessarie. In pratica in questo file tiene traccia di tutti i file backuppati. In questo modo, la prossima volta che si fanno i backup, il tar leggerà questo file, analizzerà la directory e quindi potrà capire quali file hanno subito variazioni o sono stati aggiunti o rimossi.

Supponiamo abbia una directory ~/dati che voglia backuppare con tutte le sue sottodirectory contenute, allora faccio:

tar cvf ./backup.0.tar -g dati.snar ~/dati

ovvero creo un file di backup di nome backup.0.tar della dir ~/dati e con file di snapshot dati.snar

Bene, la volta successiva che vorrò rifare il backup dovrò dire al tar di rileggere quel file di snapshot


tar cvf ./backup.1.tar -g dati.snar ~/dati

Dunque in questo modo creerò tanti file di backup ognuno contenenti le modifiche rispetto al backup precedente.

Il ripristino è altrettanto semplice:


tar xvf ./backup.0.tar -g /dev/null
tar xvf ./backup.1.tar -g /dev/null


E' da notare che in questa maniera vengono creati tanti file di backup e ogni volta che voglio ripristinare dovrò ripristinarli tutti. Per cui se ho creato n file di backup dovrò fare il ripristino di tutti gli n file.

Questo è dovuto al fatto che ogni volta che faccio un nuovo backup il tar va ad utilizzare l'ultimo file di snapshot, dove ci sono le informazioni relative all'ultima volta in cui è stato fatto il backup.

Ma potrei dire al tar, tramite uno script adeguato, di andare a leggere non l'ultimo file di snapshot, ma il primo file di snapshot generato quando è stato fatto il primo backup.

La conseguenza è che avrei un sistema di backup con 2 soli livelli e quindi nel ripristino dovrò soltanto ripristinare due file di backup.

Questa soluzione a due livelli è più comoda per un ripristino più facile, ma richiede uno script leggermente più complicato e soprattutto il secondo livello, man mano che si fanno i backup aumenta di dimensione perchè è fatto sempre rispetto al primo backup. La conseguenza è che se si sta in locale probabilmente incide poco, ma se si fanno backup di rete il consumo di banda aumenta.


 

Comments  

 
#2 Mottola Michele - Italy - Reggio Emilia 2014-11-13 16:15
thank you
 
 
#1 cheap web hosting 2014-11-13 16:09
That is very interesting, You're a very skilled blogger.
I've joined your feed and stay up for in the hunt
for more of your wonderful post. Additionally, I've shared your
website in my social networks
 

Add comment

Security code
Refresh