lug
31
2007

Backup incrementale in linux

closeQuesto articolo è stato pubblicato 4 anni 6 mesi 11 giorni giorni fa quindi alcuni contenuti o informazioni presenti in esso potrebbero non essere più validi. Questo sito non è responsabile per eventuali errori causati da questo problema.

Io e RedSend abbiamo, per un certo periodo, cercato il modo migliore di gestire il backup sulle nostre distro. Abbiamo cercato script, programmi, guide ecc. ma abbastanza invano. Avendo, qualche tempo fa, raggiunto un ottimo risultato con uno scriptino (di poche righe) personalizzato, ho pensato che sarebbe potuto essere d’aiuto per qualche altro pinguino con lo stesso problema.

Innanzitutto un piccolo accenno al backup incrementale:
il backup incrementale permette di aggiornare ogni volta solo i file che sono stati modificati dall’ultimo backup. Questo permette di avere un tempo molto basso per la copia nelle volte successive alla prima. Mi faccio capire con un esempio:

Abbiamo 1000 file nominati da 1 a 1000.
La prima volta che si lancia lo script vengono copiati tutti e 1000, quindi se ci volesse un tempo N per ogni file (se la dimensione fosse la stessa) avremmo un tempo totale di N*1000.
Se dopo 5 giorni abbiamo modificato 5 file, quando lo script verrà lanciato saranno copiati solo i 5 modificati (non ha senso ricopiare file che sono identici) e il tempo totale sarà quindi N*5 con un notevole risparmio!

Dopo questa piccola nota esplicativa, ecco il codice:

rsync –progress –stats -avx –exclude=”CARTELLA_DA_ESCLUDERE” CARTELLA_DA_COPIARE_1 CARTELLA_DA_COPIARE_2 CARTELLA_DESTINAZIONE

Tutto qui?! tutto qui!

Vi spiego un po’ in dettaglio il tutto:

  • rsync è il nome del comando che utilizzeremo per il backup (per maggiorni info…vedete man rsync…ne avrete per molto : );
  • –progress indica che vogliamo vedere il progresso durante la copia;
  • –stats indica che vogliamo delle statistiche riepilogative sulla copia;
  • a indica la modalità archivio (cioè ricorsiva, con conservazione dei permessi, ecc);
  • v indica il verbose: vedere l’avanzamento;
  • x blocca la possibilità di copiare file system diversi da quello corrente (evitare copie ricorsive, di penne, hd esterni, ecc);
  • –exlude pemette di eliminare alcune cartelle dalla copia (utile per cartelle temporanee), può essere ripetuto più volte;
  • CARTELLA_DA_COPIARE_1 è la cartella di partenza di cui fare il backup, anche questa può essere ripetuta più volte;
  • CARTELLA_DESTINAZIONE è la cartella dove mettere il backup (ad es. hd esterno), da notare che può anche essere usato un protocollo remoto (ssh ad esempio) per copiare su pc diversi da quello attuale.

Vi faccio un esempio pratico giusto per chi proprio non ha capito :)

rsync –progress –stats -avx –exclude=”.q3a” –exclude=”.beagle” –exclude=”.local/share/Trash” /opt/lampp /home/raffaele /media/disk/backup

Questo è proprio il mio codice, come vedete copio lampp e raffaele in un disco esterno escludendo alcune cartelle (q3a, beagle, cestino) che sono inutili.

Spero di essere stato chiaro. Per ogni dubbio commentate pure.

11 Comments + Add Comment

  • ragazzi lo script è servito… soprattutto a me ;) !! comunque per le opzioni estese, tipo “exlude”, “progress”, io ho dovuto mettere un doppio trattino e non un trattino singolo come scritto nell’esempio

  • ragazzi, ho un problema! non mi esclude le cartelle messe nell’opzione

  • innanzitutto ci vuole un trattino, non credo che cambi da una distro ad un’altra, visto che è un comando bash.
    probabilmente è quello il problema allora.

    prova senza e fammi sapere.
    a me lo script nell’esempio funziona e esclude le cartelle scelte.

    postami il tuo script e fammi vedere se ci sono errori

  • rsync –progress –stats -avx -exclude=”/home/bombo/.aMule” -exclude=”/home/ bombo/documents/multimedia/films” -exclude=”/home/bombo/documents/multimedia /music” /home/bombo /media/EXT/backup

  • siccome sei già in /home/bombo quando parti con la copia, prova a escludere le cartelle partendo dal .

    ad esempio:

    -exclude=”.aMule” -exlude=”documents/multimedia/films” ecc…

    prova e fammi sapere…se non sei già partito :)

  • Bombo i trattini sono due, di solito nei parametri quelli che sono formati da più di una lettera sono preceduti da due trattini, quelli con una lettera sola sono preceduti da un solo trattino. Comunque per le cartelle che non ti esculude prova come ha detto raff e aggiungi anche lo slash finale.
    Facci sapere…

  • ragazzi a quanto pare dovevo partire come ha detto raff considerando che già mi trovavo nella cartella bombo! apposto, finalmente sto più tranquillo con il mio back quotidiano! :)

    ragazzi oggi parto… vi voglio bene, un bacione grosso

  • buone vacanze bello! e…buon backup :P

    (quotidiano addirittura?!?!?!)

  • Buone vacanze, ma ti fai come un maiale.Già lo so!!!
    Cmq ottimo lo script, abbiamo risolto uno dei problemi più grandi che ci attanagliavano.Bravi ragazzi continuate così.

  • [...] è che diversamente dal semplice mirroring o dalle utility di backup, come rsync (vedi “Backup incrementale in linux” per esempio) quest’applicazione può gestire aggiornamenti ad entrambi le repliche: [...]

  • [...] articoli su come fare backup usando i comandi della shell, io stesso scrissi un articolo su rsync qualche tempo [...]

Leave a comment

*