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