From 5c95b55cdbbf039383b3bd9187263eccbf68aa60 Mon Sep 17 00:00:00 2001 From: Sebastien Guilbaud Date: Wed, 31 Mar 2010 09:07:00 +0200 Subject: [PATCH 1/1] Apply Sebastien's first French patch --- docs/manuals/en/utility/progs.tex | 2 +- .../fr/utility/bimagemgr-chapter-fr.tex | 215 +++ docs/manuals/fr/utility/progs-fr.tex | 1478 +++++++++++++++++ docs/manuals/fr/utility/utility.tex | 18 +- 4 files changed, 1705 insertions(+), 8 deletions(-) create mode 100644 docs/manuals/fr/utility/bimagemgr-chapter-fr.tex create mode 100644 docs/manuals/fr/utility/progs-fr.tex diff --git a/docs/manuals/en/utility/progs.tex b/docs/manuals/en/utility/progs.tex index d818bc3d..3231d6cd 100644 --- a/docs/manuals/en/utility/progs.tex +++ b/docs/manuals/en/utility/progs.tex @@ -153,7 +153,7 @@ or \normalsize Note that, in the case of a file, the Volume name becomes the filename, so in -the above example, you will replace the {\bf xxx} with the name of the volume +the above example, you will replace the {\bf Volume-name} with the name of the volume (file) you wrote. Normally if no options are specified, {\bf bls} will produce the equivalent diff --git a/docs/manuals/fr/utility/bimagemgr-chapter-fr.tex b/docs/manuals/fr/utility/bimagemgr-chapter-fr.tex new file mode 100644 index 00000000..16a5505c --- /dev/null +++ b/docs/manuals/fr/utility/bimagemgr-chapter-fr.tex @@ -0,0 +1,215 @@ +b%% +%% +%% The following characters must be preceded by a backslash +%% to be entered as printable characters: +%% +%% # $ % & ~ _ ^ \ { } +%% +%% Translator : Sebastien Guilbaud / sebastien.guilbaud@bull.net + +\section{bimagemgr} +\label{bimagemgr} +\index[general]{Bimagemgr } + +{\bf bimagemgr} est un utilitaire destiné à ceux qui sauvegardent vers des +volumes disque afin de les graver ensuite sur CD, plutôt que vers des bandes. +C'est une interface web écrite en Perl qui est utilisée pour détecter quand un +volume doit être gravé. Il nécessite : + +\begin{itemize} +\item Un serveur web fonctionnant sur le serveur Bacula +\item Un graveur de CD installé et configuré sur le serveur Bacula +\item Le paquet cdrtools installé sur le serveur Bacula +\item perl, le module perl-DBI, et l'un des modules DBD-MySQL, DBD-SQLite ou +DBD-PostgreSQL. +\end{itemize} + +Le gravage de DVD n'est pas supporté actuellement par {\bf bimagemgr} mais c'est +prévu pour une future version. + +\subsection{Installation de bimagemgr} +\index[general]{bimagemgr!Installation } +\index[general]{Installation de bimagemgr} + + +Installation depuis les sources : +% TODO: use itemized list for this? +% SG : DONE :) +\begin{enumerate} +\item Vérifiez le Makefile et adaptez-le à votre configuration au besoin. +\item Adaptez config.pm à votre configuration. +\item Lancez un 'make install' en tant que root. +\item Modifiez votre \texttt{httpd.conf} et modifiez la valeur de la directive + Timeout value. Le serveur web ne doit pas expirer et donc couper la + connexion avant que le gravage ne soit terminé. La valeur exacte dépend de + la vitesse de votre graveur et du fait que vous graviez le CD sur le serveur + Bacula ou bien sur une autre machine en réseau. Dans mon cas, je l'ai + positionné à 1000 secondes. Redémarrez httpd par la suite pour prendre en + compte vos modifications. +\item Assurez-vous que cdrecord est bien setuid root. +\end{enumerate} +% TODO: I am pretty sure cdrecord can be used without setuid root +% TODO: as long as devices are setup correctly + +Installation depuis des paquets RPM : +% TODO: use itemized list for this? +% SG : DONE +\begin{enumerate} +\item Installez le paquet RPM correspondant à votre plate-forme. +\item Modifiez /cgi-bin/config.pm pour l'adapter à votre configuration. +\item Modifiez votre \texttt{httpd.conf} et modifiez la valeur de la directive + Timeout value. Le serveur web ne doit pas expirer et donc couper la + connexion avant que le gravage ne soit terminé. La valeur exacte dépend de + la vitesse de votre graveur et du fait que vous graviez le CD sur le serveur + Bacula ou bien sur une autre machine en réseau. Dans mon cas, je l'ai + positionné à 1000 secondes. Redémarrez httpd par la suite pour prendre en + compte vos modifications. +\item Assurez-vous que cdrecord est bien setuid root. +\end{enumerate} + +Pour les versions de Bacula inférieures à la 1.36 : +% TODO: use itemized list for this? +% SG : DONE +\begin{enumerate} +\item Adaptez la partie configurable de config.pm à votre environnement. +\item Lancez \texttt{/etc/bacula/create\_cdimage\_table.pl} depuis une console + en root de votre serveur Bacula pour ajouter la table CDImage à votre base + de données Bacula. +\end{enumerate} + +Accéder aux fichiers de Volume : +Les fichiers de Volume ont des permissions à 640 par défaut, et ne peuvent donc +être lues que par root. L'approche recommandée est la suivante (ceci fonctionne +seulement si bimagemgr et Apache fonctionnent sur le même serveur que Bacula) : + +Pour Bacula en 1.34 ou 1.36 installé depuis les sources : +% TODO: use itemized list for this? +% SG : DONE +\begin{enumerate} +\item Ajoutez un nouveau groupe d'utilisateurs appelé "bacula" et ajoutez + l'utilisateur "apache" à ce groupe (Redhat/Mandrake). Sur une SuSE, + l'utilisateur à ajouter au groupe est "wwwrun". +\item Modifiez le propriétaire des tous les fichiers de Volume à root.bacula +\item Modifiez le script de démarrage \texttt{/etc/bacula/bacula} pour + positionner \texttt{SD\_USER=root} et \texttt{SD\_GROUP=bacula}. Redémarrez + Bacula. +\end{enumerate} + +Note: L'étape 3 devrait aussi comprendre la modification de +\texttt{/etc/init.d/bacula-sd} mais les versions de ce fichier antérieures à la +1.36 ne le supportent pas. Il serait nécessaire dans ce cas de lancer +\texttt{/etc/bacula/bacula restart} après un reboot du serveur. + +Pour Bacula 1.38 installé depuis les sources : +% TODO: use itemized list for this? +% SG : DONE +\begin{enumerate} +\item Votre déclaration de \texttt{configure} doit comprendre : +% TODO: fix formatting here +% SG : DONE +\begin{alltt} + --with-dir-user=bacula + --with-dir-group=bacula + --with-sd-user=bacula + --with-sd-group=disk + --with-fd-user=root + --with-fd-group=bacula +\end{alltt} +\item Ajoutez l'utilisateur "apache" au groupe "bacula" pour les systèmes Redhat + ou Mandrake. Pour les SuSE, ajoutez l'utilisateur "wwwrun" au groupe + "bacula" +\item Vérifier/corrigez le propriétaire de tous vos fichiers de Volume Bacula à + root.bacula +\end{enumerate} + +Pour Bacula 1.36 ou 1.38 installé depuis des paquets RPM : +% TODO: use itemized list for this? +% SG : DONE +\begin{enumerate} +\item Ajoutez l'utilisateur "apache" au groupe "bacula" pour les systèmes Redhat + ou Mandrake. Pour les SuSE, ajoutez l'utilisateur "wwwrun" au groupe + "bacula" +\item Vérifier/corrigez le propriétaire de tous vos fichiers de Volume Bacula à + root.bacula +\end{enumerate} + +bimagemgr installé depuis un paquet RPM > 1.38.9 se charge d'ajouter l +'utilisateur du serveur web au groupe bacula dans un script post-installation. +Assurez-vous de modification la partie configurable de config.pm après +l'installation du paquet RPM. + +bimagemgr sera désormais capable de lire les fichiers de Volume mais ils ne sont +toujours pas lisibles par tout le moned + +Si vous utilisez bimagemgr depuis une autre machine (déconseillé), vous allez +avoir besoin de changer les droits sur tous les fichiers de Volume en 644 +pour mettre d'y accéder par exemple en NFS (entre autres). Cette approche ne +doit être choisie que si vous êtes certain de la sécurité de votre +environnement car dans ce cas les Volumes de sauvegarde peuvent être lus par +n'importe qui. + +\subsection{Utilisation de bimagemgr} +\index[general]{bimagemgr!Utilisation } +\index[general]{Utilisation de bimagemgr} + +En appelant la programme à partir de votre navigateur, c'est-à-dire +\url{http://localhost/cgi-bin/bimagemgr.pl}, vous obtiendrez un affichage comme +à la figure \ref{fig:baculacdimagemanager} +% TODO: use tex to say figure number +% SG : DONE +Le programme interroge la base de données d Bacula et affiche tous les Volumes +avec la date de leur dernière écriture et la date à laquelle ils ont été gravés. +Si un Volume doit être gravé (modifié depuis le dernier gravage), un bouton +"Burn" sera affiché dans la dernière colonne à droite + +% small kludge to correct strange spacing caused by large figures later. +\vfill +~ + +\begin{figure}[H] +\includegraphics[width=14cm]{\idir bimagemgr1.eps} +% TODO: use tex to say figure number +% SG : DONE +\caption{\label{fig:baculacdimagemanager}Gestionnaires d'images CD Bacula} +\end{figure} + +Insérez un support vierge dans votre graveur et cliquez sur le bouton "Burn". +Ceci va ouvrir une fenêtre popup comme la figure +\ref{fig:baculacdimageburnprogress} pour afficher la progression du gravage. + +% TODO: use tex to say figure number +% SG : DONE + +\begin{figure}[H] +\includegraphics[width=14cm]{\idir bimagemgr2.eps} +% TODO: use tex to say figure number +% SG : DONE +\caption{\label{fig:baculacdimageburnprogress}Fenêtre de progression du gravage +d'une image CD Bacula} +\end{figure} + +A la fin du gravage, la fenêtre popup affichera les résultats de cdrecord comme +% TODO: use tex to say figure number +% SG : DONE +vous pouvez le voir à la figure \ref{fig:baculacdimageburnresults}. Fermez cette +fenêtre et rafraîchissez la fenêtre principale. La date du dernier gravage aura +été mise à jour et le bouton "Burn" disparaîtra pour ce volume. Si le gravage a +échoué, vous pouvez réinitialiser la date de dernier gravage pour ce volume en +cliquant sur le lien "Reset". + +\begin{figure}[H] +\includegraphics[width=14cm]{\idir bimagemgr3.eps} +% TODO: use tex to say figure number +% SG : DONE +\caption{\label{fig:baculacdimageburnresults}Résultats du gravage d'une image CD +Bacula} +\end{figure} + +Sur la dernière ligne de la fenêtre principale, vous allez trouver deux boutons +supplémentaires appelés "Burn Catalog" et "Blank CDRW". "Burn Catalog" fera une +copie de votre catalogue Bacula sur disque. Si vous utilisez des supports +réinscriptibles (CD-RW) au lieu de CD-R, le bouton "Blank CDRW" vous permettra +d'effacer le disque avant de graver de nouveau dessus. La copie régulière de vos +volumes et de votre catalogue vers des CD avec {\bf bimagemgr} vous permet de +tout reconstruire facilement en cas de désastre sur le serveur Bacula. + diff --git a/docs/manuals/fr/utility/progs-fr.tex b/docs/manuals/fr/utility/progs-fr.tex new file mode 100644 index 00000000..66eeebb1 --- /dev/null +++ b/docs/manuals/fr/utility/progs-fr.tex @@ -0,0 +1,1478 @@ +%% +%% +%% Translator : Sebastien Guilbaud / sebastien.guilbaud@bull.net + +\chapter{Utilitaires de Volumes} +\label{_UtilityChapter} +\index[general]{Utilitaires de Volumes} +\index[general]{Outils!Utilitaires de Volumes} + +Ce document décrit les programmes utilitaires écrits pour assister les +utilisateurs et les développeurs de Bacula dans la gestion des volumes +externes à Bacula. + +\section{Spécification du fichier de configuration} +\index[general]{Spécification du fichier de configuration} + +A partir de la version 1.27, chacun des programmes suivants nécessite +d'avoir un fichier de configuration valide du Storage deamon. (en fait, seules +les définitions de ressources {\bf Device} sont utilisées par ces +programmes). Ceci permet aux programmes de trouver les paramètres de +configuration de votre périphérique d'archivage (en général un lecteur +de bandes). Par défaut, ils lisent {\bf bacula-sd.conf} dans le répertoire +courant, mais vous pouvez spécifier un fichier de configuration différent +avec l'option {\bf -c}. + +\section{Spécification d'un nom de périphérique pour une bande} +\index[general]{Bande!Spécification d'un nom de périphérique pour une} +\index[general]{Spécification d'un nom de périphérique pour une bande} + +Chacun de ses programmes nécessites un {\bf device-name} où le Volume +peut être trouvé. Dans le cas des bandes, il s'agit du nom du périphérique +comme {\bf /dev/nst0} ou {\bf /dev/rmt/0ubn} suivant le système d'exploitation. +Pour que le programme fonctionne, il doit trouver un nom identique dans la +ressource Device du fichier de configuration. Voir plus bas pour comment +préciser les noms de Volume. + +Si Bacula est en cours de fonctionnement et que vous souhaitez utiliser un de +des programmes, vous devez soit arrêter le Storage daemon ou bien +{\bf démonter} ({\bf unmount}) chaque lecteur de bandes que vous voulez +utiliser (sinon il sera "{\bf busy}", car en cours d'utilisation par Bacula). + + +\section{Spécification d'un nom de périphérique pour un fichier} +\index[general]{Fichier!Spécification d'un nom de périphérique pour un} +\index[general]{Spécification d'un nom de périphérique pour un fichier} + +Si vous essayez de lire ou écrire un fichier d'archive au lieu d'une bande, le +{\bf device-name} sera le chemin complet d'accès au fichier d'archive (nom du +fichier compris). Le nom du fichier est utilisé pour générer le nom du Volume, +et le chemin résultant devra correspondre au contenu du fichier de +configuration. En résumé, le chemin est équivalent au nom du périphérique de +sauvegarde, et le nom du fichier au nom de volume. + + +\section{Spécification des Volumes} +\index[general]{Volumes!Spécification des} +\index[general]{Spécification des Volumes} + +En général, vous devez spécifier le nom du Volume pour chacun des programmes +ci-dessous (à l'exception de {\bf btape}). La meilleure méthode est spécifier +un fichier de {\bf bootstrap} en ligne de commande avec l'option {\bf -b}. +Vous allez ensuite devoir spécifier le ou les noms de Volume dans le fichier de +boostrap. Supposez par exemple que vous souhaitiez lire les bandes {\bf tape1} +et {\bf tape2} : il faut tout d'abord créer un fichier de {\bf bootstrap} +appelé {\bf list.bsr} qui contient : + +\footnotesize +\begin{verbatim} +Volume=test1|test2 +\end{verbatim} +\normalsize + +où chaque nom de Volume est séparé par une barre verticale. Tapez ensuite la +commande suivante : + +\footnotesize +\begin{verbatim} +./bls -b list.bsr /dev/nst0 +\end{verbatim} +\normalsize + +Dans le cas où les Volumes Bacula sont des fichiers, vous pouvez juste +concaténer les noms de volumes ainsi : + +\footnotesize +\begin{verbatim} +./bls /tmp/test1\|test2 +\end{verbatim} +\normalsize + +L'antislash (\textbackslash{}) est nécessaire ici comme caractère d'échappement +pour le shell, afin de pouvoir utiliser la barre verticale (|). + +Pour terminer, s'il vous semble qu'il est compliqué de spécifier les noms de +Volumes avec un fichier de bootstrap, il est possible d'utiliser l'option +{\bf -V} (pour tous les programmes sauf {\bf bcopy} pour spécifier un ou +plusieurs noms de Volume, séparés par une barre verticale (|), comme par +exemple : + +\footnotesize +\begin{verbatim} +./bls -V Vol001 /dev/nst0 +\end{verbatim} +\normalsize + +Vous pouvez également utiliser un astérisque (*) pour indiquer que le programme +doit accepter n'importe quel volume, comme par exemple : + +\footnotesize +\begin{verbatim} +./bls -V* /dev/nst0 +\end{verbatim} +\normalsize + +\section{bls} +\label{bls} +\index[general]{bls} +\index[general]{programme!bls} + +{\bf bls} est utilisé pour faire un affichage de type listing comme {\bf ls} +d'une bande ou d'un fichier {\bf Bacula}. Il est utilisé ainsi : + +\footnotesize +\begin{verbatim} +Usage: bls [options] + -b specify a bootstrap file + -c specify a config file + -d specify debug level + -e exclude list + -i include list + -j list jobs + -k list blocks + (no j or k option) list saved files + -L dump label + -p proceed inspite of errors + -v be verbose + -V specify Volume names (separated by |) + -? print this message +\end{verbatim} +\normalsize + +Pour afficher le contenu d'une bande, il peut être utilisé ainsi : + +\footnotesize +\begin{verbatim} +./bls -V Volume-name /dev/nst0 +\end{verbatim} +\normalsize + +Ou pour afficher le contenu d'un fichier : + +\footnotesize +\begin{verbatim} +./bls /tmp/Volume-name +or +./bls -V Volume-name /tmp +\end{verbatim} +\normalsize + +Attention, dans le cas d'un fichier, le nom du Volume devient le nom du +fichier : dans l'exemple ci-dessus, vous devez remplacer {\bf Volume-name} par +votre nom du Volume (fichier). + +Si vous ne précisez aucune option, {\bf bls} affichera l'équivalent d'un +{\bf ls -l} pour chaque fichier de la bande. En utilisant les options +indiquées plus haut, il est possible de n'afficher que les enregistrements +de Job, les blocs de la bande, etc. +Par exemple : + +\footnotesize +\begin{verbatim} + +./bls /tmp/File002 +bls: butil.c:148 Using device: /tmp +drwxrwxr-x 3 k k 4096 02-10-19 21:08 /home/kern/bacula/k/src/dird/ +drwxrwxr-x 2 k k 4096 02-10-10 18:59 /home/kern/bacula/k/src/dird/CVS/ +-rw-rw-r-- 1 k k 54 02-07-06 18:02 /home/kern/bacula/k/src/dird/CVS/Root +-rw-rw-r-- 1 k k 16 02-07-06 18:02 /home/kern/bacula/k/src/dird/CVS/Repository +-rw-rw-r-- 1 k k 1783 02-10-10 18:59 /home/kern/bacula/k/src/dird/CVS/Entries +-rw-rw-r-- 1 k k 97506 02-10-18 21:07 /home/kern/bacula/k/src/dird/Makefile +-rw-r--r-- 1 k k 3513 02-10-18 21:02 /home/kern/bacula/k/src/dird/Makefile.in +-rw-rw-r-- 1 k k 4669 02-07-06 18:02 /home/kern/bacula/k/src/dird/README-config +-rw-r--r-- 1 k k 4391 02-09-14 16:51 /home/kern/bacula/k/src/dird/authenticate.c +-rw-r--r-- 1 k k 3609 02-07-07 16:41 /home/kern/bacula/k/src/dird/autoprune.c +-rw-rw-r-- 1 k k 4418 02-10-18 21:03 /home/kern/bacula/k/src/dird/bacula-dir.conf +... +-rw-rw-r-- 1 k k 83 02-08-31 19:19 /home/kern/bacula/k/src/dird/.cvsignore +bls: Got EOF on device /tmp +84 files found. +\end{verbatim} +\normalsize + +\subsection{Affichage des jobs} +\index[general]{Affichage des jobs avec bls} +\index[general]{bls!Affichage des jobs} + +Si vous affichez le contenu d'un volume pour trouver quels Jobs restaurer, +l'option {\bf -j} devrait vous fournir tout ce que vous voulez tant que vous +n'avez pas plusieurs clients. Par exemple : + +\footnotesize +\begin{verbatim} +./bls -j -V Test1 -c stored.conf DDS-4 +bls: butil.c:258 Using device: "DDS-4" for reading. +11-Jul 11:54 bls: Ready to read from volume "Test1" on device "DDS-4" (/dev/nst0). +Volume Record: File:blk=0:1 SessId=4 SessTime=1121074625 JobId=0 DataLen=165 +Begin Job Session Record: File:blk=0:2 SessId=4 SessTime=1121074625 JobId=1 Level=F Type=B +Begin Job Session Record: File:blk=0:3 SessId=5 SessTime=1121074625 JobId=5 Level=F Type=B +Begin Job Session Record: File:blk=0:6 SessId=3 SessTime=1121074625 JobId=2 Level=F Type=B +Begin Job Session Record: File:blk=0:13 SessId=2 SessTime=1121074625 JobId=4 Level=F Type=B +End Job Session Record: File:blk=0:99 SessId=3 SessTime=1121074625 JobId=2 Level=F Type=B + Files=168 Bytes=1,732,978 Errors=0 Status=T +End Job Session Record: File:blk=0:101 SessId=2 SessTime=1121074625 JobId=4 Level=F Type=B + Files=168 Bytes=1,732,978 Errors=0 Status=T +End Job Session Record: File:blk=0:108 SessId=5 SessTime=1121074625 JobId=5 Level=F Type=B + Files=168 Bytes=1,732,978 Errors=0 Status=T +End Job Session Record: File:blk=0:109 SessId=4 SessTime=1121074625 JobId=1 Level=F Type=B + Files=168 Bytes=1,732,978 Errors=0 Status=T +11-Jul 11:54 bls: End of Volume at file 1 on device "DDS-4" (/dev/nst0), Volume "Test1" +11-Jul 11:54 bls: End of all volumes. +\end{verbatim} +\normalsize + +montre une sauvegarde complète suivie de deux incrémentales. (???? FIXME ?????) + +L'ajout de l'option {\bf -v} affichera quasiment toutes les informations +disponibles pour chaque enregistrement : + +\subsection{Affichage des blocs} +\index[general]{Affichage des blocs avec bls} +\index[general]{bls!Affichage des blocs} + +En temps normal, sauf dans le but de débugguer (??? FIXME ??? déverminer ), vous +n'aurez pas besoin d'afficher les blocs (unité de stockage élémentaire des +données de Bacula sur le Volume). Vous pouvez toujours le faire ainsi : + +\footnotesize +\begin{verbatim} +./bls -k /tmp/File002 +bls: butil.c:148 Using device: /tmp +Block: 1 size=64512 +Block: 2 size=64512 +... +Block: 65 size=64512 +Block: 66 size=19195 +bls: Got EOF on device /tmp +End of File on device +\end{verbatim} +\normalsize + +En ajoutant l'option {\bf -v}, vous obtiendrez encore plus d'informations, ce +qui pourrait être utile pour savoir quelles sessions ont été écrites sur ce +Volume. + +\footnotesize +\begin{verbatim} +./bls -k -v /tmp/File002 +Volume Label: +Id : Bacula 0.9 mortal +VerNo : 10 +VolName : File002 +PrevVolName : +VolFile : 0 +LabelType : VOL_LABEL +LabelSize : 147 +PoolName : Default +MediaType : File +PoolType : Backup +HostName : +Date label written: 2002-10-19 at 21:16 +Block: 1 blen=64512 First rec FI=VOL_LABEL SessId=1 SessTim=1035062102 Strm=0 rlen=147 +Block: 2 blen=64512 First rec FI=6 SessId=1 SessTim=1035062102 Strm=DATA rlen=4087 +Block: 3 blen=64512 First rec FI=12 SessId=1 SessTim=1035062102 Strm=DATA rlen=5902 +Block: 4 blen=64512 First rec FI=19 SessId=1 SessTim=1035062102 Strm=DATA rlen=28382 +... +Block: 65 blen=64512 First rec FI=83 SessId=1 SessTim=1035062102 Strm=DATA rlen=1873 +Block: 66 blen=19195 First rec FI=83 SessId=1 SessTim=1035062102 Strm=DATA rlen=2973 +bls: Got EOF on device /tmp +End of File on device +\end{verbatim} +\normalsize + +Armé du SessionId et du SessionTime, vous pouvez extraire à peu près +n'importe quoi du Volume. + +Si vous souhaitez en savoir encore plus, ajoutez un second {\bf -v} à la ligne +de commande pour avoir un dump de chaque enregistrement de chaque bloc. + +\footnotesize +\begin{verbatim} +./bls -k -v -v /tmp/File002 +bls: block.c:79 Dump block 80f8ad0: size=64512 BlkNum=1 + Hdrcksum=b1bdfd6d cksum=b1bdfd6d +bls: block.c:92 Rec: VId=1 VT=1035062102 FI=VOL_LABEL Strm=0 len=147 p=80f8b40 +bls: block.c:92 Rec: VId=1 VT=1035062102 FI=SOS_LABEL Strm=-7 len=122 p=80f8be7 +bls: block.c:92 Rec: VId=1 VT=1035062102 FI=1 Strm=UATTR len=86 p=80f8c75 +bls: block.c:92 Rec: VId=1 VT=1035062102 FI=2 Strm=UATTR len=90 p=80f8cdf +bls: block.c:92 Rec: VId=1 VT=1035062102 FI=3 Strm=UATTR len=92 p=80f8d4d +bls: block.c:92 Rec: VId=1 VT=1035062102 FI=3 Strm=DATA len=54 p=80f8dbd +bls: block.c:92 Rec: VId=1 VT=1035062102 FI=3 Strm=MD5 len=16 p=80f8e07 +bls: block.c:92 Rec: VId=1 VT=1035062102 FI=4 Strm=UATTR len=98 p=80f8e2b +bls: block.c:92 Rec: VId=1 VT=1035062102 FI=4 Strm=DATA len=16 p=80f8ea1 +bls: block.c:92 Rec: VId=1 VT=1035062102 FI=4 Strm=MD5 len=16 p=80f8ec5 +bls: block.c:92 Rec: VId=1 VT=1035062102 FI=5 Strm=UATTR len=96 p=80f8ee9 +bls: block.c:92 Rec: VId=1 VT=1035062102 FI=5 Strm=DATA len=1783 p=80f8f5d +bls: block.c:92 Rec: VId=1 VT=1035062102 FI=5 Strm=MD5 len=16 p=80f9668 +bls: block.c:92 Rec: VId=1 VT=1035062102 FI=6 Strm=UATTR len=95 p=80f968c +bls: block.c:92 Rec: VId=1 VT=1035062102 FI=6 Strm=DATA len=32768 p=80f96ff +bls: block.c:92 Rec: VId=1 VT=1035062102 FI=6 Strm=DATA len=32768 p=8101713 +bls: block.c:79 Dump block 80f8ad0: size=64512 BlkNum=2 + Hdrcksum=9acc1e7f cksum=9acc1e7f +bls: block.c:92 Rec: VId=1 VT=1035062102 FI=6 Strm=contDATA len=4087 p=80f8b40 +bls: block.c:92 Rec: VId=1 VT=1035062102 FI=6 Strm=DATA len=31970 p=80f9b4b +bls: block.c:92 Rec: VId=1 VT=1035062102 FI=6 Strm=MD5 len=16 p=8101841 +... +\end{verbatim} +\normalsize + +\section{bextract} +\label{bextract} +\index[general]{Bextract} +\index[general]{programme!bextract} + +Si vous devez utiliser {\bf bextract}, vous avez sans doute fait quelque chose +de travers. Par exemple, Si vous essayez de restaurer un fichier mais que vous +rencontrez des problèmes, voyez la section \ilink {Restoring When Things Go +Wrong}{database_restore} du chapitre Restauration de ce manuel. + +Une restauration se fait normalement en exécutant un Job {\bf Restore} depuis +la {\bf Console}. Toutefois, {\bf bextract} est utile pour extraire un seul +fichier (ou une liste de fichiers) d'une bande ou d'un fichier Bacula. En fait, +{\bf bextract} peut être un outil très utile pour restaurer des fichiers sur +système vierge en supposant qu'il démarre, que vous disposes d'un binaire +statique de {\bf bextract} et d'un fichier de {\bf bootstrap} approprié. + +Il faut garder à l'esprit les limitations actuelles de bextract : + +\begin{enumerate} +\item Il ne peut pas restaurer les listes de contrôle d'accès (fr:LCA, en:ACL) + qui ont été sauvegardées en plus des données. +\item Il ne peut pas restaurer les fichiers cryptés. +\item La longueur de la ligne de commande est assez limitée, ce qui signifie + que vous ne pourrez pas saisir un grand nombre de Volumes. Si vous avez + besoin d'indiquer plus de Volumes que ce que la ligne de commande + supporte, utilisez un fichier de bootstrap (voir plus bas) +\end{enumerate} + +bextract est invoqué de la façon suivante : + +\footnotesize +\begin{verbatim} + +Usage: bextract [-d debug_level] + -b specify a bootstrap file + -dnn set debug level to nn + -e exclude list + -i include list + -p proceed inspite of I/O errors + -V specify Volume names (separated by |) + -? print this message +\end{verbatim} +\normalsize + +où {\bf device-name} est l'Archive Device (nom brut ou nom de fichier complet) +du périphérique à lire, et {\bf directory-to-store-files} est un chemin qui sera +préfixé à tous les fichiers restaurés. + +NOTE : sur les machines Windows, si vous indiquez un préfixe comme d:/tmp, tout +fichier qui aurait du être restauré dans {\bf c:/My Documents} sera restauré +dans {\bf d:/tmp/My Documents}. En clair, le nom du disque initial est supprimé +lors de la restauration. Si aucun préfixe n'est précisé, le fichier est +restauré sur son disque d'origine. + +\subsection{Extraire avec des listes Include ou Exclude} +\index[general]{Listes!Extraire avec Include ou Exclude} +\index[general]{Extraire avec des listes Include ou Exclude} + +En utilisant l'option {\bf -e}, vous pouvez indiquer un fichier contenant une +liste de fichiers à exclure. Des caractères joker peuvent être utilisés dans la +liste d'exclusion. Cette option est normalement utilisée en conjonction avec +l'option {\bf -i} (voir plus bas). Les deux options {\bf -e} et {\bf -i} peuvent +être utilisées en même temps avec l'option {\bf -b}. Les filtres de bootstrap +sont appliqués en premiers, suivis de la liste Include, puis de la liste +Exclude. + +De même, et c'est sans doute plus important, en utilisant l'option {\bf -i}, +vous pouvez indiquer une fichier contenant une liste de fichiers et de +répertoires (un fichier/répertoire par ligne) à inclure dans la restauration. La +liste doit contenir les noms de fichiers complets (avec le chemin). Si vous +indiquez seulement un nom de répertoire, tous les fichiers et les +sous-répertoires de ce chemin seront restaurés. Si vous spécifiez une ligne ne +contenant qu'un nom de fichier seul (ie. {\bf my-file.txt}), il ne sera sans +doute pas extrait car vous n'avez pas précisé le chemin complet. + +Si par exemple le fichier {\bf include-list} contient : + +\footnotesize +\begin{verbatim} +/home/kern/bacula +/usr/local/bin +\end{verbatim} +\normalsize + +Alors la commande : + +\footnotesize +\begin{verbatim} +./bextract -i include-list -V Volume /dev/nst0 /tmp +\end{verbatim} +\normalsize + +va restaurer de l'archive Bacula {\bf /dev/nst0} tous les fichiers et +répertoires sauvegardés de {\bf /home/kern/bacula} et {\bf /usr/local/bin}. +Les fichiers seront restaurés avec leur chemin d'accès complet, mais sous le +répertoire {\bf /tmp} (i.e. /tmp/home/kern/bacula/... and +/tmp/usr/local/bin/...). + +\subsection{Extraire avec un fichier Bootstrap} +\index[general]{Fichier!Extraire avec un Bootstrap} +\index[general]{Extraire avec un fichier Bootstrap} + +L'option {\bf -b} est utilisée pour spécifier un fichier de {\bf bootstrap} +qui contient les informations nécessaires pour restaurer précisement les +fichiers que vous souhaitez. Les fichiers de {\bf bootstrap} sont facultatifs +mais fortement recommandés car c'est ce qui vous donne le plus de maîtrise sur +quels fichiers doivent être restaurés. Pour plus de détails sur les fichiers de +{\bf bootstrap}, voyez le chapitre +\ilink{Restaurer des fichiers avec un fichier de Bootstrap}{BootstrapChapter} de +ce document. Il faut noter qu'un fichier de bootstrap peut être aussi généré par +la commande {\bf restore}. Par exemple : + +\footnotesize +\begin{verbatim} +./bextract -b bootstrap-file /dev/nst0 /tmp +\end{verbatim} +\normalsize + +Le fichier de bootstrap vous permet de décrire précisément quels fichiers +doivent être restaurés (extraits). Vous pouvez utiliser un fichier de bootstrap +en même temps que des fichiers d'inclusion et/ou d'exclusion. Les conditions +du bootstrap seront appliquées en premier, et chaque enregistrement de fichier +sera ensuite comparé par rapport aux listes d'inclusion et d'exclusion. + +\subsection{Extraire depuis plusieurs Volumes} +\index[general]{Volumes!Extraire depuis plusieurs} +\index[general]{Extraire depuis plusieurs Volumes} + +Si vous souhaitez extraire des fichiers répartis sur plusieurs Volumes, vous +pouvez indiquer les noms de Volumes dans le fichier de bootstrap ou bien en +ligne commande, en les séparant par une barre verticale. Référez-vous à la +section plus haut, appelée {\bf Listing Multiple Volumes} (!!! FIXME !!!) pour +plus de détails. La même méthode peut être utilisée avec le programme +{\bf bextract}, et vous pouvez également lire le chapitre +\ilink{Bootstrap}{BootstrapChapter} de ce document. + +\section{bscan} +\label{bscan} +\index[general]{bscan} +\index[general]{programme!bscan} + + +Si vous devez utiliser ce programme, vous avez sans doute fait quelque chose +de travers. Par exemple, la meilleurs méthode pour restaurer une base Bacula +perdue ou endommagée est d'utiliser un fichier de bootstrap qui a été généré +lors de la sauvegarde (comme par défaut dans le fichierbacula-dir.conf). + +Le programme {\bf bscan} est utilisé pour recréer les enregistrements de la +base de données (catalogue) à partir des informations de sauvegarde contenues +dans un ou plusieurs Volumes. Cela n'est normalement nécessaire que dans le cas +où un ou plusieurs volumes ont été élagués ou purgés du catalogue (les +enregistrements du volume ne sont alors plus dans le catalogue), ou pour +les Volumes que vous avez archivés. Notez bien que si faites un scan de Volumes +ayant été purgés auparavant, vous serez en mesure de faire des restaurations +depuis ces volumes. Attention, à moins que vous ne changiez les délais de +rétention au niveau Job et File pour les Jobs ajoutés par le scan, le prochain +lancement d'un Job du même nom se traduira par nouvel élaguage des +enregistrements. Etant donné que le scan des volumes est très long, ceci peut +être très frustrant. + +En faisant attention, {\bf bscan} peut également être utilisé pour +synchroniser un catalogue existant avec un Volume. Bien qu'il n'ait jamais été +observé de cas où bscan a endommagé un catalogue, nous recommandons de faire +un backup (dump) de votre base avant de lancer {\bf bscan} pour être tranquille +(car ce dernier modifie la base de données). Consultez +\ilink{Compacter Votre Base de Données}{CompactingMySQL} pour les détails +de la méthode pour faire une copie de votre base de données. + +{\bf bscan} peut également être utile dans une situation de récupération sur +désastre, après la perte d'un disque dur si vous n'avez pas de fichier de +{\bf bootstrap} valide pour reinstaller votre système, ou bien si un Volume a +été recyclé mais pas réécrit, vous pouvez utiliser {\bf bscan} pour recréer +votre base de données, qui peut ensuite être utilisée pour restaurer votre +système ou un fichier dans son état précédent. + +Il est appelé ainsi : + +\footnotesize +\begin{verbatim} +Usage: bscan [options] + -b bootstrap specify a bootstrap file + -c specify configuration file + -d set debug level to nn + -m update media info in database + -n specify the database name (default bacula) + -u specify database user name (default bacula) + -P specify database password (default none) + -h specify database host (default NULL) + -p proceed inspite of I/O errors + -r list records + -s synchronize or store in database + -v verbose + -V specify Volume names (separated by |) + -w specify working directory (default from conf file) + -? print this message +\end{verbatim} +\normalsize + +Si vous utilisez MySQL ou PostgreSQL, il n'y a pas besoin d'indiquer un +répertoire de travail (working directory) puisque dans ce cas, bscan sait où +se trouvent les bases de données. Si vous avez protégé votre base de données +vous devrez peut-être fournir soit le nom de la base (option {\bf -b}), le +nom d'utilisateur (option {\bf -u}), et/ou le mot de passe (option {\bf -p}). + +NOTE : avant de pouvoir utiliser {\bf bscan}, il vous faut au moins une base +de données vide mais valide. Si votre base de données existe mais que certains +enregistrements manquent, tout va bien. Si vous avez perdu ou détruit votre base +de données, vous devez tout d'abord vous assurer que soit MySQL ou PostgresSQL +fonctionnent, ensuite créer la base de données de Bacula (appelée bacula +habituellement) et finalement créer les tables de Bacula en utilisant les +scripts du répertoire {\bf cats}. Ceci est expliqué au chapitre +\ilink{Installation}{CreateDatabase} de ce manuel. Pour terminer, avant de +faire un scan vers une base de données vide, vous devez démarrer et arrêter +le Director avec le von fichier bacula-dir.conf de sorte qu'il créee les +enregistrements de Client et de Storage (qui ne sont pas stockés dans les +Volumes). Sans ces enregistrements, le scan serait incapable de rapprocher +les enregistrements de Job du bon Client. + +Oublions pour l'instant la complexité d'une reconstruction complète de votre +catalogue et supposons que vous ayez un backup dans les Volumes "Vol001" +et "Vol002", et que par la suite tous les enregestriments d'un ou des deux +Volumes sont élagués ou purgés de la base de données. En utilisant {\bf bscan} +vous pouver recréer les entrées du catalogue pour ces volumes et utiliser +la commande {\bf restore} dans la console pour restaurer ce que vous souhaitez. +Une commande comme : + +\footnotesize +\begin{verbatim} +bscan -c bacula-sd.conf -v -V Vol001\|Vol002 /dev/nst0 +\end{verbatim} +\normalsize + +vous donnera une idée de ce qui pourrait se passer sans changer votre catalogue. +Vous aurez sans doute besoin de changer le chemin du fichier de configuration +du Storage Daemon, le nom du Volume, et le nom de votre lecteur de bandes (ou +de votre disque). Cette commande doit lire toute la bande, et si celle-ci +contient beaucoup de données, cela prendra assez longtemps, ce qui fait que +vous voudrez sans doute utiliser directement la commande indiquée ci-dessous. +Notez bien que si vous sauvegardez vers un volume de disque, vous devez +remplacer le nom de périphérique par le chemin du répertoire contenant les +Volumes. Ceci doit correspondre à l'entrée "Archive Device" du fichier de +configuration. + +Pour ensuite stocker les enregistrements dans le catalogue, ajoutez l'option +{\bf -s} ainsi : + +\footnotesize +\begin{verbatim} +bcan -s -m -c bacula-sd.conf -v -V Vol001\|Vol002 /dev/nst0 +\end{verbatim} +\normalsize + +Lors de l'écriture dans la base de donnnées, si bscan trouve des enregistrements +existants, il va en général les mettre à jour s'ils sont mauvais, ou bien les +laisser tels quels. Si les Volumes que vous scannez sont déjà référencés dans +le catalogue (en partie ou totalement), il ne sera fait aucun mal aux données +existantes. Les données manquantes seront simplement ajoutées + +Si vous avez plusieurs bandes, vous devez les scanner ainsi : + +\footnotesize +\begin{verbatim} + bscan -s -m -c bacula-sd.conf -v -V Vol001\|Vol002\|Vol003 /dev/nst0 +\end{verbatim} +\normalsize + +Comme il y a une limite sur la longueur de la ligne de commande acceptée par +{\bf bscan} (511 octets), vous devrez crééer manuellement un fichier de +bootstrap si vous avez beaucoup de volumes. Référez-vous au chapitre +\ilink{Bootstrap}{BootstrapChapter} de ce manuel pour plus de détails, en +particulier la section appelée \ilink{Bootstrap pour bscan}{bscanBootstrap}. + +Vous devriez toujours essayez de spécifier les bandes dans l'ordre dans lequel +elles ont été écrites, même si bscan est capable de scanner des bandes non +consécutives. Tout enregistrement incomplet à la fin de la bande sera tout +simplement ignoré dans ce cas. Si vous réparez simplement un catalogue, cela +peut suffire, mais si vous recréez un catalogue à partir de zéro, ceci laissera +votre base de données dans un état inconsistant. Si vous ne spécifiez pas tous +les volumes nécessaires en une seule commande, bscan ne sera pas capable de +restaurer les enregistrements répartir sur deux volumes. En d'autres mots, il +est préférable de spécifier deux ou trois volumes en une seule commande bscan +plutôt que de lancer deux ou trois fois bscan, à chaque fois avec un seul +volume. + + +Notez bien que le processus de restauration en utilisant bscan n'est pas +identique à la création originale des données du catalogue. En effet, certaines +données comme les enregistrements de Client ainsi que d'autres données non +essentielles (comme les lectures de volumes, les montages de volumes, etc.) ne +sont pas stockées dans le Volume, et donc non restaurées par bscan. +Cependant, les résultats d'un bscan sont parfaitement valides et permettront de +restaurer n'importe quel fichier du catalogue en utilisant les commandes +habituelles de la console Bacula. Si vous partez d'un catalogue vide en espérant +que bscan le reconstruira, vous serez un peu déçu, mais vous devez vous assurer +au minimum que le fichier bacula-dir.conf est le même que précédemment -- en +clair il doit contenir toutes les bonnes ressources Client pour qu'elles soient +recrées dans la nouvelle base de données {\bf avant} de lancer bscan. Quand le +Director démarre, il recrée tout enregistrement Client manquant du catalogue. +Un autre problème pouvant subvenir est que même si les Volumes (enregistrements +de Media) sont recrées dans la base de données, leur état d'autochanger et les +slots ne seront pas correctement affectés. Vous devrez réparer ceci en utilisant +la commande {\bf update slots}. Vous pouvez également avoir d'autres problèmes. +Avant de vous lancer dans un bscan, vous devez toujours essayer de remettre +votre système en état à partir d'une sauvegarde du catalogue. + +\subsection{Utilisation de bscan pour comparer un Volume à un Catalogue existant} +\index[general]{Catalogue!Utilisation de bscan pour comparer un Volume à un} +\index[general]{Utilisation de bscan pour comparer un Volume à un Catalogue existant} + +Si vous souhaitez comparer le contenu d'un Volume à un catalogue existant sans +changer ce dernier, vous pouvez le faire en toute sécurité si et seulement si +vous ne spécifiez {\bf aucune} des deux options {\bf -m} ou {\bf -s}. +Cependant, en l'état actuel du programme (Bacula version 1.26 !! FIXME !!), les +fonctions de comparaison ne sont pas suffisamment approfondies, nous ne +recommandons donc pas ce mode à d'autres fins que des tests + +\subsection{Utilisation de bscan pour recréer un Catalogue à partir d'un Volume} +\index[general]{Volume!Utilisation de bscan pour recréer un Catalogue à partir d'un} +\index[general]{Utilisation de bscan pour recréer un Catalogue à partir d'un Volume} + +C'est dans ce mode que {\bf bscan} est le plus utile. Vous pouvez soit faire un +{\bf bscan} vers un catalogue fraîchement créé, ou directement dans votre +catalogue existant (après en avoir faire une copie de sauvegarde comme décrit +plus haut. Vous devez normalement partir d'un catalogue fraîchement créé, ne +contenant aucune donnée. + +En partant d'un Volume seul, appelé {\bf TestVolume1}, la commande est utilisée +ainsi : + +\footnotesize +\begin{verbatim} +./bscan -V TestVolume1 -v -s -m -c bacula-sd.conf /dev/nst0 +\end{verbatim} +\normalsize + +Dans le cas de volumes multiples, ajoutez-les au premier en les séparant par une +barre verticale. Vous devrez peut-être préfixer la barre verticale d'un +antislash pour l'échapper du shell -- ie. +{\bf TestVolume1\textbackslash{}|TestVolume2}. L'option {\bf -v} a été ajoutée +pour que le programme soit plus bavard. L'option {\bf -s} indique à {\bf bscan} +de stocker les données dans la base. Le nom du périphérique physique +{\bf /dev/nst0} est indiqué après toutes les options. + +Par exemple, après avor fait une sauvegarde complète suivie de deux +incrémentales d'un répertoire, j'ai réinitialisé la base de données SQLite comme +décrit plus haut et en utilisant le fichier bootstrap.bsr indiqué plus haut, +j'ai utilisé la commande suivante : + +\footnotesize +\begin{verbatim} +./bscan -b bootstrap.bsr -v -s -c bacula-sd.conf /dev/nst0 +\end{verbatim} +\normalsize + +qui a généré l'affichage suivant : + +\footnotesize +\begin{verbatim} +bscan: bscan.c:182 Using Database: bacula, User: bacula +bscan: bscan.c:673 Created Pool record for Pool: Default +bscan: bscan.c:271 Pool type "Backup" is OK. +bscan: bscan.c:632 Created Media record for Volume: TestVolume1 +bscan: bscan.c:298 Media type "DDS-4" is OK. +bscan: bscan.c:307 VOL_LABEL: OK for Volume: TestVolume1 +bscan: bscan.c:693 Created Client record for Client: Rufus +bscan: bscan.c:769 Created new JobId=1 record for original JobId=2 +bscan: bscan.c:717 Created FileSet record "Kerns Files" +bscan: bscan.c:819 Updated Job termination record for new JobId=1 +bscan: bscan.c:905 Created JobMedia record JobId 1, MediaId 1 +bscan: Got EOF on device /dev/nst0 +bscan: bscan.c:693 Created Client record for Client: Rufus +bscan: bscan.c:769 Created new JobId=2 record for original JobId=3 +bscan: bscan.c:708 Fileset "Kerns Files" already exists. +bscan: bscan.c:819 Updated Job termination record for new JobId=2 +bscan: bscan.c:905 Created JobMedia record JobId 2, MediaId 1 +bscan: Got EOF on device /dev/nst0 +bscan: bscan.c:693 Created Client record for Client: Rufus +bscan: bscan.c:769 Created new JobId=3 record for original JobId=4 +bscan: bscan.c:708 Fileset "Kerns Files" already exists. +bscan: bscan.c:819 Updated Job termination record for new JobId=3 +bscan: bscan.c:905 Created JobMedia record JobId 3, MediaId 1 +bscan: Got EOF on device /dev/nst0 +bscan: bscan.c:652 Updated Media record at end of Volume: TestVolume1 +bscan: bscan.c:428 End of Volume. VolFiles=3 VolBlocks=57 VolBytes=10,027,437 +\end{verbatim} +\normalsize + +Il faut bien noter ici que {\bf bscan} affiche une ligne à chaque enregistrement +majeur qu'il créé. Vu le grand volume d'affichage potentiel, il n'affiche pas +une ligne pour chaque enregistrement de fichier, à moins qu'il ne trouve +l'option {\bf -v} au moins deux fois sur la ligne de commande. + + +Dans le cas d'un enregistrement de Job, le nouveau JobId ne sera pas le même +que le JobId initial. Par exemple, pour le premier JobId rencontré ci-dessus, +le nouveau JobId est 1 alors que le JobId initial était 2. Il n'y a pas de souci +à se faire, c'est le fonctionnement normal des bases de données. {\bf bscan} se +chargera de tout conserver de manière homogène. + +Bien que {\bf bscan} dise qu'il a créé un enregistrement de Client pour le +Client: Rufus trois fois, il ne le fait effectivement que la première fois. +C'est le comportement attendu. + +Vous avez peut-être remarqué que bscan a rencontré une marque de fin de fichier +après chaque Job (Got EOF on device ...). Pour terminer, la dernière ligne +contient les statistiques du bscan. + +Si vous aviez ajouté une seconde option {\bf -v} à la ligne de commande, Bacula +aurait été encore plus bavard, en affichant pratiquement tous les détails de +chaque enregistrement de Job rencontré. + +Maintenant si vous démarrez Bacula et tapez la commande {\bf list jobs} dans la +console, vous obtenez : + +\footnotesize +\begin{verbatim} ++-------+----------+------------------+------+-----+----------+----------+---------+ +| JobId | Name | StartTime | Type | Lvl | JobFiles | JobBytes | JobStat | ++-------+----------+------------------+------+-----+----------+----------+---------+ +| 1 | kernsave | 2002-10-07 14:59 | B | F | 84 | 4180207 | T | +| 2 | kernsave | 2002-10-07 15:00 | B | I | 15 | 2170314 | T | +| 3 | kernsave | 2002-10-07 15:01 | B | I | 33 | 3662184 | T | ++-------+----------+------------------+------+-----+----------+----------+---------+ +\end{verbatim} +\normalsize + +ce qui correspond pratiquement à l'identique à la base de données avant qu'elle +soit réinitialisée et restaurée avec bscan. Tous les Jobs et Files trouvés sur +la bande ont été restaurés, y compris la plupart des enregistrements de Media. +Les enregistrements de Volume (Media) restaurés sont marqués comme {\bf Full} +pour qu'ils ne puissent pas être écrasés sans intervention de l'opérateur. + +Il faut bien voir que {\bf bscan} ne peut pas restaurer une base de données +dans son état exact précédent car une grande partie des informations moins +importantes ne sont pas stockées sur la bande. Malgré tout, la reconstruction +est assez complète pour utiliser la commande {\bf restore} et obtenir des +résultats valides. + +Un aspect intéresant d'une restauration de catalogue avec {\bf bscan} est le cas +où la sauvegarde est faite pendant que Bacula fonctionne et est en train +d'écrire sur la bande. Au moment où la sauvegarde du catalogue est faite, la +bande que Bacula écrit contiendra, disons, 10 fichiers, mais après la sauvegarde +du catalogue, il y aura 11 fichiers sur la bande. Il y a donc une différence +entre le contenu du catalogue et celui de la bande. Si après une restauration du +catalogue vous tentez d'écrire sur la même bande (celle utilisée pour +sauvegarder le catalogue), Bacula détectera une différence entre le nombre de +fichiers enregistrés dans le catalogue et ce qu'il y a sur la bande, et marquera +cette dernière en erreur. + +Il y a deux solutions à ce prolbème. La première et sans doute la plus simple +est de marquer le volume comme Used avant toute sauvegarde. La seconde est de +corriger à la main le nombre de fichiers associé à l'enregistrement de Media du +catalogue. Cette procédure est documentée ailleurs dans le manuel et implique +d'utiliser la commande {\bf update volume} dans la {\bf bconsole}. + +\subsection{Utilisation de bscan pour corriger le nombre de fichiers d'un Volume} +\index[general]{Utilisation de bscan pour corriger le nombre de fichiers d'un Volume} +\index[general]{Nombre!Utilisation de bscan pour corriger le nombre de fichiers d'un Volume} + +Si le Storage daemon plante pendant un Job de sauvegarde, le catalogue ne sera +pas mis à jour correctement pour le volume en cours d'utilisation au moment +du plantage. Ceci signifie que le Storage daemon aura écrit, disons 20 fichiers +sur la bande, mais l'enregistrement de Volume du catalogue n'indiquera que 19 +fichiers. + +Bacula refuse d'écrire sur une bande qui contient un nombre différent de +fichiers par rapport au catalogue. Pour corriger ce problème, vous pouvez lancer +un {\bf bscan} avec l'option {\bf -m} (mais {\bf sans} l'option {\bf -s}) pour +mettre à jour seulement l'enregistrement de Media pour les Volumes lus. + +\subsection{Après bscan} +\index[general]{Après bscan} +\index[general]{Bscan!Après} + +Si vous utilisez {\bf bscan} pour entrer le contenu d'un Volume dans un +catalogue existant, vous devez être conscient que les enregistrements ajoutés +peuvent être immédiatement élagués lors du prochain job, surtout si le Volume +est très ancien ou a été purgé précédemment. Pour éviter ceci, vous pouvez, +après avoir lancé {\bf bscan}, positionner l'état du Volume dans le catalogue +(VolStatus) à la valeur {\bf Read-Only} en utilisant la commande {\bf update}. +Ceci vous permettra de restaurer depuis ce volume sans risquer qu'il soit +immédiatement purgé. Uns fois vos données restaurées et à l'abri, vous pouvez +réinitialiser le VolStatus à {\bf Used} et le Volume sera purgé du catalogue. + +\section{bcopy} +\label{bcopy} +\index[general]{bcopy} +\index[general]{programme!bcopy} + +Le programme {\bf bcopy} peut être utilisé pour copier une archive {\bf Bacula} +vers une autre. Vous pouvez par exemple copier une bande vers un fichier, un +fichier vers une bande, un fichier vers un fichier ou une bande vers une bande. +Pour du bande vers bande, vous devez disposer de deux lecteurs de bande. (une +version future est planifiée, avec la possibilité de se servir du disque comme +tampon). Le processus de copie n'écrit aucune information dans le catalogue à +propos du nouveau Volume. Ceci signifie que ce nouveau Volume, même s'il +contient des données de sauvegarde valides, ne peut pas être accédé directement +à partir des entrées du catalogue. Si vous souhaitez pouvoir utiliser le Volume +avec la commande restore, vous devez d'abord le passer à bscan pour l'intégrer +au catalogue. + +\subsection{Options de la commande bcopy} +\index[general]{Options!Commande bcopy} +\index[general]{Options de la commande bcopy} + +\footnotesize +\begin{verbatim} +Usage: bcopy [-d debug_level] + -b bootstrap specify a bootstrap file + -c specify configuration file + -dnn set debug level to nn + -i specify input Volume names (separated by |) + -o specify output Volume names (separated by |) + -p proceed inspite of I/O errors + -v verbose + -w dir specify working directory (default /tmp) + -? print this message +\end{verbatim} +\normalsize + +En utilisant un fichier de {\bf bootstrap}, vous pouvez copier une partie du +contenu d'une archive Bacula vers une autre archive. + +Un des objectifs de programme est de récupérer autant de données que possible +d'une bande endommagée. Cependant, cette version ne dispose pas encore de cette +fonctionnalité. + +!!!! FIXME !!!! +Ce programme étant assez récent, tout retour d'utilisation sera apprécié. Je +ne dispose de plus que d'un seul lecteur de bandes, je n'ai donc pas testé +ce programme avec deux lecteurs. + +\section{btape} +\label{btape} +\index[general]{Btape} +\index[general]{programme!btape} + +Ce programme permet d'effectuer un bon nombre d'opérations élémentaires sur +une bande à partir d'un simple interface terminal. Il ne fonctionne qu'avec les +bandes, et non pas avec les autres supports autorisés par Bacula +(DVD, File, etc.). La commande {\bf test}, décrite plus bas, peut être très +utile pour diagnostiquer les problèmes de compatibilité de lecteurs un peu +anciens. A part le test initial de compatibilit des lecteurs de bande avec +{\bf Bacula}, {\bf btape} sera principalement utilisé par les développeurs +pour écrire de nouveaux pilotes de lecteurs de bande. + +{\bf btape} peut être dangereux à utiliser avec des bandes {\bf Bacula} +existantes car il va re-étiqueter une bande ou bien écrire des données dessus +sans se soucier de la présence de données précieuses. Faites très attention, et +ne l'utilisez que sur des bandes vierges. + +Pour fonctionner correctement, {\bf btape} a besoin de lire le fichier de +configuration du Storage daemon. Par défaut, il cherchera un fichier nommé +{\bf bacula-sd.conf} dans le répertoire courant. Si votre fichier de +configuration se trouve ailleurs, utilisez l'option {\bf -c} pour lui indiquer +où. + +Le nom du périphérique physique doit être indiqué en ligne de commande, et ce +même nom doit être présent dans le fichier de configuration du Storage daemon +lu par {\bf btape}. + +\footnotesize +\begin{verbatim} +Usage: btape + -b specify bootstrap file + -c set configuration file to file + -d set debug level to nn + -p proceed inspite of I/O errors + -s turn off signals + -v be verbose + -? print this message. +\end{verbatim} +\normalsize + +\subsection{Utilisation de btape pour vérifier votre lecteur de bandes} +\index[general]{Utilisation de btape pour vérifier votre lecteur de bandes} +\index[general]{lecteur de bandes!Utilisation de btape pour vérifier votre} + +Une des raisons d'être de ce programme est de s'assurer que le fichier de +configuration du Storage Daemon est correctement défini pour que Bacula puisse +lire et écrire correctement des bandes. + +Il est fortement recommandé d'utiliser la commande {\bf test} avant de lancer +votre premier job Bacula pour être bien sûr que les paramètres du périphérique +de stockage (lecteur de bande) permettront à {\bf Bacula} de fonctionner +correctement. Vous devez simplement monter une bande vierge, lancer la commande +et l'affichage sera assez clair pour se passer d'explications. Référez-vous au +chapitre \ilink{Test des bandes}{TapeTestingChapter} de ce manuel pour les +détails. + +\subsection{Commandes de btape} +\index[general]{Commandes de btape} +\index[general]{Commandes!btape} + +Voilà la liste complète des commandes : + +\footnotesize +\begin{verbatim} + Command Description + ======= =========== + autochanger test autochanger + bsf backspace file + bsr backspace record + cap list device capabilities + clear clear tape errors + eod go to end of Bacula data for append + eom go to the physical end of medium + fill fill tape, write onto second volume + unfill read filled tape + fsf forward space a file + fsr forward space a record + help print this command + label write a Bacula label to the tape + load load a tape + quit quit btape + rawfill use write() to fill tape + readlabel read and print the Bacula tape label + rectest test record handling functions + rewind rewind the tape + scan read() tape block by block to EOT and report + scanblocks Bacula read block by block to EOT and report + speed report drive speed + status print tape status + test General test Bacula tape functions + weof write an EOF on the tape + wr write a single Bacula block + rr read a single record + qfill quick fill command +\end{verbatim} +\normalsize + +Les commandes les plus utiles sont : + +\begin{itemize} +\item {\tt test} -- test d'écriture d'enregistrements et de marques de fin de + fichier (EOF), puis test de lecture. +\item {\tt fill} -- remplissage complet d'un volume avec des enregistrements, + puis écriture de quelques enregistrements dans un second volume. Pour + terminer, les deux volumes sont relus. + Cette commande écrit des blocs de données aléatoires, pour que votre lecteur + de bandes ne puisse pas compresser les données. C'est donc un bon test pour + estimer la contenance physique réelle de vos bandes. +\item {\tt readlabel} -- lit et affiche l'étiquette (label) d'une bande Bacula. +\item {\tt cap} -- affiche les fonctionnalités du périphérique définies dans le + fichier de configuration et comment elles sont perçues par le Storage + Daemon. + \end{itemize} + +La commande {\bf readlabel} peut être utilisée pour afficher les détails d'une +étiquette de bande Bacula. Ceci peut être utile si l'étiquette de la bande est +pardue ou endommagée. + +Au cas où vous souhaitiez re-étiquer une bande {\bf Bacula}, vous pouvez +simplement utiliser la commande {\bf label} qui écrasera l'ancienne étiquette. +Cependant, nous recommandons d'utiliser la commande {\bf label} de la +{\bf Console} car elle n'écrasera jamais une bande Bacula valide. + + +\subsubsection*{Tester votre lecteur de bandes} +\label{sec:btapespeed} + +Pour déterminer la meilleure configuration de votre lecteur de bandes, vous +pouvez utiliser la commande \texttt{speed} du programme \texttt{btape}. + +La commande peut accepter les arguments suivants : +\begin{itemize} +\item[\texttt{file\_size=n}] indique le Maximum File Size pour ce test (entre 1 + et 5GB). L'unité est le GB. +\item[\texttt{nb\_file=n}] indiquer le nombre de fichiers à écrire. La taille + totale des données écrites devraient être supérieure à la quantité de + mémoire de la machine ($file\_size*nb\_file$). +\item[\texttt{skip\_zero}] ce drapeau permet de passer les tests de données + constantes. +\item[\texttt{skip\_random}] ce drapeau permet de passer les tests de données + aléatoires. +\item[\texttt{skip\_raw}] ce drapeau permet de passer les tests en accès direct. +\item[\texttt{skip\_block}] ce drapeau permet de passer les tests en accès par + bloc Bacula. +\end{itemize} + +\begin{verbatim} +*speed file_size=3 skip_raw +btape.c:1078 Test with zero data and bacula block structure. +btape.c:956 Begin writing 3 files of 3.221 GB with blocks of 129024 bytes. +++++++++++++++++++++++++++++++++++++++++++ +btape.c:604 Wrote 1 EOF to "Drive-0" (/dev/nst0) +btape.c:406 Volume bytes=3.221 GB. Write rate = 44.128 MB/s +... +btape.c:383 Total Volume bytes=9.664 GB. Total Write rate = 43.531 MB/s + +btape.c:1090 Test with random data, should give the minimum throughput. +btape.c:956 Begin writing 3 files of 3.221 GB with blocks of 129024 bytes. ++++++++++++++++++++++++++++++++++++++++++++ +btape.c:604 Wrote 1 EOF to "Drive-0" (/dev/nst0) +btape.c:406 Volume bytes=3.221 GB. Write rate = 7.271 MB/s ++++++++++++++++++++++++++++++++++++++++++++ +... +btape.c:383 Total Volume bytes=9.664 GB. Total Write rate = 7.365 MB/s + +\end{verbatim} + +Dans le cas de la compression matérielle, le test aléatoire vous donnera le +début minimum de votre lecteur. Le test à données constantes vous donnera la +débit maximum de votre chaîne matérielle. (processeur, mémoire, carte SCSI, +câble, lecteur, bande) + +Vous pouvez changer la taille des blocs dans le fichier de configuration du +Storage Daemon + +\section{Autres Programmes} +\index[general]{Programmes!Autres} +\index[general]{Autres Programmes} + +Les programmes suivants n'ont pas forcément besoin de fichier de configuration +ou de nom de périphérique. + +\section{bsmtp} +\label{bsmtp} +\index[general]{Bsmtp} +\index[general]{programme!bsmtp} + +{\bf bsmtp} est un simple programme MTA (Mail Transfer Agent) qui apporte un peu +plus de souplesse que les programmes que l'on trouve généralement sur les +systèmes UNIX. Il peut même être utilisé sur des machines Windows. + +Il est appelé de la façon suivante : + +\footnotesize +\begin{verbatim} +Usage: bsmtp [-f from] [-h mailhost] [-s subject] [-c copy] [recipient ...] + -c set the Cc: field + -dnn set debug level to nn + -f set the From: field + -h use mailhost:port as the bsmtp server + -l limit the lines accepted to nn + -s set the Subject: field + -? print this message. +\end{verbatim} +\normalsize + +Si l'option {\bf -f} n'est pas spécifiée, {\bf bsmtp} utilisera votre +identifiant (userid). Si l'option {\bf -h} n'est pas spécifiée, {\bf bsmtp} +utilisera la variable d'environnement {\bf bsmtpSERVER} ou bien {\bf localhost} +si {\bf bsmtpSERVER} n'existe pas. Par défaut le port 25 est utilisé. + +Si une limite du nombre de lignes est indiquée avec l'option {\bf -l}, +{\bf bsmtp} n'enverra pas de mail avec un corps de message dépasant ce nombre +de lignes. C'est très utile pour les rapports de gros jobs de restauration où +a liste des fichiers restaurés peut produire des mails très longs que votre +serveur de mail pourrait refuser (ou qui pourraient le planter). Cependant, il +faut être conscient du fait que vous risquez de rater le rapport du job et tout +message d'erreur rencontré, à moins de consulter le fichier de log produit par +le Director (pour plus de détails, voir la ressource {\bf Messages} de ce manuel) + + +L'argument {\bf recipients} est la liste des destinataires du mail, séparés par +des espaces. + +Le corps du message est lu sur l'entrée standard. + +Un exemple d'utilisation de {\bf bsmtp} serait de mettre les directives +suivantes dans la ressource {\bf Messages} de votre fichier +{\bf bacula-dir.conf}. Attention, ces commandes doivent être saisies sur une +seule ligne chacune. + +\footnotesize +\begin{verbatim} + mailcommand = "/home/bacula/bin/bsmtp -h mail.domain.com -f \"\(Bacula\) %r\" + -s \"Bacula: %t %e of %c %l\" %r" + operatorcommand = "/home/bacula/bin/bsmtp -h mail.domain.com -f \"\(Bacula\) %r\" + -s \"Bacula: Intervention needed for %j\" %r" +\end{verbatim} +\normalsize + +Où vous remplacez {\bf /home/bacula/bin} par le chemin d'accès à vos exécutables +de {\bf Bacula} et {\bf mail.domain.com} par le nom d'hôte complètement qualifié +de votre serveur SMTP, qui écoute normalement sur le port 25. Pour plus de +détails sur les caractères de substitution (ie. \%r) utilisés ci-dessus, +référez-vous au chapitre +\ilink{ MailCommand de la ressource Messages}{mailcommand} de ce manuel. + +Il est TRES fortement recommandé de tester manuellement un ou deux cas pour +être sur que le {\bf mailhost} spécifié est correct et qu'il accepte bien vos +envois. Comme {\bf bsmtp} utiliser toujours une connection TCP plutôt que +d'écrire dans le spool, vous constaterez peut-être que votre adresse {\bf from} +est rejetée car elle ne contient pas de domaine valide, ou bien parce que votre +message déclenche une règle de filtrage antispam. En général, il est conseillé +d'utiliser un nom de domaine complètement qualifié dans le champ {\bf from}, et +suivant si votre passerelle SMTP est Exim ou Sendmail, vous devrez peut-être +modifier la syntaxe du "From:" du message. N'hésitez pas à tester. + +En utilisant {\bf bsmtp} à la main, vous devrez terminer votre message par un +CTRL-D sur la colonne 1 de la dernière ligne. +% TODO: is "column" the correct terminology for this? +% ANSWER : yes :) + +Si vous obtenez des dates invalides (comme 1970) et que vous êtes en +environnement de langue autre que l'Anglais, vous pouvez essayer d'ajouter un +{\tt LANG="en\_US"} juste avant l'appel de bsmtp. + +{\bf bsmtp} tente généralement d'assainir le contenu des champs from, copy, +mailhost, et recipient, en ajoutant les caractères \lt{} et \gt{} nécessaires +autour de la partie adresse. Cependant, si vous indiquez un {\bf display-name} +(voir RFC 5332), certains serveurs SMTP comme Exchange pourraient ne pas +accepter le message si le {\bf display-name} est présent entre les caractères +\lt{} et \gt{}. Comme il est dit plus haut, vous devez tester, et si vous +rencontrez ce problème, vous pouvez ajouter à la main les caractères \lt{} et +\gt{} aux commandes {\bf mailcommand} ou {\bf operatorcommand} : quand +{\bf bsmtp} remettra l'adresse en forme, il la laissera inchangée s'il trouve +déjà les caractères \lt{} ou \gt{}. + +\section{dbcheck} +\label{dbcheck} +\index[general]{Dbcheck} +\index[general]{programme!dbcheck} +{\bf dbcheck} est un programme qui rechercha des incohérences logiques dans les +tables de votre base de données Bacula, et éventuellement les corrigera. +Ce programme est une routine de maintenance de la base de données, dans le sens +où il détecte et supprime les lignes inutilisées, mais ce n'est pas un outil de +réparation de base de données. Pour réparer une base de données, il faut +utiliser les outils fournis avec votre système de base de données. dbcheck n'a +normalement pas besoin d'être utilisé, sauf dans les cas de crash de Bacula ou +bien si vous avez beaucoup de Clients, de Pools ou de Jobs ayant été supprimés. + +Le programme {\bf dbcheck} est disponible dans le répertoire +{\bf \lt{}bacula-source\gt{}/src/tools} des sources de Bacula. Bien qu'il soit +compilé lors du make, il n'est normalement pas "installé". + +Il est appelé ainsi : + +\footnotesize +\begin{verbatim} +Usage: dbcheck [-c config ] [-B] [-C catalog name] [-d debug_level] + [] [] + -b batch mode + -C catalog name in the director conf file + -c Director conf filename + -B print catalog configuration and exit + -d set debug level to + -dt print timestamp in debug output + -f fix inconsistencies + -v verbose + -? print this message +\end{verbatim} +\normalsize + +Si l'option \textbf{-B} est spécifiée, dbcheck affichera les informations de +connexion au catalogue en texte brut. C'est utile pour le sauvegarde de manière +sécurisée. + +\begin{verbatim} + $ dbcheck -B + catalog=MyCatalog + db_type=SQLite + db_name=regress + db_driver= + db_user=regress + db_password= + db_address= + db_port=0 + db_socket= +\end{verbatim} %$ + +Si l'option {\bf -c} est donnée avec le fichier de configuration du Director, +il n'y a besoin d'aucun autre argument, en particulier le répertoire de travail +car dbcheck le lira dans le fichier. + + +Si l'option {\bf -f} est spécifiée, {\bf dbcheck} réparera ({\bf fix}) les +incohérences qu'il trouvera. Dans le cas contraire, il sera contentera de les +rapporter. + +Si l'option {\bf -b} est spécifiée, {\bf dbcheck} fonctionnera en mode batch, il +lancera tout de suite l'examen et la correction (si l'option -f est présente) +de toutes les incohérences. Si l'option {\bf -b} n'est pas spécifiée, +{\bf dbcheck} sera lancé en mode interactif et affichera un menu tel que : + +\footnotesize +\begin{verbatim} +Hello, this is the database check/correct program. +Please select the function you want to perform. + 1) Toggle modify database flag + 2) Toggle verbose flag + 3) Repair bad Filename records + 4) Repair bad Path records + 5) Eliminate duplicate Filename records + 6) Eliminate duplicate Path records + 7) Eliminate orphaned Jobmedia records + 8) Eliminate orphaned File records + 9) Eliminate orphaned Path records + 10) Eliminate orphaned Filename records + 11) Eliminate orphaned FileSet records + 12) Eliminate orphaned Client records + 13) Eliminate orphaned Job records + 14) Eliminate all Admin records + 15) Eliminate all Restore records + 16) All (3-15) + 17) Quit +Select function number: +\end{verbatim} +\normalsize + +En entrant 1 ou 2, vous pouvez bascule d'un état à l'autre pour les drapeaux +de modification de la base de données (option -f) et pour le drapeau du mode +bavard (-v). Il est utile et rassurant de désactiver la modification de la +base de données, de lancer un ou plusieurs tests de cohérence (options 3 à 9) +pour voir ce qui serait fait, puis de se mettre en mode modification, et de +nouveau lancer les tests. + +Les incohérences détectées sont les suivantes : + +\begin{itemize} +\item Duplicate filename records (Doublons dans les noms de fichiers). Ceci peut + se produire si deux instances de Bacula sont exécutées simultanément, et que + les deux ajoutent des noms de fichiers en même temps. Ceci arrive rarement + mais la base de données se retrouve alors dans un état incohérent. Dans ce + cas, vous rencontrerez des messages d'erreur pendant les Jobs qui avertiront + de doublons dans la base de données. Si vous ne rencontrez pas ces erreurs, + vous n'avez aucune raison de lancer cette vérification. +\item Repair bad Filename records (Réparation des noms de fichiers erronés) . Ce + test vérifie et corrige les noms de fichiers se terminant par un slash (ils + ne doivent pas en avoir) +\item Repair bad Filename records. This checks and corrects filenames that + have a trailing slash. They should not. +\item Repair bad Path records (Réparation des chemins erronés). Ce test vérifie + et corrige les noms de chemins qui ne se terminent pas par un slash (ils + doivent en avoir). +\item Duplicate path records (Doublons dans les noms de chemins). Ceci peut + se produire si deux instances de Bacula sont exécutées simultanément, et que + les deux ajoutent des noms de fichiers en même temps. Ceci arrive rarement + mais la base de données se retrouve alors dans un état incohérent. Voyez + plus haut pour les explications. +\item Orphaned JobMedia records (JobMedia orphelins). Ceci se produit quand un + enregistrement de Job est supprimé (directement en SQL par l'utilisateur par + exemple), mais que le JobMedia correspondant (un pour chaque Volume utilisé + par le Job) n'est pas supprimé. Ceci ne doit normalement pas se produire, et + même si cela arrive, ces enregistrements n'occupent pas beaucoup d'espace + dans la base de données. Si vous le souhaitez, vous pouver utiliser cette + vérification pour supprimer ces enregistrements orphelins. +\item Orphaned File records (Fichiers orphelins). Ceci se produit quand un + enregistrement de Job est supprimé (directement en SQL par l'utilisateur par + exemple), mais que les enregistrements de Fichiers correspondants (un pour + chaque Volume utilisé par le Job) ne sont pas supprimés. Attention, la + recherche ce des enregistrements peut être {\bf très} longue (en heures) sur + une base de données importantes. Ceci ne doit normalement pas se produire + car Bacula fait tout pour l'empêcher. Il est cependant recommandé de lancer + cette vérification une fois par an car les Fichiers orphelins peuvent + occuper beaucoup d'espace dans votre base de données. Assurez-vous d'avoir + des index sur les champs JobId, FilenameId, et PathId de la table File de + votre catalogue avant de lancer cette commande. +\item Orphaned Path records (Chemins orphelins). Ceci se produit à chaque fois + qu'un répertoire est supprimé du système et tous que les enregistrements de + Job associés ont été purgés. Lors de la purge ou de l'élaguage des Jobs, + Bacula ne vérifie pas la présence de chemins orphelins. Avec le temps, les + enregistrements de chemins inutilisés s'accumulent et occupent de l'espace + dans votre base de données. Cette vérification les supprimera et il est + conseillé de la faire une fois par an. +\item Orphaned Filename records (Noms de fichiers orphelins). Ceci se produit + à chaque fois qu'un fichier est supprimé du système et que tous les + enregistrements de Job associés ont été purgés. Ceci peut se produire + fréquemment quand beaucoup de fichiers sont créés puis supprimés. De plus, + si vous faites une mise à jour système ou si vous supprimez tous une + arborescence, il peut rester beaucoup d'enregistrements de noms de fichiers + inutilisés dans le catalogue. + + Lors de la purge (ou de l'élaguage) des Jobs, Bacula ne vérifie pas la + présence de noms de fichiers orphelins. Avec le temps, les enregistrements + de noms de fichier inutilisés s'accumulent et occupent de l'espace dans + votre base de données. Cette vérification les supprimera, et il est + fortement recommandé de la lancer au moins une fois par an. Il est sans + doute préférable de le faire tous les 6 mois dans le cas des groses bases + de données (200 Mo et plus) +\item Orphaned Client records (Clients orphelins). Ces enregistrements peuvent + rester dans la base de données après la suppression d'un client. +\item Orphaned Job records (Jobs orphelins). Si aucun client n'est associé à un + job, ou bien qu'un job n'est pas utilisé pendant longtemps, ces + enregistrements peuvent s'accumuler. Cette option vous permet de supprimer + les jobs qui ne sont associés à aucune client (et donc inutiles) +\item All Admin records (tous les enregistrements "Admin"). Cette commande + supprimera tous les enregistrements "Admin", quel que soit leur âge. +\item All Restore records (tous les enregistrements "Restore"). Cette commande + supprimera tous les enregistrements "Restore", quel que soit leur âge. +\end{itemize} + + +Si vous utilisez MySQL, dbcheck vous demandera si vous souhaitez créer des index +temporaires pour accélérer la suppression des chemins et noms de fichier +orphelins + +Principalement à destination des utilisateurs de PostgreSQL, nous fournissons +un remplacement à dbcheck sous forme d'un script SQL pur, disponible dans +in \texttt{examples/database/dbcheck.sql} et qui fonctionne avec des requêtes +globales au lieu de plusieurs petites requêtes comme dbcheck le fait. Vous +trouverez des instructions au début du script et vous devrez taper la commande +\texttt{COMMIT} à la fin pour confirmer les modifications. + +Si vous utilisez bweb ou brestore, ne supprimez pas les chemins orphelins ou +bien vous devrez reconstruire les index \texttt{brestore\_pathvisibility} et +\texttt{brestore\_pathhierarchy}. + +Pour finir, je n'utilise personnellement dbcheck que lorsque j'ai planté ma +base de données à cause d'un bug lors du développement de Bacula, ce qui fait +que vous ne devriez jamais avoir besoin d'utiliser dbcheck malgré les +recommandations ci-dessus, qui sont données pour éviter que des utilisateurs +ne perdent trop de temps en se servant de dbcheck trop souvent. + +\section{bregex} +\label{bregex} +\index[general]{bregex} +\index[general]{programme!bregex} + +{\bf bregex} est un petit programme qui vous permettra de tester des expressions +regulières sur des fichiers ou des données. Ceci peut être utile car les +bibliothèques d'expressions régulières diffèrent suivant le système, ce qui +ajoute encore à leur complexité inhérente. + +{\bf bregex} se trouve dans le répertoire \texttt{src/tools} et est installé +normalement avec les autres exécutables système. Vous pouvez l'utiliser ainsi : + +\begin{verbatim} +Usage: bregex [-d debug_level] -f + -f specify file of data to be matched + -l suppress line numbers + -n print lines that do not match + -? print this message. +\end{verbatim} + +L'argument \texttt{\lt{}data-file\gt{}} correspond au nom d'un fichier contenant +les données (lignes) devant être appariés (ou non) par rapport à un ou plusieurs +motifs. Quand le programme est exécuté, il vous demande un motif d'expression +régulière, et l'applique à chaque ligne du fichier. Toute ligne qui correspond +sera affichée, précédée du numéro de la ligne. Le programme vous demandera un +nouveau motif pour continuer si vous le souhaitez. + +Il suffit de saisir une ligne de vide pour que le programme se termine. Vous +pouvez choisir de n'afficher que lignes ne correspondant pas avec l'option -n, +et vous pouvez empêcher l'affichage des numéros de ligne avec l'option -l. + +Ce programme peut être utile pour tester des expressions regulières qui doivent +être appliquées sur une liste de noms de fichiers. + +\section{bwild} +\label{bwild} +\index[general]{bwild} +\index[general]{programme!bwild} + +{\bf bwild} est un petit programme qui vous permettra de tester des expressions +à base de caractèrs joker (wildcards) sur le contenu d'un fichier. + +{\bf bwild} se trouve dans le répertoire \texttt{src/tools} et est installé +normalement avec les autres exécutables système. Vous pouvez l'utiliser ainsi : + + +\begin{verbatim} +Usage: bwild [-d debug_level] -f + -f specify file of data to be matched + -l suppress line numbers + -n print lines that do not match + -? print this message. +\end{verbatim} + +L'argument \texttt{\lt{}data-file\gt{}} correspond au nom d'un fichier contenant +les données (lignes) devant être appariés (ou non) par rapport à un ou plusieurs +motifs. Quand le programme est exécuté, il vous demande un motif de jokers, +et l'applique à chaque ligne du fichier. Toute ligne qui correspond +sera affichée, précédée du numéro de la ligne. Le programme vous demandera un +nouveau motif pour continuer si vous le souhaitez. + +Il suffit de saisir une ligne de vide pour que le programme se termine. Vous +pouvez choisir de n'afficher que lignes ne correspondant pas avec l'option -n, +et vous pouvez empêcher l'affichage des numéros de ligne avec l'option -l. + +Ce programme peut être utile pour tester des expressions à jokers qui doivent +être appliquées sur une liste de noms de fichiers. + +\section{testfind} +\label{testfind} +\index[general]{Testfind} +\index[general]{programme!testfind} + +{\bf testfind} permet de lister des fichiers avec le même moteur de recherche +que celui utilisé par la ressource {\bf Include} d'un Job. Il faut noter qu'une +grande partie des fonctionnalités de ce programme (liste des fichiers à inclure) +est présente dans la \ilink{commande estimate}{estimate} de la Console. + +L'utilité initiale de testfind était de s'assurer sur le moteur de recherche +de fichiers de Bacula fonctionnait correctement, et d'afficher quelques +statistiques sur les noms de fichiers et leur longueur. Cependant, vous pouvez +trouver un utilité à ce programme pour voir ce que Bacula ferait avec une +ressource {\bf Include} donnée. Le programme {\bf testfind} se trouve dans le +répertoire {\bf \lt{}bacula-source\gt{}/src/tools} des sources de Bacula. Bien +qu'il soit compilé lors du make, il n'est normalement pas "installé". + +Le programme est appelé ainsi : + +\footnotesize +\begin{verbatim} +Usage: testfind [-d debug_level] [-] [pattern1 ...] + -a print extended attributes (Win32 debug) + -dnn set debug level to nn + - read pattern(s) from stdin + -? print this message. +Patterns are used for file inclusion -- normally directories. +Debug level>= 1 prints each file found. +Debug level>= 10 prints path/file for catalog. +Errors are always printed. +Files/paths truncated is a number with len> 255. +Truncation is only in the catalog. +\end{verbatim} +\normalsize + +Où un "pattern" est n'importe quelle spécification de nom de fichier valide dans +une définition de ressource {\bf Include}. Si aucun "pattern" n'est spécifié, +{\bf /} (le répertoire racine) est utilisé. Par exemple : + +\footnotesize +\begin{verbatim} +./testfind /bin +\end{verbatim} +\normalsize + +produira l'affichage suivant : + +\footnotesize +\begin{verbatim} +Dir: /bin +Reg: /bin/bash +Lnk: /bin/bash2 -> bash +Lnk: /bin/sh -> bash +Reg: /bin/cpio +Reg: /bin/ed +Lnk: /bin/red -> ed +Reg: /bin/chgrp +... +Reg: /bin/ipcalc +Reg: /bin/usleep +Reg: /bin/aumix-minimal +Reg: /bin/mt +Lnka: /bin/gawk-3.1.0 -> /bin/gawk +Reg: /bin/pgawk +Total files : 85 +Max file length: 13 +Max path length: 5 +Files truncated: 0 +Paths truncated: 0 +\end{verbatim} +\normalsize + +Même si {\bf testfind} utilise le même moteur de recherche que {\bf Bacula}, +chaque répertoire à lister doit être fourni séparement en ligne de commande ou +un par ligne sur l'entrée standard, même si l'option {\bf -} est spécifiée + +Un niveau de debug de 1 (i.e. {\bf -d1}) sur la ligne de commande poussera +{\bf testfind} à afficher les noms de fichiers bruts sans montrer les types +de fichiers internes de Bacula, où le lien (s'il existe). Les niveaux de debug +supérieurs ou égaux à 10 déclenchent l'affichage du nom du fichier et du chemin +séparément en utilisant le même algorithme que celui utilisé pour stocker les +noms de fichier dans la base de donnnées du Catalogue + diff --git a/docs/manuals/fr/utility/utility.tex b/docs/manuals/fr/utility/utility.tex index c6fd0226..9dfc1da2 100644 --- a/docs/manuals/fr/utility/utility.tex +++ b/docs/manuals/fr/utility/utility.tex @@ -5,6 +5,7 @@ %% %% # $ % & ~ _ ^ \ { } %% +%% Translator : Sebastien Guilbaud / sebastien.guilbaud@bull.net \documentclass[10pt,a4paper]{book} @@ -24,10 +25,13 @@ \usepackage{setspace} \usepackage{hyperref} \usepackage{url} - +\usepackage[cyr]{aeguill} +\usepackage[utf8]{inputenc} +\usepackage[francais]{babel} +\usepackage{alltt} \makeindex -\newindex{general}{idx}{ind}{General Index} +\newindex{general}{idx}{ind}{Index Général} \sloppy @@ -39,7 +43,7 @@ \parindent 0pt \title{\includegraphics{\idir bacula-logo.eps} \\ \bigskip - \Huge{Bacula Utility Programs} + \Huge{Utilitaires Bacula} \begin{center} \large{It comes in the night and sucks the essence from your computers. } @@ -49,7 +53,7 @@ \author{Kern Sibbald} \date{\vspace{1.0in}\today \\ - This manual documents Bacula version \input{version} \\ + Ce manuel couvre la version \input{version} de Bacula.\\ \vspace{0.2in} Copyright \copyright 1999-2010, Free Software Foundation Europe e.V. \\ @@ -66,8 +70,8 @@ \tableofcontents \clearpage -\include{progs} -\include{bimagemgr-chapter} +\include{progs-fr} +\include{bimagemgr-chapter-fr} \include{rpm-faq} \include{fdl} @@ -76,7 +80,7 @@ % nolinks developersi baculai-dir baculai-fd baculai-sd baculai-console baculai-main % pull in the index -\clearpage +\listoffigures \printindex[general] \end{document} -- 2.39.2