4 \section*{La console Bacula}
5 \label{_ConsoleChapter}
6 \index[general]{Console!Bacula}
7 \index[general]{La console Bacula}
8 \index[console]{Console!Bacula}
9 \index[console]{LA console Bacula}
10 \addcontentsline{toc}{section}{La console Bacula}
12 \subsection*{G\'en\'eralit\'es}
13 \index[general]{G\'en\'eralit\'es}
14 \addcontentsline{toc}{subsection}{G\'en\'eralit\'es}
16 La {\bf console Bacula} (parfois d\'esign\'ee "Agent utilisateur") est un programme
17 qui permet \`a l'utilisateur autoris\'e ou \`a l'administrateur syst\`eme d'interagir
20 Actuellement, la console Bacula existe en deux versions : une interface shell
21 (fa{\c c}on TTY), et une interface graphique GNOME. Avec la console Bacula, vous
22 pouvez d\'eterminer l'\'etat d'un job particulier, examiner le contenu du
23 catalogue et effectuer certaines manipulations de cartouches.
25 Il existe d'autre part un programme nomm\'e wx-console, b\^atie avec wxWidgets qui
26 offre une interface graphique aux op\'erations de restauration.
28 Etant donn\'e que la Console interagit avec le Director au travers du r\'eseau,
29 il n'est pas n\'ecessaire que les deux programmes r\'esident sur la m\^eme machine.
31 Bacula a besoin d'un minimum de retour de la Console afin de pouvoir utiliser plus
32 d'une cartouche. En effet, lorsqu'il en r\'eclame une nouvelle, il attend jusqu'\`a
33 ce qu'un op\'erateur lui indique, via la Console, qu'une nouvelle cartouche est mont\'ee.
35 \subsection*{Configuration de la Console}
36 \index[general]{Configuration de la Console}
37 \index[general]{Configuration!Console}
38 \index[console]{Configuration de la Console}
39 \index[console]{Configuration!Console}
40 \addcontentsline{toc}{subsection}{Configuration de la Console}
42 Lors de son lancement, la Console lit le fichier de configuration standard
43 nomm\'e {\bf bconsole.conf} (ou {\bf gnome-console.conf} dans le cas de la version
44 GNOME) Ce fichier d\'efinit une configuration par d\'efaut de la Console et, \`a l'heure
45 actuelle, la seule ressource d\'efinie est la ressource Director, qui informe
46 la Console du nom et de l'adresse du Director. Pour plus d'informations sur la
47 configuration de la Console, voyez le chapitre \ilink{Configurer la Console}{_ChapterStart36}
50 \subsection*{Utiliser la Console}
51 \index[general]{Utiliser la Console}
52 \index[general]{Console!Utiliser la}
53 \index[console]{Utiliser la Console}
54 \index[console]{Console!Utiliser la}
55 \addcontentsline{toc}{subsection}{Utiliser la Console}
57 Apr\`es son d\'emarrage, la Console est en attente de vos commandes, ce qui
58 est indiqu\'e par une ast\'erisque (*) (ce n'est pas le cas dans la version
59 GNOME o\`u vous saisissez vos commandes dans la boite texte en bas de l'\'ecran).
60 Vous pouvez, pour toutes les commandes, vous contenter d'entrer le nom de la
61 commande, la Console se chargera de vous demander les arguments n\'ecessaires,
62 mais dans la plupart des cas, vous pouvez entrer les commandes suivies de leurs
63 arguments. Le format g\'en\'eral est :
67 <command> <keyword1>[=<argument1>] <keyword2>[=<argument2>] ...
71 O\`u {\bf command} est l'une des commandes \'enum\'er\'ees ci-dessous, {\bf keyword}
72 est l'un des mots-clef \'enum\'er\'es ci-dessous (usuellement suivi d'un argument),
73 et {\bf argument} est la valeur du mot-clef. La commande peut \^etre abr\'eg\'ee
74 jusqu'\`a sa plus courte abr\'eviation unique. Si deux commandes commencent
75 par les m\^emes lettres, c'est celle qui appara\^it en t\^ete dans la liste fournie
76 par la commande {\bf help} qui sera s\'electionn\'ee si votre abr\'eviation est
77 ambig\"ue. Aucun des mots-clef suivant la commande ne peut \^etre abr\'eg\'e.
87 \'enum\`ere les fichiers sauvegard\'es par le job de JobId 23.
89 Cette autre commande :
97 affiche toutes les ressources Pool.
99 \subsection*{Quitter la Console}
100 \index[general]{Console!Quitter}
101 \index[general]{Quitter la Console}
102 \index[console]{Console!Quitter}
103 \index[console]{Quitter la Console}
104 \addcontentsline{toc}{subsection}{Quitter la Console}
106 Normalement, le programme Console se termine si vous saisissez {\bf quit}
107 ou {\bf exit}. Cependant, il il attend jusq"\`a ce que le Director ait pris
108 en compte la commande, ce qui peut prendre du temps si ce dernier est d\'ej\`a
109 occup\'e \`a une t\^ache longue (par exemple, un \'elagage du catalogue). Si vous voulez
110 quitter la Console imm\'ediatement, utilisez la commande {\bf .quit}.
112 Il n'existe actuellement aucun moyen d'interrompre une commande de la Console
113 une fois lanc\'ee (Ctrl-C ne marche pas). En revanche, \`a l'invite d'une commande
114 vous demandant de choisir parmi plusieurs possibilit\'es, vous pouvez annuler
115 la commande en entrant un point ({\bf .}), vous serez dans la plupart des cas
116 ramen\'e \`a l'invite principal, ou \`a l'invite pr\'ec\'edente, dans le cas de choix
117 imbriqu\'es. En quelques endroits, comme celui o\`u l'on vous demande un
118 nom de volume, le point sera pris pour la r\'eponse (Bacula pensera que vous
119 voulez nommer votre volume "."). Dans cette situation, vous serez la plupart
120 du temps en mesure d'annuler \`a l'invite suivante.
123 \subsection*{Index des mots-clef de la Console}
124 \index[general]{Mots-clef!Index Console}
125 \index[general]{Index des mots-clef de la Console}
126 \index[console]{Mots-clef!Index Console}
127 \index[console]{Index des mots-clef de la Console}
128 \addcontentsline{toc}{subsection}{Index des mots-clef de la Console}
129 Sauf sp\'ecification contraire, chacun des mots-clef suivant admet un argument,
130 qui est sp\'ecifi\'e apr\`es le mot-clef suivi du signe \'egale. Par exemple :
136 Notez que cette liste est probablement incompl\`ete, car le processus de cr\'eation
137 est toujours en cours. Il se peut aussi qu'elle ne soit pas dans l'ordre
142 Permis dans la commande {\it python}, provoque le red\'emarrage de
143 l'interpr\'eteur Python. Ne prend pas d'arguments.
145 Permis dans les commandes {\it status} et {\it show} pour sp\'ecifier, respectivement, tous les
146 composants ou toutes les ressources.
148 Utilis\'e dans la commande {\it restore}.
150 Utilis\'e dans la commande {\it restore}.
152 Permis dans la commande {\it use} pour sp\'ecifier le nom de catalogue \`a utiliser.
154 Utilis\'e dans la commande {\it show}. Ne prend pas d'arguments
157 Utilis\'e dans les commandes {\it show}, {\it list}, et {\it llist}. ne prend pas d'arguments.
159 Utilis\'e dans la commande {\it show}. Ne prend pas d'arguments.
161 Utilis\'e dans la commande {\it restore}. Ne prend pas d'arguments.
164 Utilis\'e dans la commande {\it show}. Ne prend pas d'arguments.
165 \item [dir | director]
167 Utilis\'e dans la commande {\it show}. Ne prend pas d'arguments.
169 Utilis\'e dans la commande {\it restore}.
171 Utilis\'e dans la commande {\it restore}. Ne prend pas d'arguments.
173 Utilis\'e dans la commande {\it restore}.
175 Utilis\'e dans les commandes {\it list}, et {\it llist}. ne prend pas d'arguments.
178 Utilis\'e dans la commande {\it show}. Ne prend pas d'arguments.
180 Utilis\'e dans la commande {\it show}. Ne prend pas d'arguments.
182 Utilis\'e dans les commandes {\it show}, {\it list} et {\it llist}. Ne prend pas d'arguments.
184 Utilis\'e dans les commandes {\it list}, et {\it llist}. ne prend pas d'arguments.
186 Utilis\'e dans les commandes {\it list}, et {\it llist}. ne prend pas d'arguments.
188 Le JobId est le num\'ero de job qui est affich\'e dans le rapport de job.
189 C'est l'index du catalogue pour le job donn\'e. Bien qu'il soit unique
190 pour tous les jobs existant dans le catalogue, le m\^eme JobId peut
191 \^etre r\'eutilis\'e une fois qu'un job a \'et\'e supprim\'e du catalogue.
192 Vous d\'esignerez certainement les jobs sp\'ecifiques par leur JobId.
193 \item [job | jobname]
194 Le mot-clef Job ou Jobname se r\'ef\`ere au nom que vous avez sp\'ecifi\'e
195 dans la ressource Job, et donc peut d\'esigner plusieurs jobs effectu\'es.
196 C'est particuli\`erement utile lorsque vous voulez la liste des jobs
197 execut\'es portant un nom particulier.
200 Permis dans la commande {\it estimate}. Ne prend pas d'arguments.
203 Utilis\'e dans la commande {\it show}. Ne prend pas d'arguments.
205 Utilis\'e dans les commandes {\it list}, et {\it llist}. ne prend pas d'arguments.
206 \item [nextvol | nextvolume]
207 Utilis\'e dans les commandes {\it list}, et {\it llist}. ne prend pas d'arguments.
209 Ne prend pas d'arguments.
211 Ne prend pas d'arguments.
214 Utilis\'e dans les commandes, {\it show}, {\it list}, et {\it llist}. ne prend pas d'arguments.
216 Utilis\'e dans la commande {\it restore}. Ne prend pas d'arguments.
218 Utilis\'e dans la commande {\it show}. Ne prend pas d'arguments.
220 Utilis\'e dans la commande {\it show}. Ne prend pas d'arguments.
221 \item [sd | store | storage]
223 L'ujobid est un identificateur unique de job qui est affich\'e dans
224 le rapport du job. Actuellement, il consiste en le nom du job
225 (celui de la directive Name de ce job) suffix\'e de la date et de
226 l'heure d'ex\'ecution du job. Ce mot-clef est utile si vous voulez
227 identifier compl\`etement l'instance du job ex\'ecut\'e.
230 Utilis\'e dans les commandes {\it list}, et {\it llist}. ne prend pas d'arguments.
232 Utilis\'e dans la commande {\it restore}. Ne prend pas d'arguments.
234 Utilis\'e dans la commande {\it restore}. Ne prend pas d'arguments.
238 \subsection*{Index des commandes de la Console}
239 \index[general]{Commandes!Index des commandes de la Console}
240 \index[general]{Index des commandes de la Console}
241 \index[console]{Commandes!Index des commandes de la Console}
242 \index[console]{Index des commandes de la Console}
243 \addcontentsline{toc}{subsection}{Index des commandes de la Console}
245 Les commandes suivantes sont actuellement impl\'ement\'ees :
248 \item [{add [pool=\lt{}pool-name\gt{} storage=\lt{}storage\gt{}
249 jobid=\lt{}JobId\gt{}]} ]
251 Cette commande sert \`a ajouter des volumes \`a un pool existant. Les noms des
252 volumes saisis sont plac\'es dans le catalogue et deviennent ainsi disponibles
253 pour les sauvegardes. Normalement, on pr\'ef\`er utiliser la commande {\bf label}
254 qui remplit les m\^emes fonctions en plus d'apposer une \'etiquette logicielle
255 (label) sur les bandes, par opposition \`a {\bf add} qui se contente de
256 r\'ef\'erencer le volume dans le catalogue. Ainsi, si vous utilisez {\bf add},
257 le volume doit pr\'eexister et \^etre d\'ej\`a \'etiquet\'e. Cette commande peut
258 cependant \^etre utile si vous voulez ajouter plusieurs cartouches dans un
259 pool en ne les \'etiquettant que plus tard. Elle peut aussi se r\'ev\'eler utile
260 si vous importez des cartouches provenant d'un autre site. Consultez le
261 paragraphe sur la commande {\bf label} pour conna\^itre la liste des
262 caract\`eres autoris\'es dans un nom de volume.
264 \item [autodisplay on/off]
265 \index[console]{autodisplay on/off}
266 Cette commande accepte les arguments {\bf on} ou {\bf off} et active ou
267 d\'esactive l'affichage automatique des messages. La valeur par d\'efaut dans
268 la Console est {\bf off}, ce qui signifie que les messages en attente
269 vous sont notifi\'es, mais qu'ils ne sont pas automatiquement affich\'es.
270 La valeur par d\'efaut pour la console GNOME est {\bf on}, ainsi les
271 messages sont affich\'es lorqu'ils sont re{\c c}us (habituellement dans les 5 secondes
272 apr\`es qu'ils aient \'et\'e g\'en\'er\'es).
274 Lorsque l'affichage automatique est d\'esactiv\'e, vous devez explicitement
275 en demander l'affichage avec la commande {\bf messages}.
277 \item [automount on/off]
278 \index[console]{automount on/off}
279 Cette commande accepte les arguments {\bf on} ou {\bf off} et active ou
280 d\'esactive le montage automatique de la cartouche apr\`es une commande {\bf label}.
281 La valeur par d\'efaut est {\bf on}. Si le montage automatique est d\'esactiv\'e,
282 vous devez explicitement monter la cartouche apr\`es avoir utilis\'e {\bf label}
283 pour pouvoir \'ecrire dessus.
285 \item [{cancel [jobid=\lt{}number\gt{} job=\lt{}job-name\gt{} ujobid=\lt{}unique-jobid\gt{}]}]
286 \index[console]{cancel jobid}
287 Cette commande sert \`a supprimer un job et admet les arguments {\bf jobid=nnn}
288 ou {\bf job=xxx} o\`u nnn est \`a remplacer par le JobId et xxx par le nom de
289 job. Si vous lancez cette commande sans arguments, la Console vous propose
290 de choisir parmi les jobs actifs celui \`a supprimer.
292 Une fois qu'un job est marqu\'e "A supprimer", il peut se passer quelques instants
293 (en g\'en\'eral, moins d'une minute) avant qu'il se termine, en fonction des
294 op\'erations en cours.
296 \item [{ create [pool=\lt{}pool-name\gt{}]}]
297 \index[console]{create pool}
298 Cette commande sert \`a cr\'eer un enregistrement Pool dans le catalogue
299 selon les ressources Pool d\'efinis dans le fichier de configuration
300 du Director. En un sens, cette commande se content de transf\'erer
301 l'information depuis la ressource Pool dans le fichier de configuration
302 vers le catalogue. En principe, cete commande est automatiquement
303 ex\'ecut\'ee au lancement du Director, pourvu que le pool soit r\'ef\'erenc\'e
304 dans une ressource Job. Si vous utilisez cette commande sur un pool
305 existant, elle met \`a jour le catalogue en foction des informations de
306 la ressource Pool. Apr\`es avoir cr\'e\'e un pool, vous uiliserez
307 probablement la commande {\bf label} pour \'etiqueter un ou plusieurs
308 volumes et enregistrer leurs noms dans le catalogue.
310 Si, au lancement d'un job, Bacula d\'etermine qu'il n'y a pas de pool
311 enregistr\'e dans le catalogue, mais qu'il existe une ressource Pool pour
312 le pool appropri\'e, alors il le cr\'e\'e pour vous. Si vous voulez le voir
313 appara\^itre imm\'ediatement dans le catalogue, utilisez cette commande pour
314 forcer sa cr\'eation imm\'ediate.
316 \item [{ delete [volume=\lt{}vol-name\gt{} pool=\lt{}pool-name\gt{} job
317 jobid=\lt{}id\gt{}]}]
318 \index[console]{delete}
319 Cette commande s'utilise pour supprimer un volume, un pool ou un job
320 du catalogue, ainsi que tous les enregistrements du catalogue qui leur
321 sont associ\'es. Cette commande op\`ere exclusivement sur le catalogue
322 et n'a aucune r\'epercussion sur les donn\'ees \'ecrites sur les cartouches.
323 Elle peut \^etre dangereuse, et nous vous recommandons fortement de ne
324 pas l'utiliser si vous ne savez pas exactement ce que vous faites.
326 Voici la forme compl\`ete de cette commande :
328 delete pool=\lt{}pool-name\gt{}
330 supprime un pool du catalogue.
332 delete volume=\lt{}volume-name\gt{} pool=\lt{}pool-name\gt{}
334 supprime du catalogue un volume du pool sp\'ecifi\'e.
336 delete JobId=\lt{}job-id\gt{} JobId=\lt{}job-id2\gt{} ...
338 supprime du catalogue le job sp\'ecifi\'e.
340 delete Job JobId=n,m,o-r,t ...
342 supprime les job de JobIds m,n,o,p,q,r et t (o\`u m,n,... sont, bien sur, des
343 nombres). Ainsi, la commande "delete jobid" accepte les listes et les plages
346 \item [disable job\lt{}job-name\gt{}]
347 \index[console]{enable}
348 Cette commande vous permet de d\'esactiver un job normalement planifi\'e
349 pour ex\'ecution. Le job peut avoir \'et\'e pr\'ealablement activ\'e par la
350 directive {\bf Enabled} dans la ressource Job, ou avec la commande
351 {\bf enable} dans la Console. Au prochain d\'emarrage du Director, ou
352 si le fichier de configuration est recharg\'e, l'\'etat Enable/Disable sera
353 r\'etabli \`a celui sp\'ecifi\'e dans la ressource Job (la valeur par d\'efaut
356 \item [enable job\lt{}job-name\gt{}]
357 \index[console]{enable}
358 Cette commande vous permet de d'activer un job planifi\'e
359 pour ex\'ecution automatique. Le job peut avoir \'et\'e pr\'ealablement d\'esactiv\'e par la
360 directive {\bf Disabled} dans la ressource Job, ou avec la commande
361 {\bf disable} dans la Console. Au prochain d\'emarrage du Director, ou
362 si le fichier de configuration est recharg\'e, l'\'etat Enable/Disable sera
363 r\'etabli \`a celui sp\'ecifi\'e dans la ressource Job (la valeur par d\'efaut
368 \index[console]{estimate}
369 Avec cette commande, vous pouvez vous faire une id\'ee du nombre de fichier
370 seront sauvegard\'es. Vous pouvez aussi l'utiliser pour \'eprouver les
371 param\`etres Include de vos FileSets sans passer par une sauvegarde
372 r\'eelle. Par d\'efaut, l'estimation est faite pour une sauvegarde Full.
373 Cependant, vous pouvez passer outre ce comportement en sp\'ecifiant
374 {\bf level=Incremental} ou {\bf level=Differential} sur la ligne de
375 commande. Un nom de job doit \^etre sp\'ecifi\'e, faute de quoi il vous sera
376 demand\'e. Optionnellement, vous pouvez sp\'ecifier un client et un
377 FileSet sur la ligne de commande. Bacula contacte alors le client
378 et calcule le nombre de fichier et d'octets qui seraient
379 sauvegard\'es. Notez qu'il s'agit d'une estimation calcul\'ee d'apr\`es
380 le nombre de blocs dans les fichiers plut\^ot qu'en lisant le nombre
381 effectif d'octets. Aussi, la taille estim\'ee est g\'en\'eralement plus
382 importante que celle de la sauvegarde r\'eelle.
384 Optionnellement, vous pouvez ajouter le mot-clef {\bf listing}, auquel cas
385 tous les fichiers \`a sauvegarder seront affich\'es. Notez qu'un tel affichage
386 peut prendre un certain temps s'il s'agit d'une grosse sauvegarde.
387 Voici la forme compl\`ete de cette commande :
390 estimate job=\lt{}job-name\gt{} listing client=\lt{}client-name\gt{}
391 fileset=\lt{}fileset-name\gt{} level=\lt{}level-name\gt{}
393 La sp\'ecification du {\bf job} est suffisante, mais vous pouvez aussi
394 passer outre le client, le FileSet et/ou le niveau en les
395 sp\'ecifiant sur la ligne de commande.
397 Par exemple, vous pourriez faire ceci :
402 estimate job=NightlySave listing level=Incremental
407 ce qui produirait une liste compl\`ete de tous les fichiers \`a sauvegarder pour
408 le job {\bf NightlySave} au cours d'une sauvegarde incr\'ementale, et qui
409 consignerait cette liste dans le fichier {\bf /tmp/listing}.
412 \index[console]{help}
413 Cette commande affiche la liste des commandes disponibles.
416 \index[console]{label}
417 \index[console]{relabel}
418 \index[general]{label}
419 \index[general]{relabel}
420 Cette commande est utilis\'ee pour \'etiqueter les volumes. La forme compl\`ete est :
422 label storage=\lt{}storage-name\gt{} volume=\lt{}volume-name\gt{}
425 Si vous omettez l'un quelconque des arguments, il vous sera r\'eclam\'e.
426 Le type de m\'edia est automatiquement r\'ecup\'er\'e de la ressource Storage.
427 Une fois que les informations requises sont r\'eunies, la Console
428 contacte le Storage Daemon sp\'ecifi\'e et lui ordonne d'\'etiqueter la
429 cartouche sp\'ecifi\'ee. Si l'\'etiquetage s'effectue correctement, la
430 Console cr\'e\'e un nouvel enregistrement dans le catalogue pour le
431 volume dans le pool appropri\'e.
433 Les noms de volumes ne doivent contenir que des lettres, chiffres et
434 les caract\`eres sp\'eciaux tiret ({\bf -}), sous-lign\'e ({\bf \_}), double-point
435 ({\bf :}), et point ({\bf .}). Tous les autres caract\`eres, y compris l'espace,
436 sont ill\'egaux. Cette restriction vise \`a assurer une bonne lisibilit\'e
437 des noms de volumes pour r\'eduire le risque d'erreurs humaines.
439 Notez que lors de l'\'etiquetage d'une cartouche vierge, Bacula obtient des
440 erreurs {\bf read I/O error} lorqu'il tente de v\'erifier si la cartouche
441 a d\'ej\`a un label. Si vous voulez \'eviter ce genre de message, placez un
442 indicateur de fin de fichier sur votre cartouche avant son \'etiquetage :
452 La commande label peut \'echouer pour plusieurs raisons :
456 \item Le nom de volume que vous avez sp\'ecifi\'e figure d\'ej\`a dans le catalogue.
457 \item Le Storage Daemon a d\'ej\`a une cartouche mont\'ee dans le lecteur. Dans ce cas,
458 vous devez la d\'emonter ({\bf unmount}) et ins\'erer une cartouche vierge
459 avant de lancer la commande {\bf label}.
460 \item La cartouche dans le lecteur porte d\'ej\`a une \'etiquette Bacula.
461 (Bacula ne r\'e-\'etiquette jamais une cartouche \`a moins qu'elle soit recycl\'ee
462 et que vous utilisiez la commande {\bf relabel} ).
463 \item Il n'y a pas de cartouche dans le lecteur.
466 Il existe deux moyens pour r\'e-\'etiqueter un volume qui porte d\'ej\`a une
467 \'etiquette Bacula. La m\'ethode brutale consiste \`a \'ecrire une marque de fin de
468 fichier sur la cartouche vec la commande du syst\`eme d'exploitation {\bf mt},
469 quelque chose dans ce style :
473 mt -f /dev/st0 rewind
478 puis d'utiliser la commande {\bf label} pour ajouter une nouvelle \'etiquette.
479 Cette m\'ethode peut cependant laisser des traces de l'ancien volume dans le
482 Il est pr\'ef\'erable d'utiliser la commande {\bf relabel} d\'ecrite ci-dessous sur
483 un volume purg\'e (automatiquement ou avec la commande {\bf purge}).
485 Si votre librairie comporte un lecteur de codes barres, vous pouvez
486 \'etiqueter tous les volumes qu'elle contient en
487 utilisant la commande {\bf label barcodes}. En effet, apr\`es le lancement de
488 cette commande, Bacula monte chaque cartouche l'une apr\`es l'autre et
489 l'\'etiquette du nom de son code barres. simultan\'ement, l'enregistrement
490 appropri\'e est cr\'e\'e dans le catalogue. Toute cartouche dont le code barres
491 commence par les m\^emes caract\`eres que ceux sp\'ecifi\'es par la directive
492 "CleaningPrefix" de la ressource Pool du director est consid\'er\'ee comme
493 une cartouche de nettoyage et ne re{\c c}oit donc pas d'\'etiquette, bien
494 qu'une entr\'ee dans le catalogue lui soit d\'edi\'ee. Par exemple avec :
500 Cleaning Prefix = "CLN"
506 tout slot contenant une cartouche de code barres CLNxxxxx sera trait\'ee en tant
507 que cartouche de nettoyage et ne sera jamais mont\'ee. Notez que la forme
508 compl\`ete de la commande est :
512 update storage=xxx pool=yyy slots=1-5,10 barcodes
517 \index[console]{list}
518 La commande {\bf list} extrait du catalogue les informations demand\'ees. Les
519 diff\'erentes champs de chaque enregistrement sont \'enum\'er\'es sur une simple
520 ligne. Voici les diff\'erentes formes de la commande :
526 list jobid=<id> (affiche le jobid id)
528 list ujobid=<unique job name> (affiche le job dont le nom unique est <unique job name>)
530 list job=<job-name> (Affiche tous les jobs dont le nom est "job-name")
532 list jobname=<job-name> (voir ci-dessus)
534 Dans cette commande, vous pouvez ajouter "limit=nn" pour limiter la sortie \`a nn jobs.
538 list jobmedia jobid=<id>
540 list jobmedia job=<job-name>
542 list files jobid=<id>
544 list files job=<job-name>
554 list volumes jobid=<id>
556 list volumes pool=<pool-name>
558 list volumes job=<job-name>
560 list volume=<volume-name>
562 list nextvolume job=<job-name>
564 list nextvol job=<job-name>
566 list nextvol job=<job-name> days=nnn
573 Ce que font la plupart des commandes ci-dessus devrait \^etre plus ou moins \'evident.
574 En g\'en\'eral, si vous ne sp\'ecifiez pas tous les arguments requis, la Console
575 vous sollicitera pour les arguments manquants.
577 La commande {\bf list nextvol} affiche le nom du volume qui dera utilis\'e par
578 le job sp\'ecifi\'e. Soyez conscient que le prochain volume utilis\'e
579 pour un job d\'epend de nombreux facteurs dont le temps, et les autres
580 jobs qui seront ex\'ecut\'es avant celui sp\'ecifi\'e, qui peuvent remplir une
581 cartouche qui \'etait vide au moment de l'ex\'ecution de {\bf list nextvol}.
582 Aussi, consid\'erez la r\'eponse fournie par cette commande comme une bonne
583 estimation plut\^ot que comme une r\'eponse d\'efinitive. De plus, cette commande
584 a certains effets de bord : \'etant donn\'e qu'elle ex\'ecute le m\^eme algorithme
585 qu'un job, elle est susceptible de purger ou recycler un volume. Par d\'efaut,
586 le job sp\'ecifi\'e doit \^etre ex\'ecut\'e dans les deux jours ou aucun volume
587 ne sera trouv\'e. Vous pouvez cependant sp\'ecifier jusqu'\`a 50 jours en avant
588 avec la directive {\bf days=nnn}. Si, par exemple, un vendredi, vous voulez
589 savoir quel volume sera requis lundi pour le job MyJob, utilisez
590 {\bf list nextvol job=MyJob days=3}.
592 Si vous souhaitez ajouter vos propres commandes pour interroger le
593 catalogue, vous pouvez les placer dans le fichier {\bf query.sql}.
594 Cela demande quelques connaissances du langage SQL. Voyez le
595 paragraphe sur la commande {\bf query} ci-dessous pour plus
596 d'informations. Voyez aussi le paragraphe sur la commande
597 {\bf llist} qui permet l'affichage complet des informations du
600 Voici un exemple d'affichage produit par la commande {\bf list pools} :
604 +------+---------+---------+---------+----------+-------------+
605 | PoId | Name | NumVols | MaxVols | PoolType | LabelFormat |
606 +------+---------+---------+---------+----------+-------------+
607 | 1 | Default | 0 | 0 | Backup | * |
608 | 2 | Recycle | 0 | 8 | Backup | File |
609 +------+---------+---------+---------+----------+-------------+
613 Comme mentionn\'e pr\'ec\'edemment, la commande {\bf list} affiche des
614 informations du catalogue. Certais \'el\'ements sont ajout\'es dans le catalogue
615 d\`es le d\'emarrage de Bacula, mais en g\'en\'eral, la plupart ne le sont que
616 lorsqu'ils sont utilis\'es pour la premi\`ere fois. C'est le cas des clients,
619 Bacula cr\'e\'e une entr\'ee relative \`a un nouveau client dans le catalogue
620 la premi\`ere fois que vous ex\'ecut\'ez un job pour ce client. L'entr\'ee est
621 cr\'e\'ee que le job aboutisse ou qu'il \'echoue, mais il doit au moins d\'emarrer.
622 Lorsque le client est contact\'e, des informations suppl\'ementaires sont
623 r\'ecup\'er\'ees du client (le r\'esultat d'un "uname -a") et ajout\'ees au
624 catalogue. Un {\bf status} n'entra\^ine pas l'enregistrement dans le catalogue.
626 Si vous voulez visualiser les ressources Client disponibles dans votre
627 catalogue, utilisez la commande {\bf show clients}.
630 \index[console]{llist}
631 La commande {\bf llist} (pour "long list") admet les m\^emes arguments que la
632 commande list d\'ecrite ci-dessus. La diff\'erence est que {\bf llist} affiche
633 le contenu complet de chaque enregistrement du catalogue s\'electionn\'e.
634 L'affichage des diff\'erents champs est produit verticalement, un champ par
635 ligne. Cette commande peut \^etre tr\`es prolixe.
637 Si, au lieu du {\bf list pools} de l'exemple pr\'ec\'edent, vous saisissez
638 {\bf llist pools}, vous obtiendrez un affichage de ce genre :
649 VolRetention: 1,296,000
650 VolUseDuration: 86,400
666 VolUseDuration: 3,600
678 \index[console]{messages}
679 Cette commande affiche imm\'ediatement tout message de la console en attente.
683 \index[console]{mount}
685 La commande {\bf mount} est utilis\'ee pour obtenir de Bacula qu'il lise
686 un volume charg\'e dans un lecteur. C'est un moyen d'indiquer \`a Bacula
687 que vous avez charg\'e une cartouche qu'il doit examiner. Cette commande
688 n'est utilis\'ee que lorsque Bacula a demand\'e votre intervention pour
689 charger un lecteur vide, ou lorsque vous avez explicitement d\'emont\'e
690 un volume avec la commande {\bf unmount} dans la Console, ce qui
691 provoque la fermeture du lecteur. Si vous avez une librairie, vous ne
692 ferez pas op\'erer Bacula dessus avec la commande mount. Voici les
693 diff\'erentes formes de cette commande :
695 mount storage=\lt{}storage-name\gt{}
697 mount [ jobid=\lt{}id\gt{} | job=\lt{}job-name\gt{} ]
699 Si vous avez sp\'ecifi\'e {\bf Automatic Mount = yes} dans la ressource
700 Device du Storage Daemon, Alors Bacula pourra acc\'eder automatiquement
701 au volume, \`a moins que vous ne l'ayez explicitement d\'emont\'e ({\bf unmount})
705 \index[console]{python}
706 La commande {\bf python} n'admet qu'un argument : {\bf restart}.
708 La commande {\bf python} {\bf restart} r\'einitialise l'interpr\'eteur Python
709 du Director. Ceci peut \^etre tr\`es utile pour effectuer des tests, car une
710 fois que le Director est lanc\'e, et l'interpr\'eteur Python initialis\'e,
711 il n'y a pas d'autre moyen de lui faire int\'egrer des modifications
712 du script de d\'emarrage {\bf DirStartUp.py}. Pour plus de d\'etails sur
713 l'\'ecriture de scripts Python, consultez le chapitre \ilink{Ecrire des
714 scripts Python}{_ChapterStart60}.
716 \label{ManualPruning}
718 \index[console]{prune}
719 La commande {\bf prune} permet d'\'elaguer en toute s\'ecurit\'e les
720 enregistrements expir\'es du catalogue pour les jobs et les volumes.
721 Cette commande n'affecte que le catalogue, et non les donn\'ees
722 \'ecrites sur les volumes. Dans tous les cas, la commande {\bf prune}
723 respecte les p\'eriodes de r\'etention des enregistrements sp\'ecifi\'es.
724 Vous pouvez \'elaguer les jobs expir\'es, ainsi que les jobs et fichiers
725 d'un volume sp\'ecifi\'e.
727 prune files|jobs|volume client=\lt{}client-name\gt{}
728 volume=\lt{}volume-name\gt{}
730 Pour qu'un volume soit \'elagu\'e, son {\bf VolStatus} doit \^etre Full,
731 Used, ou Append, faute de quoi l'\'elagage sera sans effet.
734 \index[console]{purge}
735 La commande {\bf purge} efface les enregistrements sp\'ecifi\'es du catalogue
736 sans \'egards pour les p\'eriodes de r\'etention. {\bf Purge} n'affecte que le
737 catalogue, et non les donn\'ees \'ecrites sur les volumes. Cette commande
738 peut se r\'ev\'eler tr\`es dangereuse car vous pouvez parfaitement supprimer
739 les enregistrements relatifs \`a des sauvegardes valides et r\'ecentes. Aussi,
740 nous vous recommandons de ne pas l'utiliser \`a moins de savoir exactement
741 ce que vous faites. Voici les diff\'erentes formes de la commande {\bf purge} :
743 purge files jobid=\lt{}jobid\gt{}|job=\lt{}job-name\gt{}|client=\lt{}client-name\gt{}
745 purge jobs client=\lt{}client-name\gt{} (of all jobs)
747 purge volume|volume=\lt{}vol-name\gt{} (of all jobs)
750 Pour qu'un volume puisse \^etre purg\'e, son {\bf VolStatus} doit \^etre Full,
751 Used, ou Append, faute de quoi la purge sera sans effet.
754 \index[console]{relabel}
755 \index[general]{relabel}
756 Cette commande sert \`a r\'e-\'etiqueter physiquement un volume. En voici
757 la forme compl\`ete :
759 relabel storage=\lt{}storage-name\gt{} oldvolume=\lt{}old-volume-name\gt{}
760 volume=\lt{}newvolume-name\gt{}
762 Si vous omettez l'un quelconque des arguments, la console vous sollicitera
763 pour obtenir les informations manquantes. Pour qu'un volume puisse \^etre
764 r\'e-\'etiquet\'e, il doit figurer dans le catalogue, et avoir le statut
765 {\bf Purged} ou {\bf Recycle}. Cette situation peut se pr\'esenter
766 automatiquement par l'application des p\'eriodes de r\'etention, ou vous
767 pouvez l'obtenir par une {\bf purge} explicite du volume.
769 Une fois que le volume a \'et\'e physiquement r\'e-\'etiquet\'e, les donn\'ees
770 qu'il contenait sont d\'efinitivement et irr\'em\'ediablement perdues.
773 \index[console]{release}
774 Cette commande ordonne au Storage Daemon de rembobiner la cartouche
775 dans le lecteur, et de relire son \'etiquette \`a la prochaine utilisation
778 release storage=\lt{}storage-name\gt{}
780 Apr\`es cette commande, le lecteur est gard\'e \`a l'\'etat ouvert par Bacula
781 (sauf si l'option Always Open est d\'esactiv\'ee dans la configuration
782 du Storage Daemon), et il ne peut donc \^etre utilis\'e par un autre
783 programme. Toutefois, il est possible, avec certains lecteurs, de
784 changer la cartouche \`a ce stade. Lors du prochain job, Bacula saura
785 relire l'\'etiquette de la cartouche pour savoir laquelle est mont\'ee.
786 Si vous voulez \^etre en mesure d'utiliser le lecteur avec un autre
787 programme, par exemple {\bf mt}, vous devez uiliser la commande
788 {\bf unmount} pour que Bacula le lib\`ere compl\`etement.
791 \index[console]{reload}
792 Lorsqu'il re{\c c}oit la commande {\bf reload}, le Director relit ses fichiers
793 de configuration et applique les \'eventuelles modifications. Celles-ci
794 sont prises en compte imm\'ediatement, et donc effectives pour tous les
795 jobs \`a venir. Notez cependant qu'en ce qui concerne les modifications
796 apport\'ees aux Schedules, la prise en compte des nouvelles valeur peut
797 \^etre report\'ee au del\`a de l'ex\'ecution des jobs d\'ej\`a planifi\'es pour
798 les deux prochaines heures. Ceci est d\^u au planificateur qui pr\'evoit
799 "pr\'e-planifie" jusqu'\`a deux heures \`a l'avance les jobs \`a ex\'ecuter.
800 Ainsi, des jobs qui ont d\'ej\`a \'et\'e "pr\'e-planifi\'es" seront ex\'ecut\'es
801 suivant les valeurs sp\'ecifi\'ees par la ressource Schedule avant sa
802 modification. Les nouveaux jobs utiliseront les nouvelles valeurs.
803 A chaque fois que vous utilisez la commande {\bf reload} alors que
804 des jobs sont en cours d'ex\'ecution, les valeurs de la configuration
805 pr\'ec\'edente demeurent en vigueur jusqu'\`a ce que les ces jobs se terminent.
806 Le Director peut ainsi conserver jusqu'\`a 10 jeux de configurations
807 ant\'erieures avant de refuser une nouvelle commande {\bf reload}.
808 Une fois que l'un, au moins, des jeux de valeurs ant\'erieur a \'et\'e accept\'e,
809 il peut \`a nouveau accepter de nouvelles commandes {\bf reload}.
811 Bien qu'il soit possible de recharger la configuration du Director
812 \`a la vol\'ee, alors m\^eme que des jobs sont en cours d'ex\'ecution, il faut
813 garder \`a l'esprit que c'est une op\'eration complexe, qui n'est pas d\'enu\'ee
814 d'effets de bords. C'est pourquoi il est recommand\'e, si vous \^etes amen\'e \`a
815 utiliser la commande {\bf reload}, de red\'emarrer le Director d\`es que vous
816 en aurez l'opportunit\'e.
818 \label{restore_command}
820 \index[console]{restore}
821 La commande {\bf restore} vous permet de s\'electionner un ou plusieurs jobs
822 (JobIds) \`a restaurer selon plusieurs m\'ethodes. Une fois que les JobIds ont
823 \'et\'e s\'electionn\'es, les enregistrements de fichiers sont plac\'es dans une
824 arborescence interne \`a Bacula, et la Console entre dans un mode de
825 s\'election interactif qui vous permet de naviguer dans cette arborescence
826 en s\'electionnant individuellement les fichiers ou r\'epertoires \`a restaurer.
827 Ce mode est assez similaire au mode de s\'election interactif du programme
828 Unix {\bf restore} standard.
830 restore storage=\lt{}storage-name\gt{} client=\lt{}client-name\gt{}
831 where=\lt{}path\gt{} pool=\lt{}pool-name\gt{} fileset=\lt{}fileset-name\gt{}
832 select current all done
834 O\`u l'option {\bf current}, si elle est sp\'ecifi\'ee, indique \`a la commande
835 {\bf restore} de s\'electionner automatiquement la sauvegarde la plus
836 r\'ecente (sinon, vous serez sollicit\'e \`a ce sujet). L'option {\bf all},
837 si elle est sp\'ecifi\'ee, indique \`a la commande {\bf restore} de restaurer
838 tous les fichiers (sinon, vous serez sollicit\'e \`a ce sujet). Pour plus de
839 d\'etails concernant la commande {\bf restore}, consultez le chapitre
840 \ilink{Restaurations avec Bacula}{_ChapterStart13}.
844 Cette commande vous permet d'ex\'ecuter imm\'ediatement vos jobs. Voici la forme
845 compl\`ete de cette commande :
847 run job=\lt{}job-name\gt{} client=\lt{}client-name\gt{}
848 fileset=\lt{}FileSet-name\gt{} level=\lt{}level-keyword\gt{}
849 storage=\lt{}storage-name\gt{} where=\lt{}directory-prefix\gt{}
850 when=\lt{}universal-time-specification\gt{} yes
852 Toute information omise quoique requise fait l'objet d'une liste de s\'election,
853 et avant le lancement du job, un bilan des param\`etres vous est pr\'esent\'e avec
854 options d'accord, refus et modification, \`a moins que vous ayez sp\'ecifi\'e
855 {\bf yes}, auquel cas le job est imm\'ediatement envoy\'e vers le planificateur.
857 Sur mon syst\`eme, j'obtiens ce qui suit lorsque je lance la commande run :
861 A job name must be specified.
862 The defined Job resources are:
872 Select Job resource (1-9):
877 Si je choisis le num\'ero 5, j'obtiens :
883 FileSet: Minou Full Set
888 When: 2003-04-23 17:08:18
889 OK to run? (yes/mod/no):
894 Si maintenant j'entre {\bf yes}, le job est ex\'ecut\'e. Si je choisis {\bf mod},
895 voici les otpions qui me sont propos\'ees :
899 Parameters to modify:
907 Select parameter to modify (1-7):
912 Vous pouvez, si vous le souhaitez, d\'emarrer un job plus tard, en utilisant le
913 param\`etre {\bf When}. Pour cela, faites le choix {\bf mod}, puis s\'electionnez
914 {\bf When} (no. 6) et enfin, saisissez l'heure et le jour de lancement
915 d\'esir\'es au format AAAA-MM-JJ HH:MM:SS.
918 \index[console]{setdebug}
919 \index[dir]{setdebug}
920 \index[dir]{debuggage}
921 \index[dir]{debuggage Win32}
922 \index[dir]{Windows!debuggage}
924 Cette commande est utilis\'ee pour param\'etrer le niveau de d\'ebuggage de chaque
925 {\it daemon}. Voici la forme compl\`ete de cette commande.
927 setdebug level=nn [trace=0/1 client=\lt{}client-name\gt{} | dir | director |
928 storage=\lt{}storage-name\gt{} | all]
930 Si le param\`etre de tra{\c c}age est actif (trace=1), alors le {\it daemon} est
931 plac\'e en mode tra{\c c}age, ce qui signifie que toutes les informations de
932 d\'ebuggage sont envoy\'ees vers le fichier {\bf bacula.trace} dans le
933 r\'epertoire courant du {\it daemon}. En principe, ce n'est n\'ecessaire
934 que pour le d\'ebuggage des clients Win32 o\`u les informations ne peuvent
935 \^etre envoy\'ees vers un terminal ou redirig\'ees vers un fichier. en mode
936 tra{\c c}age, chaque message de d\'ebuggage est ajout\'e au fichier, que vous devez
937 supprimer explicitement lorsque vous avez fini.
940 \index[console]{show}
942 LA commande {\bf show} \'enum\`ere les directives des ressources du Director
943 telles qu'ells sont d\'efinies dans son fichier de configuration.
944 Cette commande est surtout utilis\'ee par les d\'eveloppeurs \`a des fins
945 de d\'ebuggage. LEs mots-clef suivants sont accept\'es :
946 catalogs, clients, counters, devices, directors,
947 filesets, jobs, messages, pools, schedules, storages, all, help.
948 Ne confondez pas cette commande ave la commande {\bf list}, qui affiche
949 quand \`a elle le contenu du catalogue.
952 \index[console]{sqlquery}
953 La commande {\bf sqlquery} place le programme Console en mode de
954 requ\^etes SQL, dans lequel chaque ligne que vousq tapez est concat\'en\'ee
955 \`a la pr\'ec\'edents jusqu'\`a ce qu'un point-virgule (;) soit rencontr\'e. Le
956 point-virgule termine la commande qui est alors directement envoy\'e au moteur
957 de base de donn\'ee SQL. Lorsque le r\'esultat issu de la base de donn\'ee SQL est
958 affich\'e, la Console est pr\`ete \`a recevoir une nouvelle commande SQL.
959 Pour sortir du mode {\bf sqlquery} et reevenir \`a l'invite de la Console,
962 Cette commande vous permet d'interroger directement le catalogue. Notez
963 que vous devriez savoir exactement ce que vous faites en utilisant cette
964 commande, car vous pouvez endommager s\'erieusement votre catalogue.
965 Consultez le paragraphe relatif \`a la commande {\bf query} qui offre un
966 moyen \`a la fois plus simple et plus sur de saisir des requ\^etes SQL.
968 En fonction du moteur de base de donn\'ees que vous utilisez (MySQL,
969 PostgreSQL ou SQLite), vous disposerez de commandes quelque peu diff\'erentes.
970 Pour plus de d\'etails, r\'ef\'erez-vous aux documentations de MySQL, PostgreSQL
975 Cette commande produit un \'etat des prochains jobs planifi\'es au cours des
976 24 prochanes heures, ainsi que l'\'etat des jobs en cours d'ex\'ecution. Voici
977 la forme compl\`ete de cette commande :
979 status [all | dir=\lt{}dir-name\gt{} | director |
980 client=\lt{}client-name\gt{} | storage=\lt{}storage-name\gt{} |
983 Si vous entrez {\bf status dir}, la Console \'enum\`ere tous les jobs en cours
984 d'ex\'ecution, un r\'esum\'e des jobs planifi\'e pour ex\'ecution au cours des prochaines
985 24 heures incluant le volume qui sera probablement utilis\'e, et donne la liste
986 des dix derniers jobs ex\'ecut\'es avec leurs \'etats. Gardez \`a l'esprit les deux
987 \'el\'ements suivants :
989 \item L'obtention du volume n\'ecessite d'appliquer le m\^eme algorithme que
990 celui utilis\'e lors de l'ex\'ecution d'un job, ce qui peut r\'esulter en un \'elagage
992 \item Le volume affich\'e est, au mieux, une bonne supposition. En effet le
993 volume effectivement utilis\'e peut \^etre diff\'erent en raison du temps \'ecoul\'e
994 entre le status et l'ex\'ecution du job, un autre job ayant pu, entre temps,
995 remplir compl\`etement la cartouche.
998 Dans la liste des jobs en cours d'ex\'ecutions, vous pouvez trouver ce type
1003 2507 Catalog MatouVerify.2004-03-13_05.05.02 is waiting execution
1004 5349 Full CatalogBackup.2004-03-13_01.10.00 is waiting for higher
1005 priority jobs to finish
1006 5348 Differe Minou.2004-03-13_01.05.09 is waiting on max Storage jobs
1007 5343 Full Rufus.2004-03-13_01.05.04 is running
1011 La liste ci-dessus indique que le job de JobId 5343 (Rufus) est en cours.
1012 Le job de JobId 5348 (Minou) est en attente de la fin du job 5343
1013 qui utilise la m\^eme ressource Storage, ce qui provoque le "waiting
1014 on max Storage jobs". Le job de JobId 5349 a une priorit\'e inf\'erieure
1015 \`a celle de tous les autres jobs, aussi, il est en attente de la fin de
1016 jobs de priorit\'es sup\'erieures. Finalement, le job de jobId 2508 (MatouVerify)
1017 est en attente ("waiting execution") car un seul job peut \^etre ex\'ecut\'e
1020 Si vous faites un {\bf status dir}, Bacula affiche par d\'efaut les premi\`eres
1021 occurrences de tous les jobs pr\'evus pour ex\'ecution aujourd'hui et demain.
1022 Si vous voulez voir les jobs pr\'evus pour les trois prochains jours,
1023 (Si, par exemple vendredi, vous voulez voir les premi\`eres occurrences
1024 des cartouches \`a utiliser vendredi, samedi, dimanche et lundi), vous
1025 pouvez ajouter l'option {\bf days=3}. Notez, {\bf days=0} montre les
1026 premi\`eres occurrences des jobs planifi\'es pour \^etre ex\'ecut\'es aujourd'hui
1027 seulement. Si vous avez plusieurs ex\'ecutions planifi\'ees, pour chaque
1028 job, seule la premi\`ere occurrence sera affich\'e pour la p\'eriode sp\'ecifi\'ee.
1030 Si votre job para\^it bloqu\'e, vous pouvez avoir une id\'ee g\'en\'erale du probl\`eme
1031 en utilisant {\bf status dir}, et obtenir une information plus sp\'ecifique
1032 avec {\bf status storage=xxx}. Par exemple, si j'utilise cette derni\`ere
1033 commande sur un syst\`eme inoccup\'e, j'obtiens :
1038 Connecting to Storage daemon File at 192.168.68.112:8103
1040 rufus-sd Version: 1.39.6 (24 March 2006) i686-pc-linux-gnu redhat (Stentz)
1041 Daemon started 26-Mar-06 11:06, 0 Jobs run since started.
1047 Jobs waiting to reserve a drive:
1051 JobId Level Files Bytes Status Finished Name
1052 ======================================================================
1053 59 Full 234 4,417,599 OK 15-Jan-06 11:54 kernsave
1057 utochanger "DDS-4-changer" with devices:
1059 Device "DDS-4" (/dev/nst0) is mounted with Volume="TestVolume002"
1061 Slot 2 is loaded in drive 0.
1062 Total Bytes Read=0 Blocks Read=0 Bytes/block=0
1063 Positioned at File=0 Block=0
1064 Device "Dummy" is not open or does not exist.
1065 No DEVICE structure.
1067 Device "DVD-Writer" (/dev/hdc) is not open.
1068 Device "File" (/tmp) is not open.
1071 In Use Volume status:
1076 Ce qui r\'ev\`ele qu'aucun job n'est en cours d'ex\'ecution, et qu'aucun des
1077 p\'eriph\'eriques n'est en cours d'utilisation. Si je d\'emonte la librairie
1078 ({\bf unmount}), qui ne sera plus utilis\'ee dans cet exemple, et que je lance
1079 un job qui utilise le stockage File, le job se bloque. Si je demande \`a
1080 nouveau {\bf status storage=xxx}, j'obtiens :
1087 Autochanger "DDS-4-changer" with devices:
1089 Device "DDS-4" (/dev/nst0) is not open.
1090 Device is BLOCKED. User unmounted.
1091 Drive 0 is not loaded.
1092 Device "Dummy" is not open or does not exist.
1093 No DEVICE structure.
1095 Device "DVD-Writer" (/dev/hdc) is not open.
1096 Device "File" (/tmp) is not open.
1097 Device is BLOCKED waiting for media.
1103 Il devrait maintenant \^etre clair que si un job n\'ecessitant la librairie
1104 est ex\'ecut\'e, il bloquera en raison du d\'emontage de cette derni\`ere par
1105 l'utilisateur. Mais le probl\`eme pour le job que j'ai lanc\'e avec le
1106 p\'eriph\'erique "File" est que le p\'eriph\'erique est bloqu\'e en attente
1107 d'un media : Bacula a besoin que vous \'etiquetiez un volume.
1110 \index[console]{unmount}
1111 Cette commande sert \`a ordonner au Storage Daemon de d\'emonter le p\'eriph\'erique
1112 sp\'ecifi\'e. Les formes de cette commande sont les m\^emes que celle de la commande
1117 unmount storage=<storage-name>
1119 unmount [ jobid=<id> | job=<job-name> ]
1123 \label{UpdateCommand}
1125 \index[console]{update}
1126 Cette commande met \`a jour le catalogue, que ce soit pour un pool sp\'ecifique,
1127 un enregistrement de volume, ou les slots d'une librairie dot\'ee d'un lecteur
1128 de codes barres. Dans le cas de la mise \`a jour d'un enregistrement de pool,
1129 la nouvelle configuration est automatiquement r\'ecup\'er\'ee de la ressource
1130 correspondante du fichier de configuration du Director. Cette commande peut
1131 notamment servir \`a augmenter le nombre maxial de volumes dans un pool. Les
1132 principaux mots-clef suivants peuvent \^etre utilis\'es :
1136 media, volume, pool, slots
1140 Dans le cas de la mise \`a jour d'un volume, vous serez interrog\'e sur le
1141 param\`etre que vous voulez modifier. Voici ces param\`etres :
1147 Volume Retention Period
1150 Maximum Volume Files
1151 Maximum Volume Bytes
1158 All Volumes from Pool
1163 Pour le param\`etre slot, {\bf update slots}, Bacula obtient une liste
1164 de tous les slots et de leurs codes barres du Storage Daemon,
1165 pour chaque code barres trouv\'e, le slot est mis \`a jour dans
1166 l'enregistrement Media du catalogue. C'est tr\`es pratique si vous
1167 d\'eplacez des cartouches dans la librairie, ou si vous changez des
1168 magasins de cartouches. Dans la foul\'ee, le drapeau InChanger est
1169 aussi mis \`a jour.Ceci permet \`a BAcula de savoir quels cartouches sont
1170 effectivement dans la librairie.
1172 Si vous n'avez pas de lecteur de codes barres, vous pouvez faire la
1173 m\^eme chose depuis la version 1.33 gr\^ace \`a la commande {\bf update slots scan}.
1174 Le mot-clef {\bf scan} ordonne \`a Bacula de monter physiquement chaque
1175 cartouche afin de lire son VolumeName.
1177 Pour le param\`etre Pool, {\bf update pool}, Bacula d\'eplace le volume de
1178 son pool courant vers le pool sp\'ecifi\'e.
1180 Pour les parm\`etres {\bf Volume from Pool} et {\bf All Volumes from Pool},
1181 les valeurs suivantes sont mises \`a jour depuis l'enregistrement
1182 de pool : Recycle, VolRetention, VolUseDuration, MaxVolJobs, MaxVolFiles,
1185 Voici la forme compl\`ete de la commande {\bf update} :
1189 update volume=xxx pool=yyy slots volstatus=xxx VolRetention=ddd
1190 VolUse=ddd MaxVolJobs=nnn MaxVolBytes=nnn Recycle=yes|no
1197 \index[console]{use}
1198 Cette commande vous perment de pr\'eciser le catalogue que vous voulez utiliser.
1199 En principe, vous n'utiliserez qu'un seul catalogue, aussi vous n'aurez pas
1200 besoin de faire ce choix. Sinon, utilisez cette commande pour passer de l'un
1201 de vos catalogues \`a l'autre.
1203 use \lt{}database-name\gt{}
1207 \index[console]{var name}
1208 Cette commande prend une cha\^ine \'eventuellement encadr\'ee de guillemets et effectue
1209 l'expansion des variables comme elle serait effectu\'ee au niveau de la
1210 directive {\bf LabelFormat}. Ainsi, vous pouvez tester vos cha\^ines
1211 de format d'\'etiquetage. La diff\'erence entre la commande {\bf var} et le
1212 processus effectif est que pour la premi\`ere, aucun job n'est en cours,
1213 aussi des valeurs factices sont utilis\'ees au lieu des variables sp\'ecifiques
1214 aux jobs. Cela vous permet cependant de vous faire une bonne id\'ee de ce qui
1215 se passerait dans le cas r\'eel.
1218 \index[console]{version}
1219 Cette commande affiche la version du Director.
1222 \index[console]{quit}
1223 Cette commande stoppe le programme Console. Celui-ci envoie la requ\^ete
1224 {\bf quit} au Director et attend son accus\'e de r\'eception. Si le Director
1225 est occup\'e, cela peut prendre un certain temps. Vous pouvez quitter
1226 imm\'ediatement en utilisant la variante {\bf .quit} ({\bf quit} pr\'ec\'ed\'ee
1230 \index[console]{query}
1231 Cette commande lit une requ\^ete SQL pr\'ed\'efinie dans le fichier de requ\^etes
1232 (le nom et l'emplacement de ce fichier sont d\'efinis par la directive
1233 QueryFile du fichier de configuration du Director). Il vous est alors
1234 demand\'e de s\'electionner une requ\^ete du fichier, et \'eventuellement de
1235 saisir un ou plusieurs param\`etres. La requ\^ete est alors soumise au
1236 moteur de base de donn\'ees.
1238 Les requ\^etes suivantes sont actuellement (version 1.24) disponibles :
1244 2: List where a file is saved:
1245 3: List where the most recent copies of a file are saved:
1246 4: List total files/bytes by Job:
1247 5: List total files/bytes by Volume:
1248 6: List last 20 Full Backups for a Client:
1249 7: List Volumes used by selected JobId:
1250 8: List Volumes to Restore All Files:
1251 9: List where a File is saved:
1252 Choose a query (1-9):
1258 \index[console]{exit}
1259 Cette commande termine le programme Console.
1262 \index[console]{wait}
1263 Cette commande place le Director en pause jusqu'\`a ce qu'il n'y ait plus
1264 aucun job en ex\'ecution. Cette commande est utile dans des situation
1265 d'utilisation automatis\'ee par scripts telles que les tests de r\'egression
1266 o\`u vous voulez d\'emarrer un job, et attendre qu'il se termine avant de
1273 \subsection*{Commandes sp\'eciales, pr\'ec\'ed\'ees d'un point}
1274 \index[general]{Commands!sp\'eciales, pr\'ec\'ed\'ees d'un point}
1275 \index[general]{Commandes sp\'eciales, pr\'ec\'ed\'ees d'un point}
1276 \addcontentsline{toc}{subsection}{Commandes sp\'eciales, pr\'ec\'ed\'ees d'un point}
1278 Voici une liste de commandes pr\'efix\'ees d'un point (.). Elles ont pour vocation
1279 d'\^etre utilis\'ees soit dans des programmes {\it batch}, soit par des interfaces
1280 graphiques. Elles ne sont, en principe, pas utilis\'ees en mode interactif.
1281 Une fois que le d\'eveloppement d'interfaces graphiques aura d\'emarr\'e, cette liste
1282 s'accro\^itra consid\'erablement.
1286 .backups job=xxx list backups for specified job
1287 .defaults client=xxx fileset=yyy list defaults for specified client
1288 .die cause the Director to segment fault (for debugging)
1289 .dir when in tree mode prints the equivalent to the dir command,
1290 but with fields separated by commas rather than spaces.
1291 .jobs list all job names
1292 .levels list all levels
1293 .filesets list all fileset names
1294 .clients list all client names
1295 .pools list all pool names
1296 .types list job types
1297 .msgs return any queued messages
1298 .messages get quick messages
1299 .help help command output
1301 .status get status output
1308 \subsection*{Commandes sp\'eciales, pr\'ec\'ed\'ees d'un arobase (@)}
1309 \index[general]{Commandes!sp\'eciales arobase @}
1310 \index[general]{Commandes sp\'eciales, pr\'ec\'ed\'ees d'un arobase (@)}
1311 \addcontentsline{toc}{subsection}{Commandes sp\'eciales, pr\'ec\'ed\'ees d'un arobase (@)}
1313 Normalement, toutes les commandes saisies dans la Console sont imm\'ediatement
1314 transmises au Director, qui peut r\'esider sur une autre machine, afin d'y \^etre
1315 ex\'ecut\'ees. Il existe cependant quelques commandes, toutes pr\'ec\'ed\'ees du
1316 caract\`ere arobase (@), qui ne sont pas envoy\'ees au Director, mais
1317 directement interpr\'et\'ees par la Console. Notez que seule la Console
1318 tty impl\'emente ces commandes, et non la Console GNOME. En voici la liste :
1322 \item [@input \lt{}nom-de-fichier\gt{}]
1323 \index[console]{@input \lt{}nom-de-fichier\gt{}}
1324 Lit et ex\'ecute les commandes consign\'ees dans le fichier sp\'ecifi\'e.
1326 \item [@output \lt{}nom-de-fichier\gt{} w/a]
1327 \index[console]{@output \lt{}nom-de-fichier\gt{} w/a}
1328 Envoit l'ensemble des retours de la Console vers le fichier sp\'ecifi\'e,
1329 avec \'ecrasement si l'option {\bf w} est sp\'ecifi\'ee, ou ajout \`a la suite si l'option
1330 {\bf a} est sp\'ecifi\'ee. Pour rediriger la sortie vers le terminal, entrez
1331 simplement {\bf output} sans sp\'ecifier de nom de fichier.
1332 ATTENTION : prenez garde de ne pas \'ecraser un fichier valide.
1333 Voici un exemple typique lors d'un test de r\'egression :
1344 \item [@tee \lt{}nom-de-fichier\gt{} w/a]
1345 \index[console]{@tee \lt{}nom-de-fichier\gt{} w/a}
1346 Comme la commande pr\'ec\'edente avec envoi simultan\'e vers le terminal. Pour
1347 sortir de ce mode, vous pouvez utiliser {\bf @tee} ou {\bf @output} sans
1348 sp\'ecifier de nom de fichier.
1350 \item [@sleep \lt{}seconds\gt{}]
1351 \index[console]{@sleep \lt{}seconds\gt{}}
1352 Met en sommeil pour une dur\'ee du nombre de secondes sp\'ecifi\'e.
1355 \index[console]{@time}
1356 Affiche la date et l'heure courantes.
1359 \index[console]{@version}
1360 Affiche la version de la Console.
1363 \index[console]{@quit}
1367 \index[console]{@exit}
1370 \item [@\# n-importe-quoi]
1371 \index[console]{n-importe-quoi}
1377 \subsection*{Ex\'ecuter la Console depuis un script shell}
1378 \index[general]{Script!Ex\'ecuter la Console depuis un script shell}
1379 \index[general]{Ex\'ecuter la Console depuis un script shell}
1380 \addcontentsline{toc}{subsection}{Ex\'ecuter la Console depuis un script shell}
1381 Vous pouvez automatiser de nombreuses t\^aches effectu\'ees \`a la Console, en les
1382 ex\'ecutant dans un script shell. Par exemple, si vous avez cr\'e\'e un fichier
1387 ./bconsole -c ./bconsole.conf <<END_OF_DATA
1388 unmount storage=DDS-4
1394 A l'ex\'ecution de ce fichier, le p\'eriph\'erique DDS-4 est d\'emont\'e.
1395 Vous pouvez, si vous le souhaitez, ex\'ecuter cette t\^ache lors d'un job avec
1396 les directives {\bf RunBeforeJob} ou {\bf RunAfterJob}.
1398 Il est aussi possible d'ex\'ecuter la Console \`a partir de l'entr\'ee d'un
1399 fichier contenant les commandes comme suit :
1403 ./bconsole -c ./bconsole.conf <filename
1407 o\`u le fichier nomm\'e {\bf filename} contient un ensemble quelconque de
1408 commandes de la Console.
1410 Voici un exemple r\'eel, issu des tests de r\'egression de Bacula. Il
1411 \'etiquette un volume (sur disque) ex\'ecute une sauvegarde puis une
1412 restauration des fichiers sauvegard\'es.
1416 bin/bconsole -c bin/bconsole.conf <<END_OF_DATA
1419 @output /tmp/log1.out
1420 label volume=TestVolume001
1427 @output /tmp/log2.out
1438 Les donn\'ees issues de la sauvegarde sont envoy\'ees vers /tmp/log1.out et
1439 celles de la restaurations vers /tmp/log2.out. Pour v\'erifier que les
1440 op\'erations se sont d\'eroul\'ees correctement, les fichiers de sorties
1441 sont contr\^ol\'es avec :
1445 grep "^Termination: *Backup OK" /tmp/log1.out
1447 grep "^Termination: *Restore OK" /tmp/log2.out
1452 \subsection*{Ajouter des volumes \`a un pool}
1453 \index[general]{Ajouter des volumes \`a un pool}
1454 \index[general]{Pool!Ajouter des volumes \`a un}
1455 \addcontentsline{toc}{subsection}{Ajouter des volumes \`a un pool}
1457 Si vous avez utilis\'e la commande {\bf label} pour \'etiqueter un volume, alors
1458 celui-ci est automatiquement ajout\'e au pool, et vous n'avez pas besoin de le faire
1461 Une alternative consiste \`a ajouter plusieurs volumes \`a un pool sans les
1462 \'etiqueter pr\'ealablement. Vous devrez alors les \'etiqueter plus tard, lorsque Bacula
1465 Avant d'ajouter un volume \`a un pool, vous devez conna\^itre les informations
1469 \item Le nom du pool (normalement, "Default") ;
1470 \item Le type de media tel qu'il est sp\'ecifi\'e dans la ressource Storage
1471 du fichier de configuration du Director (par exemple, "DLT8000") ;
1472 \item Le nombre de volumes que vous voulez cr\'eer, et leurs noms.
1473 The number and names of the Volumes you wish to create.
1476 Par exemple, pour ajouter un media \`a un pool, vous utiliseriez les commandes
1477 suivantes dans la Console :
1482 Enter name of Pool to add Volumes to: Default
1483 Enter the Media Type: DLT8000
1484 Enter number of Media volumes to create. Max=1000: 10
1485 Enter base volume name: Save
1486 Enter the starting number: 1
1487 10 Volumes created in pool Default
1492 Pour voir ce que vous avez ajout\'e, tapez :
1496 *list media pool=Default
1497 +-------+----------+---------+---------+-------+------------------+
1498 | MedId | VolumeNa | MediaTyp| VolStat | Bytes | LastWritten |
1499 +-------+----------+---------+---------+-------+------------------+
1500 | 11 | Save0001 | DLT8000 | Append | 0 | 0000-00-00 00:00 |
1501 | 12 | Save0002 | DLT8000 | Append | 0 | 0000-00-00 00:00 |
1502 | 13 | Save0003 | DLT8000 | Append | 0 | 0000-00-00 00:00 |
1503 | 14 | Save0004 | DLT8000 | Append | 0 | 0000-00-00 00:00 |
1504 | 15 | Save0005 | DLT8000 | Append | 0 | 0000-00-00 00:00 |
1505 | 16 | Save0006 | DLT8000 | Append | 0 | 0000-00-00 00:00 |
1506 | 17 | Save0007 | DLT8000 | Append | 0 | 0000-00-00 00:00 |
1507 | 18 | Save0008 | DLT8000 | Append | 0 | 0000-00-00 00:00 |
1508 | 19 | Save0009 | DLT8000 | Append | 0 | 0000-00-00 00:00 |
1509 | 20 | Save0010 | DLT8000 | Append | 0 | 0000-00-00 00:00 |
1510 +-------+----------+---------+---------+-------+------------------+
1515 Notez que la Console a automatiquement ajout\'e un num\'ero au nom de volume de
1516 base que vous avez sp\'ecifi\'e ("Save" dans ce cas). Si vous ne souhaitez pas
1517 ce comportement, r\'epondez simplement 0 (z\'ero) \`a la queston "Enter number
1518 of Media volumes to create . Max=1000:" et un seul volume sera cr\'e\'e avec
1519 le nom exact que vous avez sp\'ecifi\'e.