 |
| 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.
|
|