|
Dimensione: 31649
Commento:
|
← Versione 45 del 18/11/2025 22.49.52 ⇥
Dimensione: 14725
Commento:
|
| Le cancellazioni sono segnalate in questo modo. | Le aggiunte sono segnalate in questo modo. |
| Linea 1: | Linea 1: |
| [[BR]] ||<tablestyle="float:right; font-size: 0.9em; width:40%; background:#F1F1ED; margin: 0 0 1em 1em;" style="padding:0.5em;">'''Indice'''[[BR]] [[TableOfContents]]|| = DAR = == Cos'è DAR == Dar, è un programma, il cui nome sta per '''D'''isk '''AR'''chive (analogamente a tar, che però è più incentrato ad un backup su nastro). In parole povere, è un programma, da eseguire da riga di comando, per la creazione ed il ripristino del backup del vostro sistema. == Backup == === Bacosa? === Un backup è un po' come una Ferrari: tutti lo conoscono, ma pochi ce l'hanno; ed il fatto è tanto più grave, considerando che un buon backup, al contrario di una Ferrari, vi permette di risparmiare molto, evitando situazioni catastrofiche. Quando si pensa ad un backup, subito la mente va agli uffici, ai documenti di vitale importanza per un'azienda. Questo è sicuramente vero, ma bisogna ponderare sempre l'importanza dei documenti che si hanno in possesso. Certo, all'utente casalingo non importa molto di clienti e di dicumenti aziendali, ma forse vi farà piacere quando, un giorno, il vostro disco smetterà di funzionare, e voi perderete tutti i giga di foto digitali accumulati in tanti anni? Tutta la vostra collezione di mp3? Oppure quei importantissimi mega occupati dalla vostra tesi? Insomma, se ci pensate per qualche secondo, a chiunque di voi verrà in mente un bel po' di roba dentro il vostro computer che, diciamocela tutta, vi dispiacerebbe parecchio perdere. Il problema è che si pensa sempre che un danno al disco sia sempre una delle cose che ''capita agli altri'', fin quando non capita a voi, lasciandovi nella più totale disperazione. Il backup è importante anche per l'utente normale, perchè in fondo c'è la sua piccola vita digitale, in quel computer. === Dove creare il backup === Una (giusta) obiezione che un paio d'amici mi hanno detto quando parlavamo del backup, è che di solito un utente casalingo non ha posti dove effettuare il backup. Ora, io ho la fortuna di avere due computer, di cui uno vecchio che uso come server (samba, file, stampa etc.), e quindi butto lì i miei backup. Tuttavia capisco che sono poche le persone che possono disporre di un secondo computer, quindi questa ipotesi è da scartare. In maniere duale, è inutile creare un backup nello stesso disco dove risiedono i vostri dati. Questo per due motivi. Quello importante, ma che pochi comprendono, è che se il disco vi saluta, perdete sia i dati sia il backup, con buona pace di tutti. Il secondo motivo, che a mio avviso è quello che blocca molti utenti dalla creazione del backup anche se sanno che è utile, consiste nel fatto che un backup piglia molto spazio (all'incirca quello dei dati da salvare), e questo spazio la gente se lo vorrebbe risparmiare per altro. Ci sono almeno tre posti alternativi dove mettere da parte un backup per un utente normale: * '''CD-DVD''' sebbene, dal mio punto di vista, questa soluzione è quella meno efficiente, perlomeno è alla portata di tutti. Il vantaggio principale è che ovviamente chiunque stia leggendo queste pagine, sa come masterizzare in CD-DVD, oltre al fatto che costano poco e che quindi il backup diventa una cosa relativamente indolore dal punto di vista economico. Gli svantaggi consistono nel fatto che il backup difficilmente può venire automatizzato, dato che bisogna sempre inserire e masterizzare i supporti ottici, dall'altro che viene difficile creare backup incrementali (e che sono? poi vedremo), a meno di non usare supporti riscrivibili. Inoltre, non sono consigliati per backup ''seri'', dato che comunque la conservazione dei dati è assicurata solo per un paio d'anni, comunque poco rispetto, per esempio, ad un supporto magnetico quale il nastro (che però non prendiamo in considerazione). * '''Hard Disk dedicato''' Questa soluzione è quella che consiglio di adottare per i backup grossi, tipo l'intera home. Lo svantaggio principale consiste nella spesa iniziale, dato che comune bisogna sborsare dindini per un HD intero, e soprattutto bisogna resistere alla tentazione di usarlo per memorizzarci altri documenti oltre al backup (altrimenti si vanificherebbe il backup dei dati di quel disco, come abbiamo detto). Tuttavia reputo l'HD un metodo più sicuro e duraturo dei supporti ottici. Inoltre, se gli dedicate un disco interno, oppure di rete (ma al limite anche USB, se lo tenete sempre attaccato), potete automatizzare il processo, creandovi uno script che effettui il backup al posto vostro, senza che voi facciate assolutamente niente (perchè non vi dovete preoccupare di inserire e togliere supporti, eliminando la procedura prettamente manuale). In questo modo vi dimenticherete del backup che diventa automatizzato, ed avrete i dati pronti nel caso di crash. Ovviamente, una volta ogni tanto non sarebbe male effettuare dei test sul backup, tanto per vedere se funzionano, ma è roba di poco conto. * '''Storage on-line''' A volte ci sono documenti e cartelle '''''veramente''''' importanti, che volete salvaguardare da qualsiasi cosa. In questo caso, potete decidere di effettuare il backup al di fuori delle vostre mura, magari per averli a disposizione altrove, oppure, per scongiurare guasti all'intera rete elettrica, ad esempio fulmine se non avete un UPS. Potete prendervi in questo caso, uno spazio on-line ed utilizzarlo come spazio di backup. Ad esempio, io ho una casella gmail che utilizzo esclusivamente per il backup dei miei dati, e che ho usato per il backup della mia tesi; effettuavo il backup, e poi tramite un'estensione per Firefox (gSpace), usavo la casella e-mail alla stregua di un server FTP. Certo, dovevo fare l'upload a mano del backup, ma niente vi impedirebbe di montare la cartella gmail con FUSE per ri-automatizzare il tutto, ad esempio. Io non ne ho avuto bisogno, ma voi potreste. Come potete vedere, ci sono varie alternative per mettere un backup al sicuro, come lo vorrete fare dipende da voi e dalle vostre esigenze. Ricordate solo di non renderlo inutile, creando una cartella ''backup'' in quella dei vostri documenti... == DAR == === Perchè DAR? === Perchè mi piace... ;) Scherzi a parte, lo trovo un ottimo programma per il backup dei dati. La maggior parte della gente usa '''tar''' come gestore di archivi di compressione e, di conseguenza, backup, ma io preferisco dar per almeno un paio di motivi. Il più importante a mio avviso è che una corruzione del file di backup non compromette il backup intero: infatti, se si utilizza un metodo di compressione, qualche bit di differenza porta ad una reazione a catena che in pratica rende inutile il file. Ora, tar compatta in maniera unica tutti i file del backup, il che significa che, se si corrompe il file di backup, nessun file può essere recuperato; invece dar, all'interno del backup, comprime singolarmente ogni file: questo significa che, se si dovesse corrompere malaugaratamente una piccola porzione del backup, solamente il/i files effettivamente memorizzati in quella porzione vengono persi, mentre tutto il resto del backup viene salvato. Di sicuro meglio perdere un paio di foto che tutta la raccolta, se proprio si deve perdere qualcosa, no? Questo da più sicurezza specialmente quando si usano supporti particolarmente esposti alla degradazione, come i CD che si possono graffiare con relativa facilità. Un altro motivo, è la semplice gestione degli slice, cioè dei pezzi di backup in cui viene diviso se è troppo grande. Questo vi permette di separare 2 GB di backup, ad esempio, in 4 file da 500MB; la particolarità sta però nel fatto che, alla fine di una slice si può dire a DAR di effettuare determinati comandi, come ad esempio dirgli di masterizzare la slice prima di creare la successiva. Un altro vantaggio è la creazione di backup incrementali, che permette di risparmiare molto spazio su disco, memorizzando, invece dell'intera cartella che si vuole backuppare, solo le differenze dall'ultimo backup. Infine, trovo questo strumento molto educativo specialmente per i nuovi arrivati, perchè lo reputo una buona introduzione alla linea di comando, con opzioni semplici e, soprattutto utili: la creazione di script di backup non è solo fine a se stessa, ma permette all'utente di creare qualcosa di veramente utile, dando così maggior soddisfazione a chi si cimenta per la prima volta in questo genere di cose. == Utilizzo di DAR == === Installazione di DAR === Ok, fate un bel respiro profondo, e preparatevi a qualcosa che pochi umani hanno potuto vedere: {{{ sudo aptitude install dar }}} Tutto qua? E cosa vi aspettavate? ;) === Utilizzo base === Non aspettatevi fuochi d'artificio od altro... DAR si usa da linea di comando (OK, c'è un front-end grafico '''kdar''', ma non ne parlerò), quindi cominciate prima di tutto ad aprire un terminale. Dato che per adesso facciamo solo test, possiamo memorizzare il backup dove ci viene più comodo. Inoltre, effettuate il backup un paio di cartelle relativamente piccole. Non stiamo veramente effettuando il backup, ma solo vedendo come funziona il tutto. ==== Backup ==== Supponiamo di avere una cartella chiamata '''appunti''', e di doverne effettuare il backup: dobbiamo allora scrivere il seguente comando: {{{ dar -c appunti_backup -R /home/daniele/appunti }}} Gia spuntano due opzioni: * '''-c''' questa opzione dice a DAR di creare un backup, e di chiamarlo appunti_backup. il file effettivamente creato, si chiamerà ''appunti_backup.1.dar'', dove 1 è il numero della slice, e .dar è l'estensione, che quindi non devono essere aggiunti nel nome. * '''-R''' questa opzione specifica la directory di cui si vuole effettuare il backup. Notiamo che, dato che non abbiamo introdotto un path assoluto nel nome del file di backup, il file stesso verrà creato nella directory corrente (per esempio, se avete appena aperto il terminale, dovreste trovarvi nella home); è importante NON creare il backup all'interno della stessa directory che si vuole backuppare, perchè altrimenti il programma entra in un loop infinito, e crea un file immenso e totalmente inutile. Assicuratevi sempre di essere in posizioni diverse, magari usando path assoluti: {{{ dar -c /home/daniele/appunti_backup -R /home/daniele/appunti }}} L'output di questo comando è simile al seguente {{{ |
## page was renamed from AmministrazioneSistema/BackupDelSistema/BackupConDar #format wiki #language it <<BR>> <<Indice>> <<Informazioni(forum="https://forum.ubuntu-it.org/viewtopic.php?f=46&t=646306"; rilasci="24.04 22.04 20.04 18.04")>> = Introduzione = '''DAR''', acronimo di '''D'''isk '''AR'''chive, è un programma utile per la creazione e il ripristino di backup del sistema. = Installazione = [[AmministrazioneSistema/InstallareProgrammi|Installare]] il pacchetto [[apt://dar | dar]]. {{{#!wiki tip È possibile utilizzare il software tramite un'interfaccia grafica, denominata '''dargui''', disponibile al [[http://dargui.sourceforge.net/|seguente indirizzo]]. }}} = Operazioni di backup = Per creare una [[AmministrazioneSistema/ComandiBase#cp|copia]] di sicurezza dei dati personali presenti in `~/dati_del_backup`, è possibile utilizzare il comando '''dar''' con una sintassi simile alla seguente:{{{ dar -c <nomefile> -R ~/dati_del_backup }}} Di seguito una breve spiegazione delle opzioni utilizzate: <<Anchor(sintassi)>> ||<tablestyle="width:50%;" -2:>'''Sintassi opzioni'''|| ||<:30%> '''Opzione''' || Risultato || ||<:>'''-c <nomefile>''' || Crea il backup e assegna il nome specificato. Al termine dell'operazione, all'interno del percorso corrente verrà creato un file con nome `backup.1.dar`. || ||<:>'''-R''' || Specifica la cartella da copiare. || ||<:>'''-s''' || Specifica la dimensione di ogni porzione di backup. || ||<:>'''-Z''' || Specifica i file da non comprimere. || ||<:>'''-P''' || Percorso relativo da escludere dal backup. || ||<:>'''-D''' || Ripristina un backup includendo le cartelle vuote. || ||<:>'''-p''' || Inserisce una pausa tra la creazione di una porzione e l'altra. || ||<:>'''-E''' ''cmd'' || Esegue il comando specificato in ''cmd'' tra la creazione di una porzione e l'altra. || ||<:>'''-y''' || Attiva la compressione [[AmministrazioneSistema/FormatiDiCompressione#bzip2|bzip2]], che è più efficiente di [[AmministrazioneSistema/FormatiDiCompressione#gzip|gzip]]. || ||<:>'''-z''' || Attiva la compressione [[AmministrazioneSistema/FormatiDiCompressione#gzip|gzip]]. || {{{#!wiki important Assicurarsi che il percorso corrente sia diverso da quello della cartella da copiare e che non contenga la directory di destinazione stessa. In tal caso, escludere la directory di destinazione tramite l'opzione dedicata, discussa più avanti.}}} Il risultato del comando precedente sarà simile al seguente: {{{ |
| Linea 101: | Linea 62: |
| Gli ''inode'' sono praticamente i files che avete salvato (tenendo conto di cartelle, link simbolici etc), mentre gli altri si riferiscono ad inode che, in in modo o nell'altro, non sono stati salvati. Comunque vedremo dopo. L'importante è che, se adesso vedete nella vostra home, vedrete appunto il file di backup. ==== Restore ==== A questo punto, proviamo ad effettuare il restore. Cancellate il contenuto della cartella appunti, ed entrateci. A questo punto siete dentro la cartella vuota. Per ripristinare il backup, scrivete semplicemente {{{ dar -x /home/daniele/appunti_backup }}} * '''-x''' con questa opzione potete specificare il percorso del file di backup Notate un paio di cosucce: la meno importante, è che nel path del file, non dovete specificare nè il numero nè l'estensione, dato che il programma se li va a cercare normalmente. Cosa più importante, invece, consiste nel fatto che per il ripristino, siamo dovuti entrare nella cartella da ripristinare. Effettivamente, se avessimo dato il comando all'interno del path /home/daniele/non/ripristinare/qui/ dar avrebbe messo i files non all'interno della directory originale, ma proprio in questa. Questo accade perchè in questo modo possiamo ripristinare il backup dove ci pare: tuttavia è uno svantaggio ed un vantaggio allo stesso tempo, perchè, in caso di crash del disco, dobbiamo ricordarci tutte le cartelle dei backup. Per risolvere il problema, dobbiamo ri-specificare l'home directory del backup con la solita opzione -R {{{ dar -x /home/daniele/appunti_backup -R /home/daniele/appunti }}} In questo modo userà il percorso specificato da -R come radice per il ripristino. L'output sarà simile al seguente: {{{ |
== Backup parziale == Per eseguire un backup contenente solo specifiche directory o file, '''Dar''' utilizza le opzioni `-I` (per includere file) e `-g` (per includere directory) in fase di creazione del backup. === Backup di un singolo file === Per creare un backup contenente solo un file specifico, ad esempio `documenti/relazione.odt`, si può usare il seguente comando:{{{ dar -c backup_parziale_file -R ~/mie_risorse -I "documenti/relazione.odt" }}} L'opzione '''-I''' specifica il percorso esatto del file da includere nel backup. È importante notare che il percorso specificato con `-I` è relativo alla directory indicata da `-R`. È possibile usare anche caratteri jolly (wildcard) o espressioni regolari con `-I`. Ad esempio, per includere tutti i file `.jpg` dalla directory `foto`:{{{ dar -c backup_foto_jpg -R ~/mie_risorse -I "foto/*.jpg" }}} === Backup di una singola directory === Per creare un backup che includa solo una o più directory specifiche, si usa l'opzione `-g`. Ad esempio, per fare il backup della sola directory `documenti` (e tutto il suo contenuto):{{{ dar -c backup_documenti -R ~/mie_risorse -g "documenti" }}}L'opzione '''-g''' specifica la directory da includere. Il percorso è relativo alla directory specificata con `-R`.<<BR>>È possibile utilizzare più istanze di `-g` nello stesso comando per includere più directory:{{{ dar -c backup_doc_foto -R ~/mie_risorse -g "documenti" -g "foto" }}} === Combinazione di inclusione ed esclusione === È possibile combinare le opzioni `-I` e `-g` con le opzioni di esclusione (come `-X` o `-P`) per un controllo granulare. Ad esempio, per includere una directory ma escludere un certo tipo di file al suo interno:{{{ dar -c backup_documenti_no_pdf -R ~/mie_risorse -g "documenti" -X "*.pdf" }}}In questo caso, `-g "documenti"` include l'intera directory `documenti`, mentre `-X "*.pdf"` esclude tutti i file con estensione `.pdf` all'interno delle directory incluse. Dar offre molta flessibilità per personalizzare i backup, permettendo di includere o escludere file e directory in base a precise esigenze. == Backup differenziale == La creazione dei backup differenziali è una delle operazioni fondamentali in una strategia di backup. Questi backup sono importanti perché permettono di risparmiare moltissimo spazio, memorizzando solamente le differenze tra un backup precedente e quello attuale. Se, per esempio, sono presenti grosse porzioni della directory che restano invariate (es. collezione MP3 e foto), queste non verranno memorizzate nuovamente nel backup successivo. Lo svantaggio consiste nel fatto che, per il ripristino completo, oltre al backup differenziale, sarà necessario anche il backup precedente e così via, fino all'ultimo backup completo. Dal punto di vista del backup, un backup differenziale ha una sintassi praticamente uguale a quella del backup completo analizzato finora. L'unica differenza è l'aggiunta di un'opzione:{{{ dar -c /media/disco_temporaneo/home_backup_2 -R /home/daniele -s 4G -Z "*.jpg" -Z "*.mp3" -P .Trash -P Download -D -y -A /media/disco_backup/home_backup }}} ||<tablestyle="width:50%;" -2:>'''Sintassi opzioni'''|| ||<:30%> '''Opzione''' || Risultato || ||<:>'''-A''' || Con questa opzione si specifica la posizione dell'ultimo backup eseguito (completo o differenziale). Il programma analizzerà il backup e considererà esclusivamente le modifiche. || Se il backup precedente è diviso in più slices, è necessario indicare il percorso della prima o dell'ultima slice (sempre senza specificare `.numero.dar` alla fine del file). Questo perché queste due slices contengono un riassunto dell'intero backup, chiamato '''catalogo'''. È consigliabile adottare una metodologia per rinominare i backup in modo sensato, per comprenderne la sequenza; solitamente, includere la data nel nome del backup è un metodo efficace per mantenere l'ordine. Una nomenclatura regolare permette anche di agevolare un eventuale script di ripristino, poiché facilita la creazione di script di ripristino automatizzati, permettendo al sistema di gestire il processo in modo ordinato. = Opzioni ausiliarie = Sono disponibili alcune opzioni utili da eseguire su un backup. * Una prima operazione importante, dopo aver creato un backup e salvato in una posizione appropriata, consiste nel verificarne l'integrità. A tale scopo, con Dar si utilizza l'opzione '''-t''':{{{ dar -t /media/disco/backup_dar }}}In questo caso, è necessario specificare il percorso del backup, incluso il nome base, che non deve includere il numero di slice né l'estensione. Questo comando verifica l'integrità del backup e segnala eventuali problemi e i file interessati. * Un'altra opzione consente di mostrare il contenuto di un backup, e ciò si ottiene utilizzando l'opzione '''-l''':{{{ dar -l /media/disco/backup_dar }}}Si ottiene un elenco dei file presenti nel backup. È spesso utile indirizzare l'output tramite una 'pipe' a '''grep''' per filtrare l'elenco dei file, oppure reindirizzare l'output in un file per un'analisi successiva e più approfondita, poiché, a seconda della dimensione del backup, il numero di file elencati può essere molto elevato. == Script == Un vantaggio notevole di '''Dar''' (come molti altri programmi che operano da [[AmministrazioneSistema/Terminale|terminale]]) risiede nella possibilità di automatizzare il lavoro tramite script. [[http://wiki.ubuntu-it.org/AmministrazioneSistema/BackupDelSistema/Dar?action=AttachFile&do=get&target=script-backup-dar2.txt|Scaricare]] lo script proposto, che permette di automatizzare il processo di backup, creando un backup completo e successivamente vari backup differenziali. Dopo un determinato numero di giorni, si procede alla creazione di un nuovo backup completo, per evitare un numero eccessivo di backup differenziali sul disco. Lo script presentato ha alcune limitazioni: * non cancella il precedente backup quando il successivo completo viene eseguito (ovviamente dopo la verifica); è quindi necessario cancellare manualmente i backup precedenti (o modificare lo script secondo le proprie esigenze). * un messaggio di avvertimento nel caso in cui due backup completi successivi vengano eseguiti nello stesso giorno. In questo caso, infatti, la cartella avrà il medesimo nome e si verificherà un avvertimento per quanto riguarda la sovrascrittura. Per il recupero dei dati, invece, non viene fornito uno script, perché l'estrazione, usando le opzioni '''-I''' e '''-g''', come illustrato in precedenza, è relativamente semplice. È possibile creare uno script per evitare l'introduzione manuale dei percorsi di backup; tuttavia, spesso risulta meno oneroso scrivere il comando direttamente anziché creare uno script con un numero variabile di argomenti. Inoltre, il ripristino non necessita di essere automatizzato, poiché deve essere eseguito solo quando effettivamente richiesto. = Ripristino = {{{#!wiki important È importante ricordare che, per un ripristino differenziale, è necessario ripristinare i file prima dal backup completo e successivamente da quello differenziale. }}} Per ripristinare il backup creato nell'esempio precedente, è sufficiente utilizzare un comando simile al seguente:{{{ dar -x backup }}} L'opzione '''-x''' specifica il percorso del file di backup da estrarre. Il backup viene ripristinato nella directory corrente. In alternativa, è possibile specificare un percorso alternativo utilizzando l'opzione '''-R''', come nell'esempio seguente:{{{ dar -x backup -R ~/prova }}} Il backup creato precedentemente viene ripristinato in `~/prova`. Il risultato del comando precedente sarà simile al seguente:{{{ |
| Linea 138: | Linea 167: |
| === Qualche opzione in più === Ovviamente, se tutto quello che fa DAR è questo, non sarebbe molto intelligente... Fortunatamente, DAR sa fare parecche cose in più. Supponiamo di trovarci in queste condizioni: vogliamo effettuare il backup della nostra intera home directory, che sarà, diciamo, 50 giga? Di questi, 9 sono solo di foto in formato jpg, mentre 12 in formato mp3. Inoltre, è presente una directory che contiene i nostri download da internet, che possiamo anche ignorare per il backup, ed il cestino che non ci serve nemmeno. Inoltre, vogliamo masterizzare su DVD il backup. A questo punto, sorgono un paio di problemi; prima di tutto, bisogna specificare a DAR che, all'interno della directory di cui vogliamo effettuare il backup, ci sono cartelle che non vogliamo. Questo ha senso quando i dati non sono importanti. Inoltre, ho specificato che buona parte del nostro backup è formato da foto jpg ed mp3. Questo di per sè non è un problema per DAR, ma ricordiamo che il programma effettua una compressione sui files; andando a comprimere i file jpg ed mp3, che sono già compressi e privi di ridondanza, non porta nessun vantaggio in termini di spazio risparmiato, ed anzi provoca una perdita di tempo, necessario per la compressione, che possiamo tranquillamente risparmiare, per cui vogliamo che i jpg e gli mp3 non vengano compressi, ma vengano backuppati così come sono. Per finire, dobbiamo specificare anche che il backup deve essere masterizzato su DVD, per cui vogliamo dividerlo in tante parti quante sono necessarie. Il comando da scrivere è il seguente: {{{ dar -c /media/disco_temporaneo/home_backup -R /home/daniele -s 4G -Z "*.jpg" -Z "*.mp3" -P .Trash -P Download -D -y }}} Notate che ho creato il backup al di fuori della home, per evitare il problema del loop del backup che memorizza se stesso... C'è qualche opzioncina in più, com'era lecito aspettarsi: * '''-s''' Possiamo specificare la dimensione di ogni slice. Dato che masterizziamo su DVD, ho posto il limite a 4 gigabyte (4G). Possiamo specificarlo anche in megabyte, ad esempio 650M per un cd. L'unica limitazione consiste nel fatto che il numero deve essere rappresentato da un intero, quindi scriveremo 4200M invece di 4.2G, se vogliamo sfruttare fino al limite i nostri supporti. * '''-Z''' specifica i pattern dei nomi dei files che NON devono essere compressi: nel nostro caso vogliamo che i jpg e gli mp3 siano memorizzati così come sono. * '''-P''' indica il percorso relativo delle directory che vogliamo escludere dal backup * '''-D''' Questa opzione è utile quando vogliamo ripristinare qualcosa da zero. Infatti utilizzandola, creeremo durante il ripristino anche le cartelle escluse con l'opzione -P, anche se resteranno vuote (ovviamente). La creazione della gerarchia delle directory è utile in alcuni casi, mentre in altri possiamo semplicemente ignorarla. * '''-y''' attiva la comprezzione bzip2, che secondo me lavora meglio di gzip (che si attiva con -z), ma questa è una venialità a dire il vero... Potete anche associare un numero da 0 a 9, che indica il livello di compressione. Una volta creati i backup, potete masterizzarli dove volete, e metterveli da parte. Esiste un'opzione '''-E stringa''', che, alla fine della creazione di ogni slice, esegue il comando descritto in ''stringa'' prima di cominciare col successivo. Ad esempio, potete creare un comando che masterizzi la slice attuale, e poi la cancelli, per sprecare lo spazio di una sola slice nel vostro disco durante tutta l'operazione. Come creare un comando del genere, per ora lo lascio a voi (un po' per esercizio, un po' perchè devo vedere anchio come fare). Se non volete rinunciare a questo, ma non sapere che stringa mettere, potete usare l'opzione '''-p''', che mette in pausa fra la creazione di una slice e la successiva, permettendovi di fare tutto a manina prima di andare avanti. === Backup Differenziale === Ora, una delle operazioni fondamentali in una politica di backup: la creazione dei backup differenziali. Questi sono importanti, perchè vi permettono di risparmiare moltissimo spazio per i backup, andando a memorizzare solamente le differenze fra un backup precedente e quello attuale. Se avete grosse porzioni di filesystem che resta invariato (es. collezione mp3 e foto), questi non verranno memorizzati di nuovo nel backup successivo. Lo svantaggio consiste nel fatto che, se dovete ripristinare il tutto, oltre al backup differenziale, avete bisogno anche del backup precedente, e così via fino a quando non beccate un backup completo. Sembra complicato, ma non lo è, e comunque lo vedremo meglio quando parleremo del ripristino differenziale. Dal punto di vista del backup, un backup differenziale ha una sintassi praticamente uguale a quella del backup completo analizzato finora. L'unica differenza è l'aggiunta di un'opzione, come potete vedere in questo esempio: {{{ dar -c /media/disco_temporaneo/home_backup_2 -R /home/daniele -s 4G -Z "*.jpg" -Z "*.mp3" -P .Trash -P Download -D -y -A /media/disco_backup/home_backup }}} * '''-A''' Con questa opzione andiamo a specificare la posizione dell'ultimo backup eseguito (completo o differenziale a sua volta). Il programma analizzerà il backup e terrà conto esclusivamente delle modifiche. Abbiamo bisogno, a dire il vero, non del backup qualsiasi. Se il backup precedente è diviso in più slices, dobbiamo indicare il percorso o della prima slice, o dell'ultima (sempre senza specificare .numero.dar alla fine del file). Questo perchè queste due slices particolari contengono un riassunto di tutto il backup, chiamato ''catalogo''. Vedremo anche come rendere più efficiente questo procedimento, salvando il backup da una parte ed il catalogo dall'altra, in maniera tale da non dover ogni volta recuperare DVD o dischi vari. Inoltre, è buona regola trovare un modo per rinominare i vari backup in maniera sensata, in maniera tale da capire dal nome quale backup segue l'altro; di solito mettere la data nel nome del backup è un buon modo per tenere ordine da questo punto di vista. Una nomenclatura regolare permette anche di agevolare un eventuale script di ripristino, dato che viene più semplice lasciare che il computer si occupi di trovare e ripristinare tutti i files in maniera ordinata, piuttosto che farlo da soli... === Ripristino Differenziale === Per il ripristino di un backup differenziale, le cose sono un pochetto più lunghe. Prima di tutto, bisogna ripristinare il primo backup completo, come abbiamo visto prima. Poi, in ordine cronologico, tutti i vari backup differenziali. Inoltre, in questo caso, è necessario utilizzare l'opzione '''-w''', che indica di sovrascrivere eventuali file già esistenti; questo permette di sovrascrivere, man mano che si procede con i backup differenziali, le vecchie versioni dei files con le nuove. Supponiamo di aver ripristinato ''home_backup'': a questo punto, possiamo ripristinare ''home_backup_2'' con il seguente comando: {{{ |
== Ripristino differenziale == Per il ripristino di un backup differenziale, il processo è leggermente più complesso. Prima di tutto, è necessario ripristinare il primo backup completo, come descritto in precedenza. Successivamente, si procede con tutti i backup differenziali successivi, rispettando l'ordine cronologico. Inoltre, in questo caso è necessario utilizzare l'opzione '''-w''', che permette di sovrascrivere eventuali file già esistenti; ciò consente di sovrascrivere, man mano che si procede con i backup differenziali, le versioni precedenti dei file con quelle più recenti. Supponendo di aver ripristinato '''home_backup''', si può quindi ripristinare '''home_backup_2''' con il seguente comando:{{{ |
| Linea 191: | Linea 175: |
| Questo è il comando necessario per il ripristino del backup differenziale.. Ve l'immaginavate più difficile, vero? === Ripristino Parziale === Ora, qualcosa di più specifico: supponiamo che avete cancellato, per errore, quella foto di Lili Evangel.... quel documento importantissimo di cui non potevate farne a meno. Potete ripristinare ovviamente il backup che avevate effettuato il giorno prima. Tuttavia, il ripristino è totale, cioè dovrebe ripristinare intere cartelle per un singolo file. Non può essere più veloce la cosa? Effettivamente si, ed aggiungo che si ottiene questo risultato molto più rapidamente del comando tar, dato che dar è progettato per un accesso casuale sui dati, invece che sequenziale (ricordate? Il comando è fatto per i dischi, non per i nastri). Semplicemente, occorre specificare il pattern del file da ripristinare: {{{ |
Questo è il comando necessario per il ripristino del backup differenziale. == Ripristino parziale == === Singolo file === Per ripristinare un singolo file, DAR si dimostra superiore a [[AmministrazioneSistema/BackupDelSistema/BackupConTar|tar]] grazie al suo accesso casuale, che consente un ripristino molto più veloce. Per estrarre il file, è necessario specificarlo nella [[AmministrazioneSistema/Terminale|riga di comando]], digitando:{{{ |
| Linea 201: | Linea 185: |
| }}} * '''-I''' questa opzione permette di specificare pattern di files (NON di directory), che devono essere inclusi nell'operazione. Nel caso di un ripristino, vengono recuperati i file che soddisfano il pattern, tralasciando tutti gli altri; in questo caso specifico si è utilizzato come pattern un nome di file, ma potevano esserci ovviamente delle wildcards ( * e ? ) o delle espressioni regolari. Inoltre, si possono usare più istanze di -I nello stesso comando. Questo vi evita di estrarre ogni volta tutti i files, il che è particolarmente utile: infatti, vi capiterà molto più spesso di quanto immaginiate (una volta che ne avete la possibilità), recuperare vecchi files, invece di intere directory dovute alla distruzione del disco. Se invece avete cancellato una directory, potete ripristinarla interamente con il seguente comando {{{ |
}}}L'opzione '''-I''' permette di specificare pattern di file (__non__ di directory) da includere nell'operazione. In fase di ripristino, vengono recuperati i file che soddisfano il pattern, tralasciando tutti gli altri. Nell'esempio, è stato utilizzato un nome di file, ma sono supportate anche wildcard (`*` e `?`) o espressioni regolari. È possibile utilizzare più istanze di `-I` nello stesso comando. I file vengono ripristinati da qualsiasi livello di nidificazione della struttura della directory. === Una sola directory === Se invece è necessario ripristinare una directory, il comando da digitare è il seguente:{{{ |
| Linea 211: | Linea 193: |
| * '''-g''' questa opzione serve per ripristinare specifiche directory del backup. Anche in questo caso si possono usare più istanze dell'opzione per ripristinare più directory con un'unico comando. Combinando -I e -g, potete ripristinare tutto quello che volete in un unico comando, e questo è veramente utile in moltissimi casi; analogamente, esistono delle opzioni che fanno il contrario, utili in altri casi: * '''-P''' l'abbiamo già visto: ignora determinate directory in fase di creazione del backup, e funziona anche per il ripristino. Se usato, effettua un ripristino completo escludendo queste specifiche directory. Si può usare, ad esempio, quando vogliamo eseguire un ripristino della home, ma non vogliamo che le cartelle di configurazione dei programmi vengano modificate. * '''-X''' diale di -I, esclude determinati files, esprimibili anche come espressioni regolari. In questo caso si ripristinano tutti i files tranne quelli specificati da questa opzione. Combinando opportunamente queste quattro opzioni, potete ripristinare solo quello che avete perso, con grande precisione. === Opzioni ausiliari === Ci sono almeno due opzioni interessanti ed utili, da effettuare su di un backup. La prima cosa importante, dopo aver creato un backup e salvato nella posizione più opportuna, consiste nel testarlo. La magia si effettua mediante l'opzione '''-t''' {{{ dar -t /media/disco/backup_dar }}} In questo caso, bisogna specificare il path del backup, assieme al nome che, come al solito, deve essere privo di numero di slice e di estensione. Questo comando verifica l'integrità del backup, ed avvisa se ci sono stati problemi, ed in quale file. Un'altra opzione consiste nel mostrare il contenuto di un backup, e questo si ottiene mediante l'utilizzo dell'opzione '''-l''' {{{ dar -l /media/disco/backup_dar }}} Quello che otterrete è una lista dei file backuppati. Di solito è utile metterlo in pipe a Grep per poter estrarre la lista dei file che si vuole, oppure reindirizzare il suo output in un file, da analizzare dopo con calma, dato che comunque, a seconda del backup, il numero di file elencati può essere spropositato. == Script == === Automazione === Come ho già detto, un vantaggio notevole di dar (come di molti altri programmi che lavorano da terminale), è quello di poter automatizzare qualsiasi cosa voi vogliate tramite degli script. Creeremo, adesso, uno script che permette di automatizzare il processo di backup, andando a creare un backup completo, e poi vari backup differenziali. Passato un determinato numero di giorni, si procede alla creazione di un nuovo backup completo e così via, per evitare di avere troppi backup differenziali nel nostro disco. Dato che lo script serve ad automatizzare il tutto, sarà privo di opzioni a riga di comando, andando a personalizzarlo nelle opzioni. Ovviamente, niente vi vieta di modificare lo script per renderlo più interattivo, se la cosa vi aggrada. Questo script ha ancora alcune limitazioni: ad esempio, non cancella il precedente backup quando il successivo completo viene eseguito (ovviamente dopo la verifica), quindi dovrete cancellare a mano i backup precedenti (o modificare questo a vostro piacere). Un altro difetto consiste in un messaggio di avvertimento nel caso in cui due backup completi successivi vengono eseguiti nello stesso giorno. In questo caso, infatti, la cartella avrà il medesimo nome, e ci sarà un warning per quanto riguarda la sovrascrittura. Per il resto, è pienamente funzionante, basta che andiate, come già detto, a modificare le variabili come più vi aggrada. {{{ #/bin/sh ######################### # SCRIPT BACKUP CON DAR # ######################### # Questo script vi permette di creare dei backup # personalizzati utilizzando il comando dar, più # versatile rispetto a tar per quanto riguarda il # backup su disco invece che su nastro. # Lo script è creato in maniera non-interattiva, per # permetterne l'integrazione con cron. # # Lo script crea, nella cartella in cui si effettua il # backup, varie sottocartelle, ognuna contenente un backup, # sia esso differenziale o completo. Questo perchè ogni backup # può essere formato da diversi files, e questo ne aumenta # l'organizzazione, anche se ci fermiano ad un livello per non # complicare troppo le cose. ### CONFIGURAZIONE ### # Cartella di cui effettuare il backup HOME_DIR=/home/daniele/daBackuppare # Percorso in cui andremo ad effettuare il backup BACKUP_DIR=/media/disco_backup/cartella_backup # Nome base del file di backup BACKUP_NAME=dar_backup # Dimensione massima di uno slice BACKUP_SLICE_SIZE=600M # Suffisso per il backup completo BACKUP_COMPLETE_SUF="_comp" # Suffisso per il backup differenziale BACKUP_DIFFERENTIAL_SUF="_diff" # Numero di backup (totale+differenziali), prima della # creazione del successivo backup completo BACKUP_INTERVAL=3 # Testare il backup BACKUP_TEST="yes" # Lista di path da escludere dal backup EXCLUDED_PATH[0]=Temp EXCLUDED_PATH[1]=Compilare EXCLUDED_PATH[2]=Download # Conservare i percorsi delle directory escluse dal backup # L'array precedente specifica che non deve essere effettuato # il backup dei file contenuti in queste directory, ma a volte # è utile conservare la gerarchia, per evitare di doverle rifare # a mano INCLUDE_EXCLUDED_PATH="no" # Lista dei pattern di file da escludere EXCLUDED_FILE_PATTERN[0]="*.tmp" EXLUDED_FILE_PATTERN[1]="~*" # Utilizzare la compressione durante il backup USE_COMPRESSION="yes" # Tipo di compressione: scegliere fra gzip oppure bzip2 COMPRESSION_TYPE="bzip2" # Livello di compressione: 0-9 COMPRESSION_LEVEL=6 # Dimensione minima di un file per dover essere compresso COMPRESSION_MINIMUM_FILE_SIZE=512 # Modalità verbose VERBOSE="yes" # Pattern dei files da non comprimere NOT_COMPRESSED_FILES[0]="*.mp3" NOT_COMPRESSED_FILES[1]="*.jpg" NOT_COMPRESSED_FILES[2]="*.zip" NOT_COMPRESSED_FILES[3]="*.rar" NOT_COMPRESSED_FILES[4]="*.png" NOT_COMPRESSED_FILES[5]="*.gz" NOT_COMPRESSED_FILES[6]="*.gzip" ### ESECUZIONE DELLO SCRIPT ### # Analizziamo il contenuto della cartella di backup, per # contare il numero di backup differenziali, se ce ne sono, # e decidere se creare un backup completo o differenziale. # Contiamo il numero di directory di backup NUM_DIR=`ls -F ${BACKUP_DIR} | grep -c ${BACKUP_NAME}.*./` # Calcoliamo il modulo fra il numero di directory di backup # e quelle necessarie al prossimo backup completo let "MOD=$NUM_DIR % BACKUP_INTERVAL" # Se questo valore è pari a 0, o non esiste il backup # oppure abbiamo raggiunto il limite dei backup differenziali # per cui dobbiamo creare un backup completo # altrimenti creiamo il suffisso del backup differenziale # con il numero associato if [[ $MOD = "0" ]] then SUF=${BACKUP_COMPLETE_SUF} else SUF=${BACKUP_DIFFERENTIAL_SUF}_${MOD} DIFF_OPTION=`ls ${BACKUP_DIR} | grep ${BACKUP_NAME}.*.${BACKUP_COMPLETE_SUF} | tail --lines=1` fi # Path completo della directory di backup BACKUP_COMPLETE_PATH=$BACKUP_DIR/${BACKUP_NAME}_`date -I`${SUF} # creazione della directory di backup mkdir $BACKUP_COMPLETE_PATH # Esecuzione del backup con tutte le opzioni del caso dar \ -R ${HOME_DIR} \ -c ${BACKUP_COMPLETE_PATH}/${BACKUP_NAME}_`date -I`${SUF} \ -s ${BACKUP_SLICE_SIZE} \ `if [[ ${USE_COMPRESSION} = "yes" ]] then if [[ ${COMPRESSION_TYPE} = "bzip2" ]] then echo -y${COMPRESSION_LEVEL} else echo -z${COMPRESSION_LEVEL} fi for i in "${NOT_COMPRESSED_FILES[@]}" do echo -Z $i done fi` \ `if [[ ${VERBOSE} = "yes" ]] then echo -v fi` \ `if [[ ${INCLUDE_EXCLUDED_PATH} = "yes" ]] then echo -D fi` \ `for i in "${EXLUDED_PATH[@]}" do echo -P $i done` \ `for i in "${EXCLUDED_FILE_PATTERN[@]}" do echo -X $i done` \ `if [[ ${MOD} -ne "0" ]] then echo -A ${BACKUP_DIR}/${DIFF_OPTION}/${DIFF_OPTION} fi` # Test del backup if [[ $BACKUP_TEST="yes" ]] then dar -t ${BACKUP_COMPLETE_PATH}/${BACKUP_NAME}_`date -I`${SUF} fi }}} Lo script non è completo, in quanto mancano alcun cose che potrebbero risultare importanti: per esempio, manca la verifica della creazione della directory di backup, per evitare di creare il backup quando, per esempio, il disco non è stato collegato; sarebbe da implementare anche una funzione per eliminare il vecchio backup quando se ne crea uno nuovo completo. Un problema relativamente meno importante, invece, consiste nel fatto che, se si crea un backup completo nello stesso giorno del precedente, la cartella dove vengono salvati ha lo stesso nome e c'è un problema di sovrascrittura dei dati. A parte questi problemi (che spero di risolvere al più presto), lo script è funzionante per cui, personalizzate le opzioni ed usatelo per il backup. Per il recupero dei dati, invece, nessuno script, almeno per adesso, perchè l'estrazione, usando le opzioni '''-I''' e '''-g''', come abbiamo visto prima, è relativamente semplice. Se volete, potete creare uno script per evitare di introdurre a mano i path di backup, ma è meno faticoso scrivere il comando che creare lo script con il numero variabili d'argomenti. Ricordate solamente che, per un ripristino differenziale, bisogna prima ripristinare il file dal backup completo, e poi da quello differenziale. A presto per ulteriori aggiornamenti. |
* L'opzione '''-g''' serve per ripristinare specifiche directory del backup. Anche in questo caso, è possibile utilizzare più istanze dell'opzione per ripristinare più directory con un unico comando. * Combinando `-I` e `-g`, è possibile ripristinare qualsiasi elemento desiderato in un unico comando, il che risulta estremamente utile in molteplici scenari. Analogamente, esistono anche opzioni che permettono l'esclusione di elementi, utili in altri casi: * L'opzione '''-P''' (già trattata) ignora determinate directory in fase di creazione del backup e funziona anche per il ripristino. Se utilizzata in fase di ripristino, effettua un ripristino completo escludendo le directory specificate. È utile, ad esempio, quando si desidera eseguire un ripristino della home ma non si vuole che le cartelle di configurazione dei programmi vengano modificate. * L'opzione '''-X''', duale di `-I`, esclude dal ripristino determinati file, esprimibili anche come espressioni regolari. Combinando opportunamente queste quattro opzioni, è possibile ripristinare solo ciò che è stato perso, con grande precisione. = Ulteriori risorse = * [[http://dar.linux.free.fr/|Sito ufficiale del progetto]] * [[http://dar.linux.free.fr/doc/mini-howto/dar-differential-backup-mini-howto.it.html|Tutorial in italiano]] ---- CategoryAmministrazione |
Guida verificata con Ubuntu: 22.04 24.04
Problemi in questa pagina? Segnalali in questa discussione
Introduzione
DAR, acronimo di Disk ARchive, è un programma utile per la creazione e il ripristino di backup del sistema.
Installazione
Installare il pacchetto dar.
È possibile utilizzare il software tramite un'interfaccia grafica, denominata dargui, disponibile al seguente indirizzo.
Operazioni di backup
Per creare una copia di sicurezza dei dati personali presenti in ~/dati_del_backup, è possibile utilizzare il comando dar con una sintassi simile alla seguente:
dar -c <nomefile> -R ~/dati_del_backup
Di seguito una breve spiegazione delle opzioni utilizzate:
Sintassi opzioni |
|
Opzione |
Risultato |
-c <nomefile> |
Crea il backup e assegna il nome specificato. Al termine dell'operazione, all'interno del percorso corrente verrà creato un file con nome backup.1.dar. |
-R |
Specifica la cartella da copiare. |
-s |
Specifica la dimensione di ogni porzione di backup. |
-Z |
Specifica i file da non comprimere. |
-P |
Percorso relativo da escludere dal backup. |
-D |
Ripristina un backup includendo le cartelle vuote. |
-p |
Inserisce una pausa tra la creazione di una porzione e l'altra. |
-E cmd |
Esegue il comando specificato in cmd tra la creazione di una porzione e l'altra. |
-y |
|
-z |
Attiva la compressione gzip. |
Assicurarsi che il percorso corrente sia diverso da quello della cartella da copiare e che non contenga la directory di destinazione stessa. In tal caso, escludere la directory di destinazione tramite l'opzione dedicata, discussa più avanti.
Il risultato del comando precedente sarà simile al seguente:
-------------------------------------------- 130 inode(s) saved with 0 hard link(s) recorded 0 inode(s) changed at the moment of the backup 0 inode(s) not saved (no inode/file change) 0 inode(s) failed to save (filesystem error) 0 inode(s) ignored (excluded by filters) 0 inode(s) recorded as deleted from reference backup -------------------------------------------- Total number of inode considered: 130 -------------------------------------------- EA saved for 0 inode(s) --------------------------------------------
Backup parziale
Per eseguire un backup contenente solo specifiche directory o file, Dar utilizza le opzioni -I (per includere file) e -g (per includere directory) in fase di creazione del backup.
Backup di un singolo file
Per creare un backup contenente solo un file specifico, ad esempio documenti/relazione.odt, si può usare il seguente comando:
dar -c backup_parziale_file -R ~/mie_risorse -I "documenti/relazione.odt"
L'opzione -I specifica il percorso esatto del file da includere nel backup. È importante notare che il percorso specificato con -I è relativo alla directory indicata da -R. È possibile usare anche caratteri jolly (wildcard) o espressioni regolari con -I. Ad esempio, per includere tutti i file .jpg dalla directory foto:
dar -c backup_foto_jpg -R ~/mie_risorse -I "foto/*.jpg"
Backup di una singola directory
Per creare un backup che includa solo una o più directory specifiche, si usa l'opzione -g. Ad esempio, per fare il backup della sola directory documenti (e tutto il suo contenuto):
dar -c backup_documenti -R ~/mie_risorse -g "documenti"
L'opzione -g specifica la directory da includere. Il percorso è relativo alla directory specificata con -R.
È possibile utilizzare più istanze di -g nello stesso comando per includere più directory:
dar -c backup_doc_foto -R ~/mie_risorse -g "documenti" -g "foto"
Combinazione di inclusione ed esclusione
È possibile combinare le opzioni -I e -g con le opzioni di esclusione (come -X o -P) per un controllo granulare. Ad esempio, per includere una directory ma escludere un certo tipo di file al suo interno:
dar -c backup_documenti_no_pdf -R ~/mie_risorse -g "documenti" -X "*.pdf"
In questo caso, -g "documenti" include l'intera directory documenti, mentre -X "*.pdf" esclude tutti i file con estensione .pdf all'interno delle directory incluse.
Dar offre molta flessibilità per personalizzare i backup, permettendo di includere o escludere file e directory in base a precise esigenze.
Backup differenziale
La creazione dei backup differenziali è una delle operazioni fondamentali in una strategia di backup.
Questi backup sono importanti perché permettono di risparmiare moltissimo spazio, memorizzando solamente le differenze tra un backup precedente e quello attuale. Se, per esempio, sono presenti grosse porzioni della directory che restano invariate (es. collezione MP3 e foto), queste non verranno memorizzate nuovamente nel backup successivo.
Lo svantaggio consiste nel fatto che, per il ripristino completo, oltre al backup differenziale, sarà necessario anche il backup precedente e così via, fino all'ultimo backup completo.
Dal punto di vista del backup, un backup differenziale ha una sintassi praticamente uguale a quella del backup completo analizzato finora.
L'unica differenza è l'aggiunta di un'opzione:
dar -c /media/disco_temporaneo/home_backup_2 -R /home/daniele -s 4G -Z "*.jpg" -Z "*.mp3" -P .Trash -P Download -D -y -A /media/disco_backup/home_backup
Sintassi opzioni |
|
Opzione |
Risultato |
-A |
Con questa opzione si specifica la posizione dell'ultimo backup eseguito (completo o differenziale). Il programma analizzerà il backup e considererà esclusivamente le modifiche. |
Se il backup precedente è diviso in più slices, è necessario indicare il percorso della prima o dell'ultima slice (sempre senza specificare .numero.dar alla fine del file). Questo perché queste due slices contengono un riassunto dell'intero backup, chiamato catalogo.
È consigliabile adottare una metodologia per rinominare i backup in modo sensato, per comprenderne la sequenza; solitamente, includere la data nel nome del backup è un metodo efficace per mantenere l'ordine. Una nomenclatura regolare permette anche di agevolare un eventuale script di ripristino, poiché facilita la creazione di script di ripristino automatizzati, permettendo al sistema di gestire il processo in modo ordinato.
Opzioni ausiliarie
Sono disponibili alcune opzioni utili da eseguire su un backup.
Una prima operazione importante, dopo aver creato un backup e salvato in una posizione appropriata, consiste nel verificarne l'integrità. A tale scopo, con Dar si utilizza l'opzione -t:
dar -t /media/disco/backup_dar
In questo caso, è necessario specificare il percorso del backup, incluso il nome base, che non deve includere il numero di slice né l'estensione. Questo comando verifica l'integrità del backup e segnala eventuali problemi e i file interessati.Un'altra opzione consente di mostrare il contenuto di un backup, e ciò si ottiene utilizzando l'opzione -l:
dar -l /media/disco/backup_dar
Si ottiene un elenco dei file presenti nel backup. È spesso utile indirizzare l'output tramite una 'pipe' a grep per filtrare l'elenco dei file, oppure reindirizzare l'output in un file per un'analisi successiva e più approfondita, poiché, a seconda della dimensione del backup, il numero di file elencati può essere molto elevato.
Script
Un vantaggio notevole di Dar (come molti altri programmi che operano da terminale) risiede nella possibilità di automatizzare il lavoro tramite script.
Scaricare lo script proposto, che permette di automatizzare il processo di backup, creando un backup completo e successivamente vari backup differenziali. Dopo un determinato numero di giorni, si procede alla creazione di un nuovo backup completo, per evitare un numero eccessivo di backup differenziali sul disco.
Lo script presentato ha alcune limitazioni:
- non cancella il precedente backup quando il successivo completo viene eseguito (ovviamente dopo la verifica); è quindi necessario cancellare manualmente i backup precedenti (o modificare lo script secondo le proprie esigenze).
- un messaggio di avvertimento nel caso in cui due backup completi successivi vengano eseguiti nello stesso giorno. In questo caso, infatti, la cartella avrà il medesimo nome e si verificherà un avvertimento per quanto riguarda la sovrascrittura.
Per il recupero dei dati, invece, non viene fornito uno script, perché l'estrazione, usando le opzioni -I e -g, come illustrato in precedenza, è relativamente semplice. È possibile creare uno script per evitare l'introduzione manuale dei percorsi di backup; tuttavia, spesso risulta meno oneroso scrivere il comando direttamente anziché creare uno script con un numero variabile di argomenti. Inoltre, il ripristino non necessita di essere automatizzato, poiché deve essere eseguito solo quando effettivamente richiesto.
Ripristino
È importante ricordare che, per un ripristino differenziale, è necessario ripristinare i file prima dal backup completo e successivamente da quello differenziale.
Per ripristinare il backup creato nell'esempio precedente, è sufficiente utilizzare un comando simile al seguente:
dar -x backup
L'opzione -x specifica il percorso del file di backup da estrarre. Il backup viene ripristinato nella directory corrente. In alternativa, è possibile specificare un percorso alternativo utilizzando l'opzione -R, come nell'esempio seguente:
dar -x backup -R ~/prova
Il backup creato precedentemente viene ripristinato in ~/prova. Il risultato del comando precedente sarà simile al seguente:
-------------------------------------------- 130 inode(s) restored 0 inode(s) not restored (not saved in archive) 0 inode(s) ignored (excluded by filters) 0 inode(s) less recent than the one on filesystem 0 inode(s) failed to restore (filesystem error) 0 inode(s) deleted -------------------------------------------- Total number of inode considered: 130 -------------------------------------------- EA restored for 0 inode(s) --------------------------------------------
Ripristino differenziale
Per il ripristino di un backup differenziale, il processo è leggermente più complesso. Prima di tutto, è necessario ripristinare il primo backup completo, come descritto in precedenza. Successivamente, si procede con tutti i backup differenziali successivi, rispettando l'ordine cronologico. Inoltre, in questo caso è necessario utilizzare l'opzione -w, che permette di sovrascrivere eventuali file già esistenti; ciò consente di sovrascrivere, man mano che si procede con i backup differenziali, le versioni precedenti dei file con quelle più recenti.
Supponendo di aver ripristinato home_backup, si può quindi ripristinare home_backup_2 con il seguente comando:
dar -x /media/disco_temporaneo/home_backup_2 -R /home/daniele -w
Questo è il comando necessario per il ripristino del backup differenziale.
Ripristino parziale
Singolo file
Per ripristinare un singolo file, DAR si dimostra superiore a tar grazie al suo accesso casuale, che consente un ripristino molto più veloce.
Per estrarre il file, è necessario specificarlo nella riga di comando, digitando:
dar -x /media/disco_temporaneo/home_backup -I "Evangeline.jpg"
L'opzione -I permette di specificare pattern di file (non di directory) da includere nell'operazione. In fase di ripristino, vengono recuperati i file che soddisfano il pattern, tralasciando tutti gli altri. Nell'esempio, è stato utilizzato un nome di file, ma sono supportate anche wildcard (* e ?) o espressioni regolari. È possibile utilizzare più istanze di -I nello stesso comando. I file vengono ripristinati da qualsiasi livello di nidificazione della struttura della directory.
Una sola directory
Se invece è necessario ripristinare una directory, il comando da digitare è il seguente:
dar -x /media/disco_temporaneo/home_backup -g directory
L'opzione -g serve per ripristinare specifiche directory del backup. Anche in questo caso, è possibile utilizzare più istanze dell'opzione per ripristinare più directory con un unico comando.
Combinando -I e -g, è possibile ripristinare qualsiasi elemento desiderato in un unico comando, il che risulta estremamente utile in molteplici scenari. Analogamente, esistono anche opzioni che permettono l'esclusione di elementi, utili in altri casi:
L'opzione -P (già trattata) ignora determinate directory in fase di creazione del backup e funziona anche per il ripristino. Se utilizzata in fase di ripristino, effettua un ripristino completo escludendo le directory specificate. È utile, ad esempio, quando si desidera eseguire un ripristino della home ma non si vuole che le cartelle di configurazione dei programmi vengano modificate.
L'opzione -X, duale di -I, esclude dal ripristino determinati file, esprimibili anche come espressioni regolari.
Combinando opportunamente queste quattro opzioni, è possibile ripristinare solo ciò che è stato perso, con grande precisione.
