Les trois principaux programmes de sauvegarde sont: dump(8), tar(1), et cpio(1).
dump(8) et restore(8) sont les programmes de sauvegarde traditionnels d'UNIX®. Ils opèrent sur le disque comme sur une suite de blocs disque, en dessous du niveau d'abstraction que constituent les fichiers, liens et répertoires créés par les systèmes de fichiers. Le programme dump(8) sauvegarde l'intégralité d'un système de fichiers d'un périphérique. Il est incapable de sauvegarder seulement une partie d'un système de fichiers ou une arborescence de répertoires s'étalant sur plus d'un système de fichiers. Le programme dump(8) n'écrit pas de fichiers ou des répertoires sur la bande, mais écrit plutôt les blocs de données brutes dont sont constitués les fichiers et les répertoires.
Si vous utilisez dump(8) sur votre répertoire
racine, vous ne sauvegarderez pas
/home
, /usr
ou
beaucoup d'autres répertoires puisque que ces derniers
sont généralement des points de montages pour
d'autres systèmes de fichiers ou des liens symboliques
vers ces systèmes de fichiers.
L'utilitaire dump(8) a quelques particularités datant de ses débuts sous la version 6 d'AT&T UNIX (circa 1975). Les paramètres par défaut conviennent aux bandes 9 pistes (6250 bpi), et non aux supports à haute densité d'aujourd'hui (jusqu'à 62182 ftpi). Il faut surcharger ces valeurs par défaut sur la ligne de commande pour utiliser la capacité des bandes actuelles.
Il est également possible de sauvegarder les
données par l'intermédiaire d'un réseau sur un
lecteur de bande se trouvant sur une autre ordinateur
à l'aide des commandes rdump
et
rrestore
.
Ces deux programmes utilisent rcmd(3) et ruserok(3)
pour accéder à l'unité de bandes distante.
Cependant, l'utilisateur effectuant une sauvegarde doit
être présent dans le fichier .rhosts
sur la machine distante. Les arguments de rdump(8) et
rrestore(8) doivent être compatibles avec une
utilisation sur la machine distante. Quand on sauvegarde
une machine FreeBSD sur un lecteur Exabyte installé sur
un ordinateur Sun appelé komodo
,
utilisez:
#
/sbin/rdump 0dsbfu 54000 13000 126 komodo:/dev/nsa8 /dev/da0a 2>&1
Attention: il y a des conséquences pour la
sécurité à utiliser l'authentification
.rhosts
. Evaluez soigneusement votre
situation.
Il est également possible d'utiliser dump(8) et restore(8) d'une façon plus sécurisée sur ssh(1).
#
/sbin/dump -0uan -f - /usr | gzip -2 | ssh -c blowfish \
targetuser@targetmachine.example.com dd of=/mybigfiles/dump-usr-l0.gz
Ou en utilisant une fonction interne de
dump
, positionner la variable
d'environnement RSH
:
dump
sur ssh
avec la variable RSH
positionnée#
RSH=/usr/bin/ssh /sbin/dump -0uan -f targetuser@targetmachine.example.com:/dev/sa0 /usr
Le programme tar(1) date aussi de la Version 6 d'AT&T UNIX (circa 1975). tar(1) travaille en coopération avec le système de fichiers; il permet d'écrire des fichiers et des répertoires sur bandes. tar(1) ne supporte pas toutes les options permises par cpio(1), mais ne demande pas l'inhabituelle concaténation de commandes qu'utilise cpio(1)
Sous FreeBSD 5.3 et versions suivantes, GNU
tar
et la version par défaut
bsdtar
sont disponibles. La version GNU
peut être invoquée avec la commande
gtar
. Elle supporte les sauvegardes sur
des périphériques distants et cela
avec la même syntaxe que rdump(8). Pour sauvegarder avec
tar(1) sur une unité Exabyte connectée sur une machine
Sun appelée komodo
, utilisez:
#
/usr/bin/gtar cf komodo:/dev/nsa8 . 2>&1
La même opération peut être
effectuée avec bsdtar
en utilisant
un tuyau et rsh(1) pour
envoyer les données sur un lecteur de bande distant:
#
tar cf - . | rsh hostname
dd of=tape-device
obs=20b
Si vous êtes inquiet au sujet de la sécurité de sauvegardes par réseau, vous devriez utiliser la commande ssh(1) à la place de rsh(1).
cpio(1) est le programme UNIX® original pour l'échange
de fichiers par bandes magnétiques. cpio(1) dispose
d'options (parmi beaucoup d'autres) pour intervertir les
octets, utiliser de nombreux différents formats, et envoyer
les données à d'autres programmes. Cette dernière
caractéristique fait de cpio(1) un excellent choix pour
les supports d'installation. cpio(1) ne sait pas
parcourir une arborescence de répertoires et il faut lui
passer la liste des fichiers via
stdin
.
cpio(1) ne supporte pas les sauvegardes par le réseau. Vous pouvez utiliser un tuyau et rsh(1) pour envoyer les données sur un lecteur de bande distant:
#
for f in directory_list; do
find $f >> backup.list
done
#
cpio -v -o --format=newc < backup.list | ssh user
@host
"cat > backup_device
"
Où directory_list
est la liste
des répertoires que vous désirez sauvegarder,
user
@host
est l'ensemble utilisateur/nom de machine qui effectuera les
sauvegardes, et backup_device
représente l'unité où seront écrites les sauvegardes
(e.g., /dev/nsa0
).
pax(1) est la réponse IEEE/POSIX® à tar(1) et cpio(1). Au fil des ans les différentes versions de tar(1) et cpio(1) sont devenues légèrement incompatibles. Aussi, plutôt que de batailler pour les standardiser entièrement, POSIX® a défini un nouvel utilitaire d'archivage. pax(1) tente de lire et d'écrire nombre des divers formats tar(1) et cpio(1), en plus de ses propres nouveaux formats. Son ensemble de commandes ressemble plus à celui de cpio(1) qu'à celui de tar(1).
Amanda (Advanced Maryland Network Disk Archiver—Système Avancé d'Archivage de Disques en Réseau du Maryland) est un système d'archivage client/serveur plutôt qu'un simple programme. Un serveur Amanda archivera sur une seule unité de bandes un nombre quelconque d'ordinateurs disposant de clients Amanda et un accès réseau au serveur Amanda. Un problème classique sur les sites qui ont de nombreux disques volumineux est que le temps nécessaire pour sauvegarder directement les données sur la bande dépasse le temps alloué à cette tâche. Amanda résout ce problème. Amanda peut utiliser un “disque intermédiaire” pour sauvegarder plusieurs systèmes de fichiers à la fois. Amanda des “jeux d'archive”: un ensemble de bandes utilisé pour une période donnée pour créer une sauvegarde complète de tous les systèmes de fichiers listé dans le fichier de configuration d'Amanda. Le “jeu d'archive” contient également les sauvegardes nocturnes incrémentales (ou différentielles) de tous les systèmes de fichiers. Pour restaurer une système de fichiers endommagé, il faut la sauvegarde complète la plus récente et les sauvegardes incrémentales.
Le fichier de configuration permet un contrôle en finesse des sauvegardes et du trafic réseau qu'Amanda génère. Amanda utilisera n'importe quel des programmes de sauvegarde décrits plus haut pour écrire les données sur bande. Amanda est disponible sous forme de logiciel porté ou de logiciel pré-compilé, il n'est pas installé par défaut.
“Ne rien faire” n'est pas un logiciel, mais c'est la stratégie de sauvegarde la plus utilisée. Il n'y a aucun investissement initial. Il n'y a pas de de planification des sauvegardes à suivre. Juste dire non. Si quelque chose arrive à vos données, souriez et débrouillez-vous!
Si votre temps et vos données ne valent pas grand chose, alors “Ne rien faire” est le programme de sauvegarde le mieux adapté à votre ordinateur. Mais prenez garde, UNIX® est un outil utile, et vous pouvez vous rendre compte au bout de six mois que vous disposez d'une collection de fichiers qui vous sont utiles.
“Ne rien faire” est la bonne méthode de
sauvegarde pour /usr/obj
et les autres
répertoires qui peuvent facilement être
recréés par votre ordinateur. Un exemple est les
fichiers qui constituent la version HTML ou PostScript® de ce manuel.
Ces fichiers ont été générés
à partir de fichiers SGML.
Faire des sauvegardes des fichiers HTML ou PostScript® n'est
pas nécessaire. Les fichiers source SGML sont
sauvegardés régulièrement.
dump(8) Point. Elizabeth D. Zwicky a soumis à rude épreuve tous les programmes de sauvegarde dont nous avons parlé. Le choix de dump(8) s'impose pour préserver toutes vos données et les particularités des systèmes de fichiers UNIX®. Elizabeth a créé des systèmes de fichiers avec une grande variété de particularités inhabituelles (et quelques unes pas tellement inhabituelles) et a testé chacun des programmes en faisant une sauvegarde et une restauration de ces systèmes de fichiers. Parmi les spécificités testées: fichiers avec des trous, fichiers avec des trous et des blocs de caractères “null”, fichiers dont les noms comportent des caractères inhabituels, les fichiers illisibles ou impossible à modifier, les périphériques, fichiers dont la taille change pendant la sauvegarde, fichiers créés ou détruits en cours de sauvegarde et bien plus. Elle a présenté les résultats de ces tests au LISA V en Octobre 1991. Voir les tests d'endurance des programmes de sauvegarde et d'archivage.
Il y a quatre étapes à mettre en oeuvre en prévision d'un désastre éventuel.
Tout d'abord, imprimez le label de chacun de vos disques
(par exemple bsdlabel da0 | lpr
), votre table
des systèmes de fichiers (/etc/fstab
)
et tous les messages de démarrage, en deux
exemplaires.
Deuxièmement, vérifiez que vos disquettes de
démarrage et de reprise d'urgence
(boot.flp
et fixit.flp
)
incluent tous vos périphériques. La méthode
la plus simple pour vérifier est de redémarrer avec la
disquette de démarrage dans le lecteur et contrôler
les messages de démarrage. Si tous vos
périphériques
sont listés et opérationnels, passez à la
troisième étape.
Sinon, vous devez créer deux disquettes de démarrage sur-mesure avec un noyau qui puisse monter tous vos disques et accéder à votre unité de bandes. Ces disquettes doivent contenir: fdisk(8), bsdlabel(8), newfs(8), mount(8), et le programme de sauvegarde que vous utilisez. L'édition de liens de ces programmes doit être statique. Si vous utilisez dump(8), la disquette doit contenir restore(8).
Troisièmement, faites régulièrement des sauvegardes sur bandes. Toutes les modifications effectuées après votre dernière sauvegarde peuvent irrémédiablement perdues. Protégez vos bandes de sauvegarde en écriture.
Quatrièmement, testez les disquettes (soit
boot.flp
et fixit.flp
soit les deux disquettes sur-mesure que vous avez
créées à la seconde étape) et vos
bandes de sauvegarde. Prenez note de la procédure.
Conservez ces notes avec la disquette de démarrage, les
impressions et les bandes de sauvegarde. Vous serez si
préoccupé quand vous devrez restaurer que ces notes
peuvent vous éviter de détruire vos bandes de sauvegarde
(Comment? Au lieu de tar xvf /dev/sa0
,
vous pourriez taper accidentellement
tar cvf /dev/sa0
, ce qui écraserait votre
bande de sauvegarde).
Par mesure de sécurité, créez une disquette de démarrage et deux bandes de sauvegarde à chaque fois. Conservez-les dans un lieu éloigné. Un endroit éloigné n'est PAS le sous-sol du même bâtiment. Un certain nombre de compagnies du World Trade Center l'ont appris à leurs dépends. Un endroit éloigné doit être physiquement séparé de vos ordinateurs et de vos disques par une distance significative.
La question cruciale est: votre matériel a-t-il survécu? Vous avez régulièrement fait des sauvegardes, vous n'avez donc pas besoin de vous inquiéter pour les fichiers et les programmes.
Si le matériel a subi des dégâts, remplacez tout d'abord ce qui a été endommagé avant de tenter d'utiliser l'ordinateur.
Si votre matériel est en état, contrôlez
vos disquettes. Si vous utilisez une disquette de démarrage
personnalisée, démarrez en mode mono-utilisateur (tapez
-s
à l'invite boot:
).
Sautez le paragraphe suivant.
Si vous utilisez les disquettes boot.flp
et fixit.flp
, continuez à lire.
Mettre la disquette boot.flp
dans le
premier lecteur et démarrez l'ordinateur. Le menu
d'installation d'origine s'affiche à l'écran.
Choisissez
l'option . Insérez la disquette
fixit.flp
quand on vous la demande.
restore(8) et les autres programmes dont vous avez
besoin sont situés dans le répertoire
/mnt2/rescue
(/mnt2/stand
pour les
versions de FreeBSD antérieures à la 5.2).
Restaurez chaque système de fichiers séparément.
Essayez mount(8) (e.g. mount /dev/da0a
/mnt
) sur la partition racine de votre premier
disque. Si le label du disque est endommagé, utilisez
bsdlabel(8) pour repartitionner et libeller le disque
conformément au label que vous avez imprimé et mis
de côté. Utilisez newfs(8) pour recréer
les systèmes de fichiers. Remontez la partition racine
de la disquette en lecture/écriture (mount -u -o rw
/mnt
). Utilisez votre programme de restauration
et vos bandes de sauvegardes pour restaurer les données
de ce système de fichiers (e.g. restore vrf
/dev/sa0
). Démontez le système de fichiers
(e.g. umount /mnt
). Répétez
l'opération pour chacun des systèmes de fichiers
endommagés.
Une fois que le système fonctionne à nouveau, faites une sauvegarde sur de nouvelles bandes. Ce qui a causé la panne ou la perte de données peut se reproduire. Une heure de perdue maintenant peut vous épargner d'autres ennuis plus tard.
Ce document, ainsi que d'autres peut être téléchargé sur ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/
Pour toutes questions à propos de FreeBSD, lisez la
documentation avant de contacter
<questions@FreeBSD.org>.
Pour les questions sur cette documentation, contactez
<doc@FreeBSD.org>.