ESERCITAZIONE BACKUP CON LINUX
1
Burstnet Inform
atica
USO DI TAR
Per 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.
2
Burstnet Inform
atica
USO DI TAR
I parametri più importanti che si possono utilizzare con tar sono: -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
Burstnet Inform
atica
USO DI TAR
-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
Burstnet Inform
atica
USO DI TAR
TEST:
Crare un archivio chiamato “test.tgz”, contenente le directory /etc e /home/laboratorio compresso in formato gzip:
5
Burstnet Inform
atica
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.
6
Burstnet Inform
atica
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:
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
Burstnet Inform
atica
USO DI TAR
Backup totale con tar:
tar -czf <archivio di destinazione> <elenco cartelle da salvare>
Es. tar -czf backup.tgz /etc /home /var
8
Burstnet Inform
atica
USO DI TAR
Restore totale con tar
tar -xzf <archivio compresso> -C <destinazione dell'estrazione>
Es. tar -xzf backup.tgz -C /
9
Burstnet Inform
atica
USO DI TAR
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
Burstnet Inform
atica
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.
11
Burstnet Inform
atica
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.
12
Burstnet Inform
atica
USO DI TAR
Ad 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
Burstnet Inform
atica
USO DI TAR
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
Burstnet Inform
atica
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.
15
Burstnet Inform
atica
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:
16
Burstnet Inform
atica
USO DI TAR
m (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 eseguire17
Burstnet Inform
atica
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 possibili18
Burstnet Inform
atica
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
19
Burstnet Inform
atica
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
20
Burstnet Inform
atica