Su Unix sono disponibili degli strumenti di dump (copia) e restore su nastro (storicamente) di interi file system o parti di essi.
Su Solaris è possibile trovare analoghi comandi specificatamente dedicati al file system UFS di Sun.
Il comando ufsdump viene usato per eseguire un backup completo (full) o incrementale di un file-system UFS. La sua sintassi è:
ufsdump opzioni [argomenti] file_da_dumpare
Le Opzioni più comuni:
0-9
Specifica il livello di DUMP. 0 (zero) è quello più basso ed indica sempre un FULL DUMP, da 1 a 9 sono usati per dump incrementali e hanno significato solo relativo fra loro (un dump di livello 3, per esempio, include anche file dumpati con livelli superiori, ma non file dumpati con operazioni di livello inferiore).
f nome_device
Specifica il device in cui vengono scritti i file da dumpare.
v
Verifica dei dati copiati.
S
(senza altre opzioni) Visualizza il numero di byte previsti per il backup per il device o directory specificati.
u
Aggiorna il registro /etc/dumpdates con la data e il livello del backup che si sta eseguendo.
file_da_dumpare
Può riferirsi sia al nome di un file o directory (es: /export/home/al ) che al nome di un file system montato (es: /home ) che al nome completo di un device (es: /dev/dsk/c0t0d0s0 ).
I backup incrementali vengono gestiti con livelli di dump da 1 a 9. Questo permette di schedulare backup incrementali con flessibilità. Quando viene eseguito un backup incrementale, vegnono copiati solo i dati modificati dell'ultima volta in cui è stato eseguito un backup dello stesso livello o superiore. Lo storico dei backup eseguiti viene mantenuto sul file /etc/dumpdates
, per cui è sempre raccomandabile usare ufsdump con l'opzione u
.
E' raccomandabile eseguire il dump di un file system quando questo non è montato sul sistema e non può essere modificato durante l'operazione di copia (questa è infatti divisa in due diverse fasi: nella prima si raccolgono gli inode dei file da dumpare, nella seconda si copiano i dati effettivi).
Se non si può andare direttamente in maintenance mode (init S
), la procedura corretta per il dump di un intera partizione è:
- Umount della partizione (es: umount /home
) Questa operazione è ovviamente impossibile con la / o la /usr (dove risiedono tutti i comandi di sistema)
- File system check della partizione (es: fsck /dev/rdsk/c0t1d0s1
)
- Dump su nastro della partizione (es: ufsdump 0f /dev/rmt/0 /dev/rdsk/c0t1d0s1
)
- Mount della partizione precedentemente smontata (es: mount /home
)
Per conoscere esattamente mount point e relativi nomi completi di device fare riferimento a /etc/vfstab
.
Si può verificare la dimensione dei dati da backuppare con ufsdump S file_da_dumpare
.
Il restore dei dati salvati su nastro viene fatta con ufsrestore:
ufsrestore opzioni [argomenti] [file_da_riprestinare]
Le Opzioni più comuni:
i
Esegue un restore interattivo: si visualizza un prompt dedicato da cui è possibile browsare file e directory su nastro, selezionare quali ripristinare e fare un restore selettivo dei file scelti.
r
Esegue un restore completo dell'intero backup.
t
Visualizza l'elenco dei file backuppati senza fare un restore.
x
Esegue un restore solo dei file specificati come argomento.
f dump_file
Specifica un dump_file (tape device, dischetto o disk file) alternativo a quello di default (/dev/rmt/0).
v
Verbose mode: visualizza i nomi dei path mentre vengono restorati.
L'operazione di restore viene eseguita in riferimento alla directory corrente: se ci si trova in /tmp e si fa un restore di /etc/hosts (usfrestore xvf /dev/rmt/0 ./etc/hosts
), il file viene scritto in /tmp/etc/hosts.
Se si deve eseguire un restore di un intero sistema per un qualsiasi disastro (rm -rf /*, crash di un hard disk non mirrorato, formattazioni incaute ecc.) si devono eseguire le seguenti operazioni (fare riferimento alla documentazione SUN online per maggiori dettagli, qui viene fatto solo un sommario elenco):
1- Spegnimento del sistema, inserimento di un nuovo hard disk;
2- Boot del sistema da CDROM in maintenance mode (boot cdrom -r
da ok prompt);
3- Riconoscimento, partizionamento, formattazione e mount su una directory temporanea del nuovo hard disk.
4- Restore dei dati dal nastro al nuovo hard disk (ufsrestore rvf /dev/rmt/0
)
5- Eventuali restore successivi di dump incrementali (farlo dai livelli di dump inferiori a quelli superiori)
6- Verifica dell'integrità del file system restorato nell directory montata e rimozione di restoresymtable
.
7- Umount e fsck del nuovo file system.
8- Creazione dei settori di boot sulla partizione di root (installboot /usr/platform/'uname -i'/lib/fs/ufs/bootblk /dev/rdsk/nomedevice
)
9- Ripetizione dei punti da 4 a 8 per ogni mount point o partizioni separate
10- Verifica che /directorydimounttemporaneo/etc/vfstab abbia informazioni corrette per il nuovo hard disk aggiunto al sistema (va modificato se l'hard disk non è stato fisicamente sostituito al precente ed ha un device name diverso)
11- Reboot del sistema (con le dita incrociate).
Da Solaris 8 è disponibile il tool fssnap
che permette un corretto dump di un file system senza la necessità di doverlo smontare.
Guida all'uso e alla logica di Sun Solaris per system administrator Unix / Linux.
Backup e compressione di fileTecniche di backup. L'uso di tar, gunzip, e altri comandi di compressione.
commento
Ottimo documento su ufsdump, semplice e chiara descrizione
Rispondicopia di FS
Supponiamo di voler effettuare una copia di un intero file system. Supponiamo di avere un fs su /dev/dsk/c0t0d0s4 montato sotto la dir /app, e di volerlo copiare per intero sul di un altro disco, ad esempio /dev/dsk/c0t3d0s7.
Supponiamo di avere gia' creato il file system sul nuovo disco... a questo punto lo monteremo sotto /mnt:
mount /dev/dsc/c0t3d0s7 /mnt
ora lanceremo il comando:
ufsdump 0f - /dev/dsk/c0t0d0s4 | (cd /mnt; ufsrestore xf - ) .
Questo permettera' di copiare tutto il contenuto senza il limite dei 255 caratteri del tar ad esempio.