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 The reload command causes the Director to re-read its configuration
793 file and apply the new values. The new values will take effect
794 immediately for all new jobs. However, if you change schedules,
795 be aware that the scheduler pre-schedules jobs up to two hours in
796 advance, so any changes that are to take place during the next two
797 hours may be delayed. Jobs that have already been scheduled to run
798 (i.e. surpassed their requested start time) will continue with the
799 old values. New jobs will use the new values. Each time you issue
800 a reload command while jobs are running, the prior config values
801 will queued until all jobs that were running before issuing
802 the reload terminate, at which time the old config values will
803 be released from memory. The Directory permits keeping up to
804 10 prior set of configurations before it will refuse a reload
805 command. Once at least one old set of config values has been
806 released it will again accept new reload commands.
808 While it is possible to reload the Director's configuration on the fly,
809 even while jobs are executing, this is a complex operation and not
810 without side effects. Accordingly, if you have to reload the Director's
811 configuration while Bacula is running, it is advisable to restart the
812 Director at the next convenient opportunity.
814 \label{restore_command}
816 \index[console]{restore}
817 The restore command allows you to select one or more Jobs (JobIds) to be
818 restored using various methods. Once the JobIds are selected, the File
819 records for those Jobs are placed in an internal Bacula directory tree,
820 and the restore enters a file selection mode that allows you to
821 interactively walk up and down the file tree selecting individual files
822 to be restored. This mode is somewhat similar to the standard Unix {\bf
823 restore} program's interactive file selection mode.
825 restore storage=\lt{}storage-name\gt{} client=\lt{}client-name\gt{}
826 where=\lt{}path\gt{} pool=\lt{}pool-name\gt{} fileset=\lt{}fileset-name\gt{}
827 select current all done
829 Where {\bf current}, if specified, tells the restore command to
830 automatically select a restore to the most current backup. If not
831 specified, you will be prompted. The {\bf all} specification tells the
832 restore command to restore all files. If it is not specified, you will
833 be prompted for the files to restore. For details of the {\bf restore}
834 command, please see the \ilink{Restore Chapter}{_ChapterStart13} of this
839 This command allows you to schedule jobs to be run immediately. The full form
842 run job=\lt{}job-name\gt{} client=\lt{}client-name\gt{}
843 fileset=\lt{}FileSet-name\gt{} level=\lt{}level-keyword\gt{}
844 storage=\lt{}storage-name\gt{} where=\lt{}directory-prefix\gt{}
845 when=\lt{}universal-time-specification\gt{} yes
847 Any information that is needed but not specified will be listed for
848 selection, and before starting the job, you will be prompted to accept,
849 reject, or modify the parameters of the job to be run, unless you have
850 specified {\bf yes}, in which case the job will be immediately sent to
853 On my system, when I enter a run command, I get the following prompt:
857 A job name must be specified.
858 The defined Job resources are:
868 Select Job resource (1-9):
873 If I then select number 5, I am prompted with:
879 FileSet: Minou Full Set
884 When: 2003-04-23 17:08:18
885 OK to run? (yes/mod/no):
890 If I now enter {\bf yes}, the Job will be run. If I enter {\bf mod}, I will
891 be presented with the following prompt.
895 Parameters to modify:
903 Select parameter to modify (1-7):
908 If you wish to start a job at a later time, you can do so by setting the When
909 time. Use the {\bf mod} option and select {\bf When} (no. 6). Then enter the
910 desired start time in YYYY-MM-DD HH:MM:SS format.
913 \index[console]{setdebug}
914 \index[dir]{setdebug}
915 \index[dir]{debugging}
916 \index[dir]{debugging Win32}
917 \index[dir]{Windows!debugging}
919 This command is used to set the debug level in each daemon. The form of this
922 setdebug level=nn [trace=0/1 client=\lt{}client-name\gt{} | dir | director |
923 storage=\lt{}storage-name\gt{} | all]
925 If trace=1 is set, then tracing will be enabled, and the daemon will be
926 placed in trace mode, which means that all debug output as set by the
927 debug level will be directed to the file {\bf bacula.trace} in the
928 current directory of the daemon. Normally, tracing is needed only for
929 Win32 clients where the debug output cannot be written to a terminal or
930 redirected to a file. When tracing, each debug output message is
931 appended to the trace file. You must explicitly delete the file when
935 \index[console]{show}
937 The show command will list the Director's resource records as defined in
938 the Director's configuration file (normally {\bf bacula-dir.conf}).
939 This command is used mainly for debugging purposes by developers.
940 The following keywords are accepted on the
941 show command line: catalogs, clients, counters, devices, directors,
942 filesets, jobs, messages, pools, schedules, storages, all, help.
943 Please don't confuse this command
944 with the {\bf list}, which displays the contents of the catalog.
947 \index[console]{sqlquery}
948 The sqlquery command puts the Console program into SQL query mode where
949 each line you enter is concatenated to the previous line until a
950 semicolon (;) is seen. The semicolon terminates the command, which is
951 then passed directly to the SQL database engine. When the output from
952 the SQL engine is displayed, the formation of a new SQL command begins.
953 To terminate SQL query mode and return to the Console command prompt,
954 you enter a period (.) in column 1.
956 Using this command, you can query the SQL catalog database directly.
957 Note you should really know what you are doing otherwise you could
958 damage the catalog database. See the {\bf query} command below for
959 simpler and safer way of entering SQL queries.
961 Depending on what database engine you are using (MySQL, PostgreSQL or
962 SQLite), you will have somewhat different SQL commands available. For
963 more detailed information, please refer to the MySQL, PostgreSQL or
964 SQLite documentation.
968 This command will display the status of the next jobs that are scheduled
969 during the next twenty-four hours as well as the status of currently
970 running jobs. The full form of this command is:
972 status [all | dir=\lt{}dir-name\gt{} | director |
973 client=\lt{}client-name\gt{} | storage=\lt{}storage-name\gt{} |
976 If you do a {\bf status dir}, the console will list any currently
977 running jobs, a summary of all jobs scheduled to be run in the next 24
978 hours, and a listing of the last 10 terminated jobs with their statuses.
979 The scheduled jobs summary will include the Volume name to be used. You
980 should be aware of two things: 1. to obtain the volume name, the code
981 goes through the same code that will be used when the job runs, which
982 means that it may prune or recycle a Volume; 2. The Volume listed is
983 only a best guess. The Volume actually used may be different because of
984 the time difference (more durations may expire when the job runs) and
985 another job could completely fill the Volume requiring a new one.
987 In the Running Jobs listing, you may find the following types of
993 2507 Catalog MatouVerify.2004-03-13_05.05.02 is waiting execution
994 5349 Full CatalogBackup.2004-03-13_01.10.00 is waiting for higher
995 priority jobs to finish
996 5348 Differe Minou.2004-03-13_01.05.09 is waiting on max Storage jobs
997 5343 Full Rufus.2004-03-13_01.05.04 is running
1001 Looking at the above listing from bottom to top, obviously JobId 5343
1002 (Rufus) is running. JobId 5348 (Minou) is waiting for JobId 5343 to
1003 finish because it is using the Storage resource, hence the "waiting on
1004 max Storage jobs". JobId 5349 has a lower priority than all the other
1005 jobs so it is waiting for higher priority jobs to finish, and finally,
1006 JobId 2508 (MatouVerify) is waiting because only one job can run at a
1007 time, hence it is simply "waiting execution"
1009 If you do a {\bf status dir}, it will by default list the first
1010 occurrence of all jobs that are scheduled today and tomorrow. If you
1011 wish to see the jobs that are scheduled in the next 3 days (e.g. on
1012 Friday you want to see the first occurrence of what tapes are scheduled
1013 to be used on Friday, the weekend, and Monday), you can add the {\bf
1014 days=3} option. Note, a {\bf days=0} shows the first occurrence of jobs
1015 scheduled today only. If you have multiple run statements, the first
1016 occurrence of each run statement for the job will be displayed for the
1019 If your job seems to be blocked, you can get a general idea of the
1020 problem by doing a {\bf status dir}, but you can most often get a
1021 much more specific indication of the problem by doing a
1022 {\bf status storage=xxx}. For example, on an idle test system, when
1023 I do {\bf status storage=File}, I get:
1027 Connecting to Storage daemon File at 192.168.68.112:8103
1029 rufus-sd Version: 1.39.6 (24 March 2006) i686-pc-linux-gnu redhat (Stentz)
1030 Daemon started 26-Mar-06 11:06, 0 Jobs run since started.
1036 Jobs waiting to reserve a drive:
1040 JobId Level Files Bytes Status Finished Name
1041 ======================================================================
1042 59 Full 234 4,417,599 OK 15-Jan-06 11:54 kernsave
1046 utochanger "DDS-4-changer" with devices:
1048 Device "DDS-4" (/dev/nst0) is mounted with Volume="TestVolume002"
1050 Slot 2 is loaded in drive 0.
1051 Total Bytes Read=0 Blocks Read=0 Bytes/block=0
1052 Positioned at File=0 Block=0
1053 Device "Dummy" is not open or does not exist.
1054 No DEVICE structure.
1056 Device "DVD-Writer" (/dev/hdc) is not open.
1057 Device "File" (/tmp) is not open.
1060 In Use Volume status:
1065 Now, what this tells me is that no jobs are running and that none of
1066 the devices are in use. Now, if I {\bf unmount} the autochanger, which
1067 will not be used in this example, and then start a Job that uses the
1068 File device, the job will block. When I re-issue the status storage
1069 command, I get for the Device status:
1076 Autochanger "DDS-4-changer" with devices:
1078 Device "DDS-4" (/dev/nst0) is not open.
1079 Device is BLOCKED. User unmounted.
1080 Drive 0 is not loaded.
1081 Device "Dummy" is not open or does not exist.
1082 No DEVICE structure.
1084 Device "DVD-Writer" (/dev/hdc) is not open.
1085 Device "File" (/tmp) is not open.
1086 Device is BLOCKED waiting for media.
1092 Now, here it should be clear that if a job were running that wanted
1093 to use the Autochanger (with two devices), it would block because
1094 the user unmounted the device. The real problem for the Job I started
1095 using the "File" device is that the device is blocked waiting for
1096 media -- that is Bacula needs you to label a Volume.
1099 \index[console]{unmount}
1100 This command causes the indicated Bacula Storage daemon to unmount the
1101 specified device. The forms of the command are the same as the mount command:
1104 unmount storage=<storage-name>
1106 unmount [ jobid=<id> | job=<job-name> ]
1110 \label{UpdateCommand}
1112 \index[console]{update}
1113 This command will update the catalog for either a specific Pool record, a Volume
1114 record, or the Slots in an autochanger with barcode capability. In the case
1115 of updating a Pool record, the new information will be automatically taken
1116 from the corresponding Director's configuration resource record. It can be
1117 used to increase the maximum number of volumes permitted or to set a maximum
1118 number of volumes. The following main keywords may be specified:
1121 media, volume, pool, slots
1125 In the case of updating a Volume, you will be prompted for which value you
1126 wish to change. The following Volume parameters may be changed:
1132 Volume Retention Period
1135 Maximum Volume Files
1136 Maximum Volume Bytes
1143 All Volumes from Pool
1148 For slots {\bf update slots}, Bacula will obtain a list of slots and
1149 their barcodes from the Storage daemon, and for each barcode found, it
1150 will automatically update the slot in the catalog Media record to
1151 correspond to the new value. This is very useful if you have moved
1152 cassettes in the magazine, or if you have removed the magazine and
1153 inserted a different one. As the slot of each Volume is updated, the
1154 InChanger flag for that Volume will also be set, and any other Volumes
1155 in the Pool that were last mounted on the same Storage device
1156 will have their InChanger flag turned off. This permits
1157 Bacula to know what magazine (tape holder) is currently in the
1160 If you do not have barcodes, you can accomplish the same thing in
1161 version 1.33 and later by using the {\bf update slots scan} command.
1162 The {\bf scan} keyword tells Bacula to physically mount each tape and to
1163 read its VolumeName.
1165 For Pool {\bf update pool}, Bacula will move the Volume record from its
1166 existing pool to the pool specified.
1168 For {\bf Volume from Pool} and {\bf All Volumes from Pool}, the
1169 following values are updated from the Pool record: Recycle,
1170 VolRetention, VolUseDuration, MaxVolJobs, MaxVolFiles, and MaxVolBytes.
1172 The full form of the update command with all command line arguments is:
1176 update volume=xxx pool=yyy slots volstatus=xxx VolRetention=ddd
1177 VolUse=ddd MaxVolJobs=nnn MaxVolBytes=nnn Recycle=yes|no
1184 \index[console]{use}
1185 This command allows you to specify which Catalog database to use. Normally,
1186 you will be using only one database so this will be done automatically. In
1187 the case that you are using more than one database, you can use this command
1188 to switch from one to another.
1190 use \lt{}database-name\gt{}
1194 \index[console]{var name}
1195 This command takes a string or quoted string and does variable expansion on
1196 it the same way variable expansion is done on the {\bf LabelFormat} string.
1197 Thus, for the most part, you can test your LabelFormat strings. The
1198 difference between the {\bf var} command and the actual LabelFormat process
1199 is that during the var command, no job is running so "dummy" values are
1200 used in place of Job specific variables. Generally, however, you will get a
1201 good idea of what is going to happen in the real case.
1204 \index[console]{version}
1205 The command prints the Director's version.
1208 \index[console]{quit}
1209 This command terminates the console program. The console program sends the
1210 {\bf quit} request to the Director and waits for acknowledgment. If the
1211 Director is busy doing a previous command for you that has not terminated, it
1212 may take some time. You may quit immediately by issuing the {\bf .quit}
1213 command (i.e. quit preceded by a period).
1216 \index[console]{query}
1217 This command reads a predefined SQL query from the query file (the name and
1218 location of the query file is defined with the QueryFile resource record in
1219 the Director's configuration file). You are prompted to select a query from
1220 the file, and possibly enter one or more parameters, then the command is
1221 submitted to the Catalog database SQL engine.
1223 The following queries are currently available (version 1.24):
1229 2: List where a file is saved:
1230 3: List where the most recent copies of a file are saved:
1231 4: List total files/bytes by Job:
1232 5: List total files/bytes by Volume:
1233 6: List last 20 Full Backups for a Client:
1234 7: List Volumes used by selected JobId:
1235 8: List Volumes to Restore All Files:
1236 9: List where a File is saved:
1237 Choose a query (1-9):
1243 \index[console]{exit}
1244 This command terminates the console program.
1247 \index[console]{wait}
1248 The wait command causes the Director to pause until there are no jobs
1249 running. This command is useful in a batch situation such as regression
1250 testing where you wish to start a job and wait until that job completes
1256 \subsection*{Special dot Commands}
1257 \index[general]{Commands!Special dot}
1258 \index[general]{Special dot Commands}
1259 \addcontentsline{toc}{subsection}{Special dot Commands}
1261 There is a list of commands that are prefixed with a period (.). These
1262 commands are intended to be used either by batch programs or graphical user
1263 interface front-ends. They are not normally used by interactive users. Once
1264 GUI development begins, this list will be considerably expanded. The following
1265 is the list of dot commands:
1269 .backups job=xxx list backups for specified job
1270 .defaults client=xxx fileset=yyy list defaults for specified client
1271 .die cause the Director to segment fault (for debugging)
1272 .dir when in tree mode prints the equivalent to the dir command,
1273 but with fields separated by commas rather than spaces.
1274 .jobs list all job names
1275 .levels list all levels
1276 .filesets list all fileset names
1277 .clients list all client names
1278 .pools list all pool names
1279 .types list job types
1280 .msgs return any queued messages
1281 .messages get quick messages
1282 .help help command output
1284 .status get status output
1291 \subsection*{Special At (@) Commands}
1292 \index[general]{Commands!Special At @}
1293 \index[general]{Special At (@) Commands}
1294 \addcontentsline{toc}{subsection}{Special At (@) Commands}
1296 Normally, all commands entered to the Console program are immediately
1297 forwarded to the Director, which may be on another machine, to be executed.
1298 However, there is a small list of {\bf at} commands, all beginning with an at
1299 character (@), that will not be sent to the Director, but rather interpreted
1300 by the Console program directly. Note, these commands are implemented only in
1301 the tty console program and not in the GNOME Console. These commands are:
1305 \item [@input \lt{}filename\gt{}]
1306 \index[console]{@input \lt{}filename\gt{}}
1307 Read and execute the commands contained in the file specified.
1309 \item [@output \lt{}filename\gt{} w/a]
1310 \index[console]{@output \lt{}filename\gt{} w/a}
1311 Send all following output to the filename specified either overwriting the
1312 file (w) or appending to the file (a). To redirect the output to the
1313 terminal, simply enter {\bf @output} without a filename specification.
1314 WARNING: be careful not to overwrite a valid file. A typical example during a
1315 regression test might be:
1326 \item [@tee \lt{}filename\gt{} w/a]
1327 \index[console]{@tee \lt{}filename\gt{} w/a}
1328 Send all subsequent output to both the specified file and the terminal. It is
1329 turned off by specifying {\bf @tee} or {\bf @output} without a filename.
1331 \item [@sleep \lt{}seconds\gt{}]
1332 \index[console]{@sleep \lt{}seconds\gt{}}
1333 Sleep the specified number of seconds.
1336 \index[console]{@time}
1337 Print the current time and date.
1340 \index[console]{@version}
1341 Print the console's version.
1344 \index[console]{@quit}
1348 \index[console]{@exit}
1351 \item [@\# anything]
1352 \index[console]{anything}
1358 \subsection*{Running the Console Program from a Shell Script}
1359 \index[general]{Script!Running the Console Program from a Shell}
1360 \index[general]{Running the Console Program from a Shell Script}
1361 \addcontentsline{toc}{subsection}{Running the Console Program from a Shell
1364 You can automate many Console tasks by running the console program from a
1365 shell script. For example, if you have created a file containing the following
1370 ./bconsole -c ./bconsole.conf <<END_OF_DATA
1371 unmount storage=DDS-4
1377 when that file is executed, it will unmount the current DDS-4 storage device.
1378 You might want to run this command during a Job by using the {\bf
1379 RunBeforeJob} or {\bf RunAfterJob} records.
1381 It is also possible to run the Console program from file input where the file
1382 contains the commands as follows:
1386 ./bconsole -c ./bconsole.conf <filename
1390 where the file named {\bf filename} contains any set of console commands.
1392 As a real example, the following script is part of the Bacula regression
1393 tests. It labels a volume (a disk volume), runs a backup, then does a restore
1398 bin/bconsole -c bin/bconsole.conf <<END_OF_DATA
1401 @output /tmp/log1.out
1402 label volume=TestVolume001
1409 @output /tmp/log2.out
1420 The output from the backup is directed to /tmp/log1.out and the output from
1421 the restore is directed to /tmp/log2.out. To ensure that the backup and
1422 restore ran correctly, the output files are checked with:
1426 grep "^Termination: *Backup OK" /tmp/log1.out
1428 grep "^Termination: *Restore OK" /tmp/log2.out
1433 \subsection*{Adding Volumes to a Pool}
1434 \index[general]{Adding Volumes to a Pool}
1435 \index[general]{Pool!Adding Volumes to a}
1436 \addcontentsline{toc}{subsection}{Adding Volumes to a Pool}
1438 If you have used the {\bf label} command to label a Volume, it will be
1439 automatically added to the Pool, and you will not need to add any media to the
1442 Alternatively, you may choose to add a number of Volumes to the pool without
1443 labeling them. At a later time when the Volume is requested by {\bf Bacula}
1444 you will need to label it.
1446 Before adding a volume, you must know the following information:
1449 \item The name of the Pool (normally "Default")
1450 \item The Media Type as specified in the Storage Resource in the Director's
1451 configuration file (e.g. "DLT8000")
1452 \item The number and names of the Volumes you wish to create.
1455 For example, to add media to a Pool, you would issue the following commands to
1456 the console program:
1461 Enter name of Pool to add Volumes to: Default
1462 Enter the Media Type: DLT8000
1463 Enter number of Media volumes to create. Max=1000: 10
1464 Enter base volume name: Save
1465 Enter the starting number: 1
1466 10 Volumes created in pool Default
1471 To see what you have added, enter:
1475 *list media pool=Default
1476 +-------+----------+---------+---------+-------+------------------+
1477 | MedId | VolumeNa | MediaTyp| VolStat | Bytes | LastWritten |
1478 +-------+----------+---------+---------+-------+------------------+
1479 | 11 | Save0001 | DLT8000 | Append | 0 | 0000-00-00 00:00 |
1480 | 12 | Save0002 | DLT8000 | Append | 0 | 0000-00-00 00:00 |
1481 | 13 | Save0003 | DLT8000 | Append | 0 | 0000-00-00 00:00 |
1482 | 14 | Save0004 | DLT8000 | Append | 0 | 0000-00-00 00:00 |
1483 | 15 | Save0005 | DLT8000 | Append | 0 | 0000-00-00 00:00 |
1484 | 16 | Save0006 | DLT8000 | Append | 0 | 0000-00-00 00:00 |
1485 | 17 | Save0007 | DLT8000 | Append | 0 | 0000-00-00 00:00 |
1486 | 18 | Save0008 | DLT8000 | Append | 0 | 0000-00-00 00:00 |
1487 | 19 | Save0009 | DLT8000 | Append | 0 | 0000-00-00 00:00 |
1488 | 20 | Save0010 | DLT8000 | Append | 0 | 0000-00-00 00:00 |
1489 +-------+----------+---------+---------+-------+------------------+
1494 Notice that the console program automatically appended a number to the base
1495 Volume name that you specify (Save in this case). If you don't want it to
1496 append a number, you can simply answer 0 (zero) to the question "Enter number
1497 of Media volumes to create. Max=1000:", and in this case, it will create a
1498 single Volume with the exact name you specify.