Il comando tar

Talvolta, attratti dallo sfavillio di tutte quelle belle finestre stile win, tendiamo a dimenticare che queste si appoggiano a programmi che funzionano benissimo anche da console. Il comando tar rappresenta un esempio classico di comando che svolge egregiamente il suo lavoro senza l’ausilio di interfacce grafiche.

Ho trovato questa utile guida [in inglese] su Ubuntuforums.org che spiega come effettuare il backup e il ripristino dell’intero sistema, utilizzando semplicemente il comando tar da un terminale.

Ho tradotto di seguito il tutorial aggiungendo qualche piccola personalizzazione.

Prima di tutto diventiamo root

sudo su

Spostiamoci nel punto del filesystem in cui desideriamo che venga creato il file risultante. In questa guida abbiamo scelto di andare alla radice ” / ” del ns. filesystem , ma nulla ci vieta di stare in qualunque altro posto, compresi dischi removibili, chiavette USB o altro.

cd /

Veniamo ora al comando:

tar cvpzf backup.tgz –exclude=/proc –exclude=/lost+found –exclude=/backup.tgz –exclude=/mnt –exclude=/sys –exclude=/home/sandrinux/Desktop/Foto /

Attenzione, non fidatevi del “copia-incolla” !

I vari exclude ad esempio sono preceduti da due segni meno consecutivi (- - , senza spazi tra il primo e il secondo) e non da uno solo, come certi editor potrebbero erroneamente trasformare.

Il comando inoltre deve essere dato tutto di seguito su un’unica riga.

Mi rendo conto che per un utilizzatore abituale di Linux queste siano raccomandazioni superflue, ma ricordo ancora quando alle prime esperienze, dopo ore di imprecazioni, ho notato la presenza di un “ . ” (punto) alla fine di un comando che cercavo di ripetere sul mio sistema, e che non si trattava del simbolo di conclusione del capoverso, bensì di una parte integrante del comando stesso.

Quindi nel dubbio, preferisco essere noioso e pedante.

Ma torniamo al comando digitato ed entriamo nel dettaglio del suo significato:

tar è ovviamente il programma

cvpzf sono le opzioni passate al programma, che in sintesi determinano la creazione di un nuovo archivio compresso tramite gzip, preservando i permessi dei file contenuti. In alternativa è possibile utilizzare Bzip2 per comprimere l’archivio ottenendo un file più piccolo, a discapito però della velocità di compressione. In tal caso bisogna sostituire “z” con “j” e l’estensione del file risultante da .tgz a .tar.bz2 . Per maggiori dettagli vedere man tar .

backup.tgz è il nome che verrà assegnato al nuovo archivio.

–exclude=/proc –exclude=/lost+found –exclude=/backup.tgz –exclude=/mnt –exclude=/sys –exclude=/home/sandrinux/Desktop/Foto rappresenta tutto quello che NON vogliamo salvare.

Le prime 5 esclusioni sono pressochè obbligatorie, in quanto: /proc e /sys sono dei filesystem virtuali, contenenti i file con le informazioni sullo stato del sistema necessarie al kernel, file che vengono ricreati dal kernel stesso durante il boot. /lost+found contiene eventuali pezzi di filesystem “danneggiati” a seguito di malfunzionamenti, tipicamente spegnimenti brutali del PC, del tipo blackout improvvisi. /backup.tgz è l’archivio stesso, dire al programma di generare un archivio dell’archivio che sta generando, temo che gli farebbe venire mal di testa /mnt infine è dove vengono montati gli altri filesystem (tipo CD o DVD). L’ultima esclusione è una personalizzazione che ho aggiunto io, in quanto sul mio desktop ho la directory /Foto che contiene immagini digitali della fotocamera, su cui sto lavorando. Avendone comunque una copia di backup su un DVD a se stante, non è il caso di includerle nel nuovo archivio che creeremo. Questo è semplicemente un esempio di come si può ,o meglio deve, essere personalizzato il comando in base alle proprie specifiche esigenze.

Il carattere slash “ / ” infine, che sta in fondo al comando, è l’indicazione della porzione di filesystem di cui tar deve generare un archivio. Essendo “ / ” è la radice del filesystem, si dovrà quindi generare un archivio “di tutto”.

Il risultato sarà avere un singolo file denominato backup.tgz alla radice del filesystem, contenente una copia compressa del nostro sistema, che provvederemo a spostare o copiare su CD, DVD, supporto removibile, o quello che più ci piace.

Per il ripristino, dobbiamo assicurarci di essere nelle condizioni di partenza precedenti, quindi:

sudo su

cd /

e di avere il ns. file backup.tgz alla radice del filesystem.

Il comando per il restore è il seguente:

tar xvpfz backup.tgz -C /

che sovrascriverà ogni singolo file della partizione con quelli salvati nell’archivio.

Fatto questo dovremo provvedere a ricreare le directory che NON abbiamo salvato in precedenza.

mkdir proc

mkdir lost+found

mkdir mnt

mkdir sys

Questo è tutto. Riavviato il sistema avremo ogni cosa come prima del backup.

Citazione:

http://ubuntuforums.org/showthread.php?t=35087&highlight=backup