Sauvegarde & Restauration

inclus: tar, cpio, dd, mt, ufsdump, ufsrestore et rsh

Généralités

tar & cpio sont les programmes classiques de sauvegarde & restauration. Leur principal avantage tient au fait que leurs formats sont des standards de fait dans le monde Unix.
dd est plutôt un programme de copie physique, surtout utilisé à des fins de duplication
Quelques systèmes livrent des programmes spécialisés : backup & restore sont livrés avec AIX, dump & restore sont livrés avec Linux alors que Solaris livre ufsdump & ufsrestore.
Les programmes plus récents apportent quelques avantages pouvant contre-balancer l'abandon des standards : le rôle spécialisé permet de différencier les droits de sauvegarde & de restauration alors que la notion de niveaux permet la sauvegarde incrémentale.
le fichier bande (tape file) est le jeu de sauvegarde, à savoir les données écrites une une bande lors d'une opération de sauvegarde.

Rappels Problèmes fréquents de support:
tar: tape archive

elle est la plus ancienne et le plus utilisée des commandes de sauvegarde & travaille avec un format standard.
tar utilise le fichier /etc/default/tar pour obtenir les noms de device
tar sert aussi pour les transferts entre systèmes unix et pour créer des paquetages
pour restaurer dans un répertoire différent de celui d'origine, il faut sauvegarder avec un chemin relatif

Syntaxe: tar -options {fichiers}

OptionEffet
cCrée une archive
rrajoute en fin d'archive
uajoute en fin d'archive les fichiers modifiés
tliste le contenu d'une archive
xextrait le contenu d'une archive
vmode verbeux
f fichierspécifie que la destination est un fichier (normal ou device)
I fichierspécifie le fichier contenant la liste des fichiers à sauvegarder
Msauvegarde multivolume (pas disponible sur tous les systèmes)
prestaure aussi les permissions

exemples:
# tar -cMf /dev/rmt1 /etc/bin/*
  => crée une archive multi-volume sur la bande dans rmt1 avec tous les fichiers de /dev/bin
# tar -uf /usr/root/sources -I /home/to_keep.lst
  =@gt; met à jour l'archive /usr/root/sources avec les fichiers listés dans /home/to_keep.lst
# tar -tvf /dev/rmt0
  => liste le contenu de la bande rmt0
# tar -xpvf /dev/rmt1
  => restaure avec les permissions le contenu de la bande rmt1

solution au problème du tar en absolu
# tar -cf BIGFILE /home/dummy
# mount /dev/XXX /home/dummy
# tar -xf BIGFILE
# umount /dev/XXX
# mount /dev/XXX /elsewhere

il existe une autre solution à base de chroot mais, vu qu'elle est extrèmement délicate, je n'en parle pas ici !

cpio: copy input output

cpio réalise des échanges entre disque et entrée ou sortie standard

syntaxe: cpio -options [modèle]

OptionEffet
ocopie sur sa sortie standard le contenu des fichiers dont la liste est fournie sur son entrée standard
p répcopie vers rép/ plutôt que vers la sortie standard (avec -o)
icopie depuis l'entrée standard vers le disque
tliste les fichiers contenus dans son entrée standard (avec -i)
dcrée les répertoires si nécessaire (avec -i)
uécrase les fichiers existants (avec -i)
vmode verbose

modèle n'est spécifié (dans le cours) qu'avec -i et sert de modèle de noms de fichier à restaurer

exemples:
# ls | cpio -ov > /dev/fd0
  => sauvegarde les fichiers du répertoire courant sur l'unité de disquette en affichant les noms des fichiers
# find . -print | cpio -o > /dev/rct0
  => sauvegarde le répertoire courant sur bande
# cpio -itv < /dev/rct1
  => liste le contenu de la bande
# cpio -iv < /dev/rmt0
  => restitue le contenu de la bande dans le répertoire courant sans respecter la structure sauvegardée, en affichant les noms des fichiers

dd: copie brute de fichiers

syntaxe: dd if=fichier1 of=fichier2 options

OptionEffet
ibs=ntaille du bloc en entrée (input block size)
obs=ntaille du bloc en sortie (output block size)
skip=nnombre de blocs à sauter en entrée
seek=nnombre de blocs à sauter en sortie
count=nnombre de blocs à copier
bs=ntaille du bloc en entrée et en sortie
conv=<charset>conversion à effectuer (ascii|ebcdic|lcase|ucase)

si if n'est pas spécifié, dd utilise l'entrée standard
si of n'est pas spécifié, dd utilise la sortie standard

exemples
# dd if=/home/zoulou of=/home/zip conv=ucase
  copie zoulou dans zzip en le convertissant en majuscules
# dd if=boot.img of=/dev/fd0 bs=1440k
  crée une disquette à partir d'une image dans un fichier
# dd if=/dev/fd0 of=/dev/rct0 count=100
  copie les 100 premiers blocs de la disquette vers la bande
# find . | cpio -o | dd of=/dev/rct0 seek=3
  sauvergarde le répertoire courant en commençant au bloc 4

mt: contrôle de la bande

syntaxe: mt -f bande opération
OpérationRésultat
hliste les opérations possible sur cette bande
asf npositionne au jeu n° n
seek npositionne au bloc n° n
eodpositionne à la fin des données pour ajout
tellindique la position (n° de bloc)
retensionretend la bande
rewindrembobine
offlinerembobine & éjecte

ufsdump (Solaris)

syntaxe: ufsdump N[u][v]f devfile fs
avec devfile = fichier device où effectuer la sauvegarde et fs = filesystem à sauvegarder

OptionEffet
N Niveau de sauvegarde (0=sauvegarde complète ; 1..9=sauvegarde incrémentale
permet de sauvegarder uniquement les changements intervenus depuis la sauvegarde d'un niveau inférieur ou égal
u permet de mettre à jour la date dans /etc/dumpdates
obligatoire si l'on désire faire des sauvegardes incrémentales
v permet de vérifier la sauvegarde après écriture
peu efficace juste après la sauvegarde (la magnétisation est à son apogée).
mieux vaut faire une restauration vers /dev/null pour tester ultérieurement

exemples:
# ufsdump 0f /dev/rmt0 /home
  sauvegarde complète de /home
# ufsdump 6uf /dev/rmt1 /usr/src
  sauvegarde de niveau 6 de /usr/src avec màj de /etc/dumpdates

exmple de sauvegarde incrémentale avec 3 cycles simultanés
PériodicitéNConséquence
trimestrielle0Sauvegarde complète
mensuelle3Ne sauvegarde que les fichiers modifiés depuis des sauvegardes de niveau 3, 5 ou 9
hebdomadaire5Ne sauvegarde que les fichiers modifiés depuis des sauvegardes de niveau 5 ou 9
quotidienne9Ne sauvegarde que les fichiers modifiés depuis une sauvegarde de niveau 9

ufsrestore (Solaris)

syntaxe: ufsrestore x|t[i][r]f devfile
avec devfile = fichier device à utiliser pour la restauration

OptionMnémoEffet
iinteractivemode interactif pour choisir les fichiers
xextractrestaure les fichiers
ttocliste la bande
rrecursiverestaure le media dans le répertoire courant

exemples:
# ufsrestore tf /dev/st0
  listage du contenu de la bande
# ufsrestore xf /dev/rmt0
  restauration de la bande

rsh: remote shell

syntaxe: rsh hôte commande

rsh exécute la commande sur l'hôte aspects de sécurité:


remarques & modifications : Pierre - last update 10.05.02