Backup incrementale con Tar è il titolo di questa guida, ma il sottotitolo potrebbe essere: come dormire sonni tranquilli facendo un backup incrementale, sicuro e veloce. Ci sono diversi strumenti con cui fare un backup dei propri dati, sia con programmi grafici, come luckyBackup, deja-dup o systemback-1.9.3, sia con strumenti da linea di comando, già presenti di default in Gnu-Linux. Tempo fa avevo gia fatto una guida sull’utilizzo di rsync come strumento di backup, invece questa guida mostrerà come ottenere un backup incrementale usando Tar.
Creazione di cartelle, sotto cartelle e files per testare il backup:
$ mkdir -p big-data/{backup,restore}
$ cd big-data/backup/
$ mkdir {1..4}
$ man ls > file1
$ man wc > file2
$ man tar > file3
$ man mv > file4
$ ls
output ls:
edmond@debianbox:~/Desktop/big-data/backup$ ls
1 2 3 4 file1 file2 file3 file4
$ cd ..
$ ls
output ls:
edmond@debianbox:~/Desktop/big-data$ ls
backup restore
Backup generale:
$ tar -czvg snapshot-file -f backup.tar.gz backup
output:
edmond@debianbox:~/Desktop/big-data$ tar -czvg snapshot-file -f backup.tar.gz backup
tar: backup: Directory is new
tar: backup/1: Directory is new
tar: backup/2: Directory is new
tar: backup/3: Directory is new
tar: backup/4: Directory is new
backup/
backup/1/
backup/2/
backup/3/
backup/4/
backup/file1
backup/file2
backup/file3
backup/file4
output ls:
edmond@debianbox:~/Desktop/big-data$ ls
backup backup.tar.gz restore snapshot-file
come si può vedere tutte le cartelle ed i files sono stati clonati nell’ archivio backup.tar.gz, mentre il file chiamato snapshot-file, si occuperà di tenere traccia dei cambiamenti. A questo punto il passo successivo sarà quello di andare ad inserire nella cartella di backup originale, altre cartelle e files così da testare il backup incrementale.
$ mkdir backup/{5..8}
$ man sed > backup/file5
$ ls backup/
output:
edmond@debianbox:~/Desktop/big-data$ ls backup/
1 2 3 4 5 6 7 8 file1 file2 file3 file4 file5
per ottenere un backup incrementale il comando da eseguire è come quello sopra, l’unica differenza sarà quella di personalizzare il nome del backup, in base alla data oppure con dei numeri:
$ tar -czvg snapshot-file -f 1-backup.tar.gz backup
output:
edmond@debianbox:~/Desktop/big-data$ tar -czvg snapshot-file -f 1-backup.tar.gz backup
tar: backup/5: Directory is new
tar: backup/6: Directory is new
tar: backup/7: Directory is new
tar: backup/8: Directory is new
backup/
backup/1/
backup/2/
backup/3/
backup/4/
backup/5/
backup/6/
backup/7/
backup/8/
backup/file5
per vedere le differenze dei due backup:
$ tar -tvf backup.tar.gz
$ tar -tvf 1-backup.tar.gz
output:
edmond@debianbox:~/Desktop/big-data$ tar -tvf backup.tar.gz drwxr-xr-x edmond/edmond 41 2019-02-28 20:31 backup/ drwxr-xr-x edmond/edmond 1 2019-02-28 20:30 backup/1/ drwxr-xr-x edmond/edmond 1 2019-02-28 20:30 backup/2/ drwxr-xr-x edmond/edmond 1 2019-02-28 20:30 backup/3/ drwxr-xr-x edmond/edmond 1 2019-02-28 20:30 backup/4/ -rw-r--r-- edmond/edmond 7823 2019-02-28 20:30 backup/file1 -rw-r--r-- edmond/edmond 2026 2019-02-28 20:31 backup/file2 -rw-r--r-- edmond/edmond 45323 2019-02-28 20:31 backup/file3 -rw-r--r-- edmond/edmond 2989 2019-02-28 20:31 backup/file4 edmond@debianbox:~/Desktop/big-data$ tar -tvf 1-backup.tar.gz drwxr-xr-x edmond/edmond 60 2019-02-28 20:51 backup/ drwxr-xr-x edmond/edmond 1 2019-02-28 20:30 backup/1/ drwxr-xr-x edmond/edmond 1 2019-02-28 20:30 backup/2/ drwxr-xr-x edmond/edmond 1 2019-02-28 20:30 backup/3/ drwxr-xr-x edmond/edmond 1 2019-02-28 20:30 backup/4/ drwxr-xr-x edmond/edmond 1 2019-02-28 20:50 backup/5/ drwxr-xr-x edmond/edmond 1 2019-02-28 20:50 backup/6/ drwxr-xr-x edmond/edmond 1 2019-02-28 20:50 backup/7/ drwxr-xr-x edmond/edmond 1 2019-02-28 20:50 backup/8/ -rw-r--r-- edmond/edmond 11183 2019-02-28 20:51 backup/file5
Ripristino Backup nella cartella restore:
$ tar -xvf 1-backup.tar.gz -C restore/
enjoy 😉