Burstnet Informatica
ESERCITAZIONE BACKUP CON
LINUX
1
USO DI TAR
realizzare il backup su un
sistema linux potete sfruttare il
programmaTAR.
Tar è un programma che nasce per
memorizzare o estrarre file da un
nastro o da un archivio.
Burstnet Informatica
Per
2
USO DI TAR
I parametri più importanti che si possono
utilizzare con tar sono:
Burstnet Informatica
-c: equivale a “create”, serve a creare un nuovo
archivio
-x: equivale a “extract”, serve a estrarre i file da un
archivio
-t: equivale a “list”, visualizza il contenuto di un
archivio
--exclude=PATTERN: serve ad escludere il
salvataggio dei file specificati in PATTERN
3
USO DI TAR
Burstnet Informatica
-f ARCHIVE: equivale a “file”, permette di
specificare il dispositivo o il file dentro il quale
deve essere memorizzato il backup oppure, in caso
di estrazione, dal quale recuperare il backup.
-j:comprime l'archivio con il comando “bzip2”
--overwrite: sovrascrive i file esistenti quando
l'archivio viene estratto
-z: comprime l'archivio con il comando “gzip”
-C DIR: equivale a “directory”, indica dentro quale
directory estrarre il contenuto dell'archivio.
4
USO DI TAR
TEST:
Burstnet Informatica
Crare un archivio chiamato “test.tgz”, contenente
le directory /etc e /home/laboratorio compresso in
formato gzip:
5
USO DI TAR
tar -czf test.tgz /etc /home/laboratorio
Il tar è stato così composto:
comando tar
parametro “c” per la creazione di un nuovo archivio
parametro “z” per la compressione con gzip
parametro “f” seguito dal nome dell'archivio
/etc e /home/laboratorio sono le directory che vogliamo
salvare.
Burstnet Informatica
6
USO DI TAR
estrarre l'archivio test.bz2, compresso in formato “bzip2”
dentro la cartella /var/www:
tar -xjf test.bz2 -C /var/www/
Il tar è stato così composto:
Burstnet Informatica
comando tar
parametro “x” per l'estrazione dell'archivio
parametro “j” per la decompressione con bzip2
parametro “f”seguito dal nome dell'archivio per indicare quale
archivio estrarre
parametro “-C” seguito dal nome della cartella di destinazione,
per indicare dove deve essere estratto l'archivio
7
USO DI TAR
Backup totale con tar:
Burstnet Informatica
tar
-czf <archivio di destinazione>
<elenco cartelle da salvare>
Es.
tar -czf backup.tgz /etc /home
/var
8
USO DI TAR
Restore
totale con tar
Burstnet Informatica
tar
-xzf <archivio compresso> -C
<destinazione dell'estrazione>
Es.
tar -xzf backup.tgz -C /
9
USO DI TAR
Burstnet Informatica
Backup incrementale con tar
Comando:
tar -czf <file archivio> --listed-incremental=<file
di log> <elenco cartelle da memorizzare>
Con questo comando, si crea un archivio
contenente solamente i file che non sono stati
memorizzati precedentemente dallo stesso
comando. Il file di log indicato nel parametro
listed-incremental, viene aggiornato da tar con i
nuovi file inseriti nell'archivio.
10
USO DI TAR
Es. Backup incrementale della cartella /dati
sudo -s
rm –r backup
mkdir /dati
mkdir /backup
touch /dati/test1
tar -czf /backup/archivio_`date +%d-%m-%y`.tgz -listed-incremental=/var/log/backup.log /dati
Verfichiamo che nella cartella /backup sia presente il
nostro backup.
Burstnet Informatica
11
USO DI TAR
NB: il comando date è racchiuso dentro un'apice
rovesciata (`) e non dentro un'apice semplice (')
Come ulteriore test creiamo:
touch /dati/test2
E rilanciamo il comando per eseguire il backup
incrementale.
Decomprimiamo il file creato e verifichiamo che
nell’archivio decompresso sia presente solo il file
test2.
Burstnet Informatica
12
USO DI TAR
Ad
Burstnet Informatica
ogni esecuzione del comando viene creato il file
di archivio, comprensivo della data odierna
ottenuta attraverso il comando date (vedere “man
date”), contenente solamente i file aggiunti nella
cartella /home dall'ultima volta che è stato
eseguito lo stesso comando di tar.
Per ripristinare i backup incrementali è sufficiente
estrarre uno ad uno, in ordine cronologico, tutti gli
archivi contenuti nella cartella di backup.
Attenzione: tar non riesce a verificare eventuali
file cancellati, ma solo quelli nuovi o modificati;
quelli eliminati rimarranno pertanto all'interno
del backup.
13
USO DI TAR
Burstnet Informatica
Effettuare backup incrementali giornalieri e backup
totale a inizio settimana
Prima di tutto creare lo script che esegua il comando
di backup incrementale:
backup.sh:
#!/bin/bash
tar -czf /backup/archivio_`date +%d-%m-%y`.tgz -listed-incremental=/var/log/backup.log /dati
Successivamente bisognerà assegnare allo script i
permessi di esecuzione, come fare?
14
USO DI TAR
E' importante notare che se il file di log è assente
o vuoto, il tar effettuerà il backup totale della
cartella da memorizzare; utilizzeremo questo
stratagemma per effettuare il backup totale a
inizio settimana.
Per far sì che il comando venga eseguito ogni
giorno ad un preciso orario dobbiamo affidarci al
programma “crontab”. Questo programma
permette di memorizzare quando eseguire un
determinato comando.
Burstnet Informatica
15
USO DI TAR
Eseguendo crontab -e entriamo nella
configurazione di crontab
Ogni linea indica un'operazione che verrà eseguita
in automatico.
Se la linea è preceduta dal carattere #, significa
che è commentata, quindi non verrà eseguita.
Le linee di configurazione di crontab sono formate
da 6 valori:
Burstnet Informatica
16
USO DI TAR
m
Burstnet Informatica
(minute): indica il minuto nel quale deve
essere eseguita l'operazioni (valori da 0 a 59)
h (hour): indica l'ora nel quale eseguire il
comando (valori da 0 a 23)
dom (day of month): indica il giorno del mese
nel quale eseguire (da 1 a 31)
mon (month): indica il mese nel quale
eseguire (da 1 a 12)
dow (day of week): indica il giorno della
settimana (da 0 a 6, 0 è domenica e 6 è
sabato)
command: il comando da eseguire
17
Burstnet Informatica
USO DI TAR
I primi 5 campi possono essere formati da un
singolo valore numerico oppure possono essere
utilizzati degli operatori per specificare valori
multipi:
“,”, permette di specificare una lista di valori,
ognuno separato dalla virgola Es: 1,3,5
“-”, permette di specificare un intervallo di
valori Es. 1-4
“*”, specifica tutti i valori possibili
18
USO DI TAR
Tornando al sistema di backup che stavamo
progettando sarà necessario inserire due righe di
istruzioni dentro crontab:
la prima serve a eliminare il file di log ogni lunedì
alle ore 0:30, prima che venga effettuato il nuovo
backup; in tal modo il backup sarà completo di
tutta la cartella /home
30 0 * * 1 rm /var/log/backup.log
Burstnet Informatica
19
USO DI TAR
la seconda invece serve ad eseguire ogni giorno il
comando di backup all'1 di notte:
1 0 * * * /script/backup.sh
nel caso volessimo eseguire il backup soltanto
durante i giorni lavorativi, dovrà essere
modificato in:
1 0 * * 1-5 /script/backup.sh
Burstnet Informatica
20