Il programma di archiviazione tar si basa su un vecchio metodo di backup dei dati che per la sua efficacia è ancora oggi molto popolare per l’archiviazione sui sistemi Unix. Il nome tar è un acronimo, che sta per Tape Archiver, ossia archiviazione per unità a nastro. Anche se oggi gli utenti privati difficilmente archivierebbero i propri dati su supporti di questo tipo, in ambito aziendale, l’uso dei nastri sono ancora usati in certi scenari. Un ritorno all’uso delle tecnologie di archiviazione su nastro è possibile grazie al fatto che forti investimenti in ricerca sono stati fatti (lo possiamo vedere nel video qui sotto) ed il costo tende ad essere molto basso.
Pronostico inoltre che l’archiviazione di dati strategici su supporti non connessi alla rete e fisicamente occultabili saranno fondamentali alla lotta ai cryptovirus. Le aziende potrebbero riscoprire che l’archiviazione su questi supporti possa essere una valida garanzia contro attacchi sempre più mirati all’estorsione.
Usando tar è possibile creare backup regolari e incrementali di un server e qui di seguito spiego come funziona tar e quali comandi vengono utilizzati per eseguire i backup.
Come installare tar
Su Ubuntu, solitamente tar lo si trova già preinstallato, ma nel caso dovesse mancare o si sta utilizzando un’altra distribuzione Linux o Unix, si può installare con:
sudo apt-get install tar tar-doc
Il pacchetto tar-doc è facoltativo: contiene la documentazione del programma di archiviazione.
Come usare tar
La sintassi è molto semplice
tar Option File
Vediamo quali sono i flag disponibili
Opzione | Descrizione | Caratteristica |
–help | Visualizza tutte le opzioni | |
–version | Mostra la versione di tar in uso | |
-c | Crea un nuovo archivio | |
-d | Confronta tra loro i file nell’archivio e nel file system | |
-f | Scrive un archivio nel file dato o legge i dati dal file dato | |
-z | Comprime o decomprime l’archivio direttamente con gzip | |
-Z | Comprime o decomprime l’archivio direttamente con compress | |
-j | Comprime o decomprime l’archivio direttamente con bzip2 | |
-J | Comprime o decomprime l’archivio direttamente con xz | |
-k | Impedisce ai file di sovrascrivere file già esistenti durante l’estrazione dall’archivio | |
-p | Mantiene i privilegi di accesso durante l’estrazione | |
-r | Aggiunge un file a un archivio esistente | |
-t | Visualizza il contenuto di un archivio | |
-u | Allega solo file più recenti delle rispettive versioni nell’archivio | |
-v | Visualizza i passaggi coinvolti nell’archiviazione | |
-vv | Visualizza informazioni dettagliate sull’archiviazione | |
-w | Ogni azione deve essere confermata | |
-x | Estrae i file dall’archivio | |
-A | Allega i file di un archivio esistente a un altro | |
-C | Emette la posizione da cui devono essere estratti i file | |
-M | Crea, visualizza o estrae un archivio in più parti | |
-L | Cambia il supporto in una dimensione di file specifica | |
-W | Controlla l’archivio dopo che è stato scritto | |
-P | Archivia tutti i file dalla directory principale | |
–exclude | Esclude file o cartelle | |
-X | Legge un elenco con file esclusi | |
-g | Crea un registro di tutte le directory, inclusi i checksum |
Quando si creano archivi tar, si possono utilizzare anche l’asterisco come carattere jolly. Nella creazione di un nuovo archivio è buona prassi indicare sempre prima le opzioni, poi i nomi dei file dell’archivio che si vuole creare e infine i file e le cartelle che dovrebbe contenere. Nell’esempio seguente, creiamo un archivio (-c) composto da due file di testo, compresso con gzip (-z) e scritto nel file archive.tar.gz (-f):
tar -czf archive.tar.gz file_1.txt file_2.txt
Se si vuole creare un archivio contenente tutti i file di testo contenuti in una directory, si può usare il carattere jolly corrispondente:
tar -cf text_archive.tar *.txt
È anche possibile combinare directory complete e le loro sottodirectory in un archivio. Nell’esempio seguente, viene archiviato /directory1 incluse tutte le sue sottodirectory e i file contenuti, escludendo la sottodirectory /directory1/sottodirectory_x:
tar -cf archive.tar --exclude=”/directory1/subdirectory_x” /directory_1
Nell’esempio seguente, estraiamo (-x) l’archivio compresso (-z) che abbiamo creato nel primo esempio in un’altra directory (-C):
tar -xzf archive.tar.gz -C /home/directory1/archive_directory
Per aggiungere un altro file a un archivio (che deve essere decompresso), inserisci il seguente comando:
tar -rf archive.tar new_file.txt
Backup automatici con tar
Ai webmaster piace usare tar per creare backup: con esso, la struttura delle directory viene mantenuta e la funzionalità del programma consente molte regolazioni fini, come è evidente dalle numerose opzioni. Nelle sezioni seguenti spiegheremo come generare un backup completo con tar, nonché come creare backup incrementali con il programma.
Creare un semplice backup con tar
#!/bin/bash
DATE=$(date +%Y-%m-%d-%H%M%S)
BACKUP_DIR="/targetdirectory/backup"
SOURCE="$HOME/sourcedirectory"
tar -cvzpf $BACKUP_DIR/backup-$DATE.tar.gz $SOURCE