|
tar -cvf nomearchivio.tar <files
o directory> |
|
Sintassi comunemente utilizzata
per creare un nuovo archivio. |
tar -xvf nomearchivio.tar |
|
Sintassi comunemente utilizzata per estrarre
un archivio. |
tar -tvf nomearchivio.tar |
|
Con l'opzione -t elenca il contenuto dell'archivio
evitando la decompressione dello stesso |
tar -c / |
|
Un breve comando copiare per creare un tar
dell'intero file system. |
tar -c 'find / -mtime -1 ! -type
d -print' |
|
Esempio di un semplice script che esegue
il backup solo dei file modificati nell'ultimo giorno. Vengono
escluse le directory intere. |
tar -xp nome.tar /home/pippo/file.doc |
|
Estrae da nome.tar solo il file /home/pippo/file.doc,
mantenendone gli attributi. |
|
|
E' possibile creare direttamente un archivio tar comprimendolo
in formato gz tramite la seguente riga di comando tar -zcvf
Alcuni strumenti gratuiti di backup sotto Linux:
tar, cpio, taper, rsync, afbackup amanda.
Alcuni software commerciali:
BRU, Arkeia
|
|
Importanza del backup |
|
Il backup del proprio sistema è fondamentale.
Una buona procedura di recupero file, in caso di disastro, fa la differenza
fra una catasfrofe e una scocciatura.
A prescindere dal sistema utilizzato per eseguire il backup, ci sono
due approcci al problema:
- Backup completo dell'intero file-system;
- Backup solo dei dati, dei file di configurazione e dei programmi
non reinstallabili velocemente.
In ogni caso è importante che la macchina su cui viene fatto
il backup non sia la stessa di cui viene fatto il backup e che, possibilmente,
siano in due locazioni fisiche (o quantomeno i supporti dove vengono
archiviati i file) diverse e lontane.
|
Comandi di archiviazione
file |
|
tar [opzioni] filename1
filename2 filename[n] |
Questo comando viene ampiamente utilizzato per creare
(estrarre) archivi .tar
Spesso viene utilizzato in combinazione con gzip per creare archivi
compressi .tar.gz e .tgz |
gzip [num] [opzioni] filename |
Comando per comprimere file ed archivi in formato
gz che, fra le altre cose permette di scegliere il grado di compressione
[num].
In ambiente Linux / Unix è il più utilizzato |
gunzip [opzioni] filename.gz |
Comando inverso di gzip |
bzip2 [opzioni] filename |
Comando per comprimere file ed archivi in formato
bz2, ha il vantaggio di avere un rapporto di compressione maggiore
di gz |
bunzip2 [opzioni] filename.bz2 |
Comando inverso di gzip |
zip [opzioni] filename |
Comprime file e archivi, è basato sull'algoritmo
standard per PC pkzip, raramente si utilizza questo formato in ambiente
linux e unix |
unzip [opzioni] filename.zip |
Comando inverso di unzip |
rsync: una soluzione per il backup
|
|
Fra i vari strumenti utilizzabili per il backup,
ci sentiamo si consigliare il comando rsync, che permette la copia
differenziale di file via rete, ottimizzando i tempi di backup e
ripristino dei dati.
Esempio: Per eseguire una copia (mantenendo le proprietà
dei file originali) della intera directory home dell'host 10.0.0.10
sull'host 10.0.0.2:
rsync -av 10.0.0.10::casecondivise/* /backup/10.0.0.10/home/
Analizziamo la sintassi:
-av |
L'opzione che dice di copiare i file in archive
mode (directory recursive, mantendo ownership e permessi); |
10.0.0.10 |
L'indirizzo del host da backuppare |
casecondivise |
Il nome della condivisione configurata sull'host
ba backuppare |
* |
Wildcard per indicare tutti i file |
/backup/10.0.0.10/home |
Path locale della macchina su cui vengono copiati
i file. |
La prima volta che si esegue questo comando tutti
i file presenti nella /home di 10.0.0.10 vengono copiati, le volte
successive vengono copiati solo quelli modificati dall'ultimo backup.
Sull'host 10.0.0.10 deve essere in esecuzione rsync
in modalità server (comando: rsync --daemon) e deve essere
presente il file /etc/rsyncd.conf con una struttura simile:
[casecondivise] |
Il nome della condivisione che rsycnd esporta. |
path = /home/ |
Il path locale corrispondente a questa condivisione |
read only = yes |
Per un backup non è necessario avere
permessi in scrittura |
uid = root |
L'utente con cui rsync accede al file system.
Come root può leggere tutti i file |
gid = root |
Il gruppo con cui rsync accede al file system. |
hosts allow = 10.0.0.2 |
Gli IP da cui è possibile collegarsi
via rsync. |
list = false |
Impedisce di elencare le condivisioni disponibili
sul server rsync |
Come si può immaginare rsync è uno
strumento estremamente potente, che permette diverse operazioni
di copia di file fra due host.
In quanto tale è anche estremamente pericoloso in termini
di sicurezza, visto che non vengono nemmeno richieste password.
Per questo motivo è sempre consigliabile:
- Specificare e limitare gli indirizzi IP degli host che possono
accedere al server rsync;
- Permettere accessi solo in lettura e non in scrittura (per un
backup questo basta, in altre applicazioni potrebbe essere necessario
dover scrivere sul rsync server, in questo caso prestare particolare
attenzione agli IP abilitati e all'utente con cui rsync accede al
file system).
- Se possibile utilizzare come uid e gid degli utenti normali e
non root (per un backup, a meno che non si voglia cambiare il permessi
dell'intera directory home, l'utente root è necessario);
- Se possibile, rafforzare la sicurezza sugli IP sorgenti con ACL
sui router o iptables sul server rsync.
|
|