Esistono diversi metodi per effettuare dei backup con Linux. Tra questi vi sono gli strumenti da riga di comando, presenti in ogni distribuzione Linux, come "dd", "dump", "cpio" e "tar". Sono inoltre disponibili altre utilità in modalità testo come "Amanda" e "Taper", progettati per offrire una comoda interfaccia-utente per le operazioni di backup e restore. Ci sono poi utilità con interfaccia grafica come "KDat" e quelle commerciali come "BRU" e "PerfectBackup+". Ognuna di queste soluzioni vi permetterà di mettere al sicuro i vostri dati.
Potete trovare una breve lista degli strumenti disponibili, con informazioni su dove reperirli, su "Linux Applications and Utilities Page" all'indirizzo http://www.xnet.com/~blatura/linapp2.html#back. Quando decidete di effettuare un backup, dovreste considerare questi fattori:
Portabilità - Se per voi è importante la portabilità (cioè la possibilità di effettuare un backup su una distribuzione Linux o su una implementazione di Unix e, poi, fare il restore su un'altra, ad esempio, da Solaris a Linux Red Hat) probabilmente dovreste scegliere uno degli strumenti da riga di comando (es. "dd", "dump", "cpio", o "tar"), per il semplice fatto che essi saranno disponibili su ogni sistema *nix.
Backup automatici - Se ritenete importate che i backup vengano fatti in automatico, ad intervalli di tempo regolari, senza alcuni intervento umano allora dovreste scegliere uno strumento che vi permette di fare tutto ciò.
Interfacce user-friendly - Se per voi è importante avere un qualche tipo d'interfaccia, sia essa testuale o grafica, allora le utilità commerciali offrono quelle più semplice e anche il supporto tecnico.
Remote backups - è importante per voi avere la possibilità di effettuare backup e restore da remoto? Se si, allora dovreste optare per uno strumento a riga di comando oppure utilità in modalità testuale, invece di quelle con interfaccia grafica (a meno che non abbiate una connessione veloce e la possibilità di lanciare sessioni di X da remoto).
Network backups - Dovete effettuare backup e restore su una rete? Allora, probabilmente, dovreste scegliere una delle utilità da riga di comando (come "tar") che supporta l'accesso di rete ai dispositivi di backup, oppure strumenti specializzati in questo come "Amanda" o altri strumenti commerciali.
Media types - I backup possono essere immagazzinati su diversi media, come nastri, un altro hard-disk, ZIP drives o su CD masterizzabili. In questo caso dovreste confrontare i costi con l'affidabilità, la capacità di memorizzazione e la velocità di trasferimento.
Quando fate un backup del vostro file system, non includete lo pseudo-filesystem "/proc". I file in "/proc" non sono file veri e propri, ma semplicemente dei link che descrivono e puntano alle strutture-dati del kernel. Fare il backup di un file come "/proc/kcore" che è uno pseudo-file con l'intero contenuto della vostra memoria, è solo un spreco di spazio secondo me! :-) Dovreste, inoltre, evitare di fare il backup del file system "/mnt", a meno che non vogliate fare il backup dei file del CD-ROM, floppy disk, file di rete condivisi, o di altri dispositivi montati. |
Ovviamente, le procedure per effettuare un backup ed un restore differiscono, a seconda delle vostre scelte. Comunque, in questa sezioni, vi mostrerò come effettuare dei backup con gli strumenti che uso maggiormente, cioè "tar" (che sta per "Tape Archiver") che funziona a riga di comando e permette la portabilità tra i vari sistem *nix; e poi "KDat", un utilità con interfaccia grafica presente in KDE (si veda la Sezione 5.6 per maggiori informazioni su KDE).
In ultimo, aggiungo che anche se lo strumento che avete scelto non offre la possibilità di effettuare backup automatici ogni tot tempo, potete utilizzare cron. Si veda la Sezione 9.4 per maggiori dettagli sull'uso di cron.
Se decidete di usare "tar" per i vostri backup, avrete bisogno di un po' di tempo per studiare tutte le varie opzioni disponibili; digitate "man tar" per vedere la lista. Avrete inoltre bisogno di sapere come accedere ai media; sebbene tutti i dispositivi sono trattati come file nel mondo Unix, se volete scrivere su un nastro, il nome del "file" è il nome del dispositivo stesso (es. "/dev/nst0" per un tape-drive SCSI).
Il seguente comando effettuerà un backup dell'intero sistema Linux sul file system "/archive/", ad eccezione dello pseudo file-system "/proc/" e di ogni file-system montato in "/mnt/", il file system "/archive/" (non è il caso di fare il backup del backup stesso), e i file di cache di Squid (che secondo me sono non sono necessari):
tar -zcvpf /archive/full-backup-`date '+%d-%B-%Y'`.tar.gz \ --directory / --exclude=mnt --exclude=proc --exclude=var/spool/squid . |
Non fatevi intimorire dalla lunghezza del comando appena descritto! Dopo averlo scomposto nei suoi elementi, vedrete la bellezza e la potenza di questa utilità.
Il comando prevede l'opzione "z" (compresso; i dati di backup verranno compressi con "gzip"), "c" (crea; crea un nuovo archivio), "v" (verboso; mostra la lista dei file di qui viene fatto il backup), "p" (mantieni i permessi; le informazioni per la protezione dei file verranno "ricordate" per quando poi farete il restore). L'opzione "f" (file indica che il prossimo argomento sarà il nome del file di archivio che sta per essere scritto. Notate come per creare un file con la data corrente, basta includere il comando "date". Una convenzione comune è quella di aggiungere il suffisso "tar" per archivi non compressi, e "tar.gz" per quelli compressi.
L'opzione "--directory" indica a tar di andare alla directory specificata ("/" nell'esempio) prima di iniziare il backup. L'opzione "--exclude" dice a tar di non includere nel backup le directory o i file specificati. In ultimo, il carattere "." dice a tar di fare il backup di tutto il contenuto della directory corrente.
È importante capire che le opzione sono cAsE-sEnSiTiVe! Inoltre, molte delle opzioni possono essere specificate o con un singolo carattere (es. "f") o col nome completo dell'opzione (es. "file"). In caso di singola lettere bisogna anteporre il carattere "-", invece "--" nel caso di nome completo. Comunque guardate le pagine "man" per informazioni sull'uso di tar. |
Un altro esempio, questa volta scrivendo solo specificati file-system (invece di scriverli tutti con le eccezioni, come dimostrate nell'esempio sopra) su un tape-drive SCSI:
tar -cvpf /dev/nst0 --label="Backup set created on `date '+%d-%B-%Y'`." \ --directory / --exclude=var/spool/ etc home usr/local var/spool |
Nel comando sopra, l'opzione "z" (compresso) non viene usata. È caldamente raccomandato di non scrivere dati compressi su nastro, perché se i dati presenti su una porzione del nastro si danneggiano, perderete il vostro intero backup. Comunque, file d'archivio scritti senza compressione hanno un alto grado di recuperabilità, anche se porzione dell'archivio sono danneggiate.
Il dispositivo "/dev/nst0" non viene riavvolto dopo un backup. Quindi è possibile scrivere più backup su un solo nastro.(Potete riferirvi al dispositivo come "/dev/nst0", nel qual caso il nastro sarà automaticamente riavvolto al termine della scrittura del backup). |
Dato che non possiamo specificare un filename per il backup, l'opzione "--label" può essere usato per scrivere alcune informazioni su backup nel file d'archivio stesso.
Infine, solo i file contenuti in "/etc/", "/home/", "/usr/local" e "/var/spool/" (ad eccezione dei file di cache di Squid) verranno scritti sul nastro.
Potete usare i seguenti comandi per riavvolgere e poi espellere un nastro:
mt -f /dev/nst0 rewind mt -f /dev/nst0 offline |
Suggerimento: Avrete notato che il carattere "/" (slash) viene eliminato da tar quando un file d'archivio viene creato. Questo è il modo predefinito per tar, e serve ad impedire che voi sovrascriviate file critici con versioni più vecchie di essi. Potreste recuperare il file sbagliato nel processo di restore. Se proprio non vi piace potete specificare l' opzione "--absolute-paths", che manterrà gli slash. Comunque vi raccomando di non farlo, perché è pericoloso! |
Se state usando KDE, credo che troverete molto utile e amichevole l'utilità "KDat". Anche perché, utilizza "tar" come motore. Quindi, i backup scritti con KDat possono essere letti sia con KDat stesso e sia con tar!! Questo fa di KDat un'ottima scelta.
Suggerimento: Anche se scegliete di non usare o installare il pacchetto completo di KDE, potete sempre utilizzare KDat, sempre che abbiate installate le librerie Qt. |
La prima volta che eseguirete il programma KDat, avrete bisogno di creare un profilo di backup. Tale profilo indica a KDat quali file del vostro sistema volete includere nel backup. Se volete, potete creare più di un profilo, a seconda delle vostre esigenza (per esempio, potete creare un profilo chiamato "Full Backup" per un backup completo del sistema, e "Quick Backup" per il backup dei soli file degli utenti).
Per creare un profilo, scegliete "Create Backup Profile" dal menu "File" (oppure cliccate con il tasto destro sulla cartella "Backup Profiles" e scegliete "Create Backup Profile". Sul lato destro della finestra di KDat potete impostare diverse cose, come il nome del profilo, il nome dell'archivio, le opzione per tar, ecc. Cliccate sul menu "Help" per aver maggiori informazioni su tutte le varie impostazioni.
Per specificare quali file devono essere inclusi nel profilo, cliccate con il tasto sinistro sulla casella accanto alla cartella della directory "/". Questo permetterà di aggiungere al backup tutti i file della directory. Poi, cliccate sul piccolo "+" accanto alla cartella. Ciò permetterà di espandere la cartella, mostrando una lista di file. Potrete, in tal modo, escludere dal backup qualunque file; cliccate semplicemente con il tasto sinistro sulla casella accanto al file o directory che volete escludere. Per esempio, un backup completo avrà tutti i file e tutte le directory spuntate, ad eccezione di "/proc" (uno pseudo file system che contiene informazioni sul vostro sistema), "/mnt" (una directory dove di solito sono montati i lettori CD-ROM, di dischetti e le risorse di rete), e, se usate Squid, "/var/spool/squid" (i file di cache di Squid). Dopo aver selezionato i file giusti, cliccate sul profilo di backup che state creando e poi, sempre con tasto sinistro, sul bottone "Files >>" per spostare la lista dei file selezionati direttamente nel vostro profilo.
Se i dati da memorizzare del vostro server dovessero eccedere la capienza del supporto che avete scelto per archiviare i dati, dovrete creare profili di backup separati, uno per ogni parte del vostro backup. |
Per fare il backup, inserite un nastro nel drive e scegliete "Mount Tape" dal menu "File" (oppure cliccate sull'icona a forma di nastro). Ciò "monterà" il nastro (in verità, poiché non è possibile montare tale dispositivo, quello che fa KDat è riavvolgere il nastro, cercare di leggere le informazioni nell'header, e in caso di successo, trovare il tape index sul vostro hard-disk. Altrimenti, KDat vi chiederà di formattare il nastro.
Se KDat continua a lamentarsi che non c'è il nastro nel drive e invece c'è, assicuratevi di aver selezionato correttamente il nome del dispositivo tra le preferenze; cliccate su "Edit" nel menu e scegliete "User Preferences". |
Fatto questo, prima di iniziare il backup dovete prima scegliere il profilo che volete usare. Per avviare il backup, cliccate con il tasto destro sul profilo desiderato, e poi con il tasto sinistro sull'opzione "Backup". KDat vi mostrerà prima una finestra di dialogo con i dettagli del profilo che avete selezionato; cliccate su "Ok" per avviare il backup.
Con il backup in corso, KDat mostrerà una finestra di dialogo con alcune informazioni statistiche (tempo trascorso, dimensioni del backup, tempo stimato per il completamento, altre al numero di file e i byte totali scritti), e i file che man mano vengono aggiunti al backup. Per fare un backup completo, con diversi Gb di dati, possono volerci diverse ore. Se volete, potete cliccare, in qualsiasi momento, sul bottone "Abort" per interrompere il backup.
Una volta completato il backup, potete smontare il nastro scegliendo "Edit" dal menu, e quindi "Unmount Tape", oppure cliccare sull'icona a forma di nastro, che lo riavvolgerà e poi lo espellerà.