]> git.sur5r.net Git - bacula/docs/blob - docs/manual-fr/console.tex
Suite de console.tex.
[bacula/docs] / docs / manual-fr / console.tex
1 %%
2 %%
3
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}
11
12 \subsection*{G\'en\'eralit\'es}
13 \index[general]{G\'en\'eralit\'es}
14 \addcontentsline{toc}{subsection}{G\'en\'eralit\'es}
15
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 
18 avec le Director. 
19
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.
24
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.
27
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.
30
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.
34
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}
41
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} 
48 de ce manuel.
49
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}
56
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 :
64
65 \footnotesize
66 \begin{verbatim}
67  <command> <keyword1>[=<argument1>] <keyword2>[=<argument2>] ...
68 \end{verbatim}
69 \normalsize
70
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.
78
79 Par exemple :
80
81 \footnotesize
82 \begin{verbatim}
83 list files jobid=23
84 \end{verbatim}
85 \normalsize
86
87 \'enum\`ere les fichiers sauvegard\'es par le job de JobId 23. 
88
89 Cette autre commande :
90
91 \footnotesize
92 \begin{verbatim}
93 show pools
94 \end{verbatim}
95 \normalsize
96
97 affiche toutes les ressources Pool.
98
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}
105
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}.
111
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.
121
122 \label{keywords}
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 :
131
132 \begin{verbatim}
133 jobid=536
134 \end{verbatim}
135
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 
138 alphab\'etique.
139
140 \begin{description}
141 \item [restart]
142  Permis dans la commande {\it python}, provoque le red\'emarrage de 
143  l'interpr\'eteur Python. Ne prend pas d'arguments.
144 \item [all]
145   Permis dans les commandes {\it status} et {\it show} pour sp\'ecifier, respectivement,  tous les 
146   composants ou toutes les ressources.
147 \item [before]
148   Utilis\'e dans la commande {\it restore}.
149 \item [bootstrap]
150   Utilis\'e dans la commande {\it restore}.
151 \item [catalog]
152   Permis dans la commande {\it use} pour sp\'ecifier le nom de catalogue \`a utiliser. 
153 \item [catalogs]
154   Utilis\'e dans la commande {\it show}. Ne prend pas d'arguments
155 \item [client | fd]
156 \item [clients]
157   Utilis\'e dans les commandes {\it show}, {\it list}, et {\it llist}. ne prend pas d'arguments.
158 \item [counters]
159   Utilis\'e dans la commande {\it show}. Ne prend pas d'arguments.
160 \item [current]
161   Utilis\'e dans la commande {\it restore}. Ne prend pas d'arguments.
162 \item [days]
163 \item [devices]
164   Utilis\'e dans la commande {\it show}. Ne prend pas d'arguments.
165 \item [dir | director]
166 \item [directors]
167   Utilis\'e dans la commande {\it show}. Ne prend pas d'arguments.
168 \item [directory]
169   Utilis\'e dans la commande {\it restore}.
170 \item [done]
171   Utilis\'e dans la commande {\it restore}. Ne prend pas d'arguments.
172 \item [file]
173   Utilis\'e dans la commande {\it restore}.
174 \item [files]
175   Utilis\'e dans les commandes {\it list}, et {\it llist}. ne prend pas d'arguments.
176 \item [fileset]
177 \item [filesets]
178  Utilis\'e dans la commande {\it show}. Ne prend pas d'arguments.
179 \item [help]
180  Utilis\'e dans la commande {\it show}. Ne prend pas d'arguments.
181 \item [jobs]
182   Utilis\'e dans les commandes {\it show}, {\it list} et {\it llist}. Ne prend pas d'arguments.
183 \item [jobmedia]
184   Utilis\'e dans les commandes {\it list}, et {\it llist}. ne prend pas d'arguments.
185 \item [jobtotals]
186   Utilis\'e dans les commandes {\it list}, et {\it llist}. ne prend pas d'arguments.
187 \item [jobid]
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.
198 \item [level]
199 \item [listing]
200   Permis dans la commande {\it estimate}. Ne prend pas d'arguments.
201 \item [limit]
202 \item [messages]
203   Utilis\'e dans la commande {\it show}. Ne prend pas d'arguments.
204 \item [media]
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.
208 \item [on]
209   Ne prend pas d'arguments.
210 \item [off]
211   Ne prend pas d'arguments.
212 \item [pool]
213 \item [pools]
214   Utilis\'e dans les commandes, {\it show}, {\it list}, et {\it llist}. ne prend pas d'arguments.
215 \item [select]
216   Utilis\'e dans la commande {\it restore}. Ne prend pas d'arguments.
217 \item [storages]
218   Utilis\'e dans la commande {\it show}. Ne prend pas d'arguments.
219 \item [schedules]
220   Utilis\'e dans la commande {\it show}. Ne prend pas d'arguments.
221 \item [sd | store | storage]
222 \item [ujobid]
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.
228 \item [volume]
229 \item [volumes]
230   Utilis\'e dans les commandes {\it list}, et {\it llist}. ne prend pas d'arguments.
231 \item [where]
232   Utilis\'e dans la commande {\it restore}. Ne prend pas d'arguments.
233 \item [yes]
234   Utilis\'e dans la commande {\it restore}. Ne prend pas d'arguments.
235 \end{description}
236
237 \label{list}
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}
244
245 Les commandes suivantes sont actuellement impl\'ement\'ees :
246
247 \begin{description}
248 \item [{add [pool=\lt{}pool-name\gt{} storage=\lt{}storage\gt{}
249    jobid=\lt{}JobId\gt{}]} ]
250    \index[console]{add}
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.
263
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).
273
274   Lorsque l'affichage automatique est d\'esactiv\'e, vous devez explicitement 
275   en demander l'affichage avec la commande {\bf messages}.
276
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.
284
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. 
291
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.
295
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.
309    
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.
315
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.
325    
326    Voici la forme compl\`ete de cette commande :
327
328 delete pool=\lt{}pool-name\gt{}
329    
330    supprime un pool du catalogue.
331
332 delete volume=\lt{}volume-name\gt{} pool=\lt{}pool-name\gt{} 
333
334    supprime du catalogue un volume du pool sp\'ecifi\'e.
335
336 delete JobId=\lt{}job-id\gt{} JobId=\lt{}job-id2\gt{} ... 
337
338   supprime du catalogue le job sp\'ecifi\'e.
339
340 delete Job JobId=n,m,o-r,t ...  
341   
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 
344    de jobids.
345
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 
354   est enabled).
355
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
364   est enabled).
365
366 \label{estimate}
367 \item [estimate]
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.
383
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 :
388
389
390 estimate job=\lt{}job-name\gt{} listing client=\lt{}client-name\gt{} 
391 fileset=\lt{}fileset-name\gt{} level=\lt{}level-name\gt{}  
392
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.
396
397     Par exemple, vous pourriez faire ceci : 
398
399 \footnotesize
400 \begin{verbatim}
401      @output /tmp/listing
402      estimate job=NightlySave listing level=Incremental
403      @output
404 \end{verbatim}
405 \normalsize
406
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}.
410
411 \item [help]
412    \index[console]{help}
413    Cette commande affiche la liste des commandes disponibles.
414
415 \item [label]
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 :
421
422 label storage=\lt{}storage-name\gt{} volume=\lt{}volume-name\gt{}
423 slot=\lt{}slot\gt{}  
424
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.
432
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.
438
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 :
443
444 \footnotesize
445 \begin{verbatim}
446        mt rewind
447        mt weof
448        
449 \end{verbatim}
450 \normalsize
451
452 La commande label peut \'echouer pour plusieurs raisons :
453
454
455 \begin{enumerate}
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.
464 \end{enumerate}
465
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 :
470
471 \footnotesize
472 \begin{verbatim}
473        mt -f /dev/st0 rewind
474        mt -f /dev/st0 weof
475 \end{verbatim}
476 \normalsize
477
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 
480 catalogue.
481
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}).
484
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 :
495
496 \footnotesize
497 \begin{verbatim}
498         Pool {
499           Name ...
500           Cleaning Prefix = "CLN"
501        }
502         
503 \end{verbatim}
504 \normalsize
505
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 :
509
510 \footnotesize
511 \begin{verbatim}
512 update storage=xxx pool=yyy slots=1-5,10 barcodes
513 \end{verbatim}
514 \normalsize
515
516 \item [list]
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 : 
521    
522 \footnotesize
523 \begin{verbatim}
524    list jobs
525    
526    list jobid=<id>           (affiche le jobid id)
527
528    list ujobid=<unique job name> (affiche le job dont le nom unique est <unique job name>)
529    
530    list job=<job-name>   (Affiche tous les jobs dont le nom est "job-name")
531
532    list jobname=<job-name>  (voir ci-dessus)
533
534      Dans cette commande, vous pouvez ajouter "limit=nn" pour limiter la sortie \`a nn jobs. 
535    
536    list jobmedia
537    
538    list jobmedia jobid=<id>
539    
540    list jobmedia job=<job-name>
541    
542    list files jobid=<id>
543    
544    list files job=<job-name>
545    
546    list pools
547    
548    list clients
549    
550    list jobtotals
551    
552    list volumes
553    
554    list volumes jobid=<id>
555    
556    list volumes pool=<pool-name>
557    
558    list volumes job=<job-name>
559    
560    list volume=<volume-name>  
561
562    list nextvolume job=<job-name>
563    
564    list nextvol job=<job-name>
565
566    list nextvol job=<job-name> days=nnn
567
568
569
570 \end{verbatim}
571 \normalsize
572
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.
576
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}.
591
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 
598    catalogue.
599    
600    Voici un exemple d'affichage produit par la commande {\bf list pools} :
601
602 \footnotesize
603 \begin{verbatim}
604 +------+---------+---------+---------+----------+-------------+
605 | PoId | Name    | NumVols | MaxVols | PoolType | LabelFormat |
606 +------+---------+---------+---------+----------+-------------+
607 |    1 | Default |       0 |       0 | Backup   | *           |
608 |    2 | Recycle |       0 |       8 | Backup   | File        |
609 +------+---------+---------+---------+----------+-------------+
610 \end{verbatim}
611 \normalsize
612
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, 
617    des jobs, etc.
618
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. 
625
626    Si vous voulez visualiser les ressources Client disponibles dans votre 
627    catalogue, utilisez la commande {\bf show clients}.
628
629 \item [llist]
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.
636    
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 :
639
640 \footnotesize
641 \begin{verbatim}
642           PoolId: 1
643             Name: Default
644          NumVols: 0
645          MaxVols: 0
646          UseOnce: 0
647       UseCatalog: 1
648  AcceptAnyVolume: 1
649     VolRetention: 1,296,000
650   VolUseDuration: 86,400
651       MaxVolJobs: 0
652      MaxVolBytes: 0
653        AutoPrune: 0
654          Recycle: 1
655         PoolType: Backup
656      LabelFormat: *
657
658           PoolId: 2
659             Name: Recycle
660          NumVols: 0
661          MaxVols: 8
662          UseOnce: 0
663       UseCatalog: 1
664  AcceptAnyVolume: 1
665     VolRetention: 3,600
666   VolUseDuration: 3,600
667       MaxVolJobs: 1
668      MaxVolBytes: 0
669        AutoPrune: 0
670          Recycle: 1
671         PoolType: Backup
672      LabelFormat: File
673       
674 \end{verbatim}
675 \normalsize
676
677 \item [messages]
678    \index[console]{messages}
679    Cette commande affiche imm\'ediatement tout message de la console en attente.
680  
681
682 \item [mount]
683    \index[console]{mount}
684   
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 :
694
695 mount  storage=\lt{}storage-name\gt{}
696
697 mount [ jobid=\lt{}id\gt{} |  job=\lt{}job-name\gt{} ]
698
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}) 
702    dans la Console.
703
704 \item[python]
705    \index[console]{python}
706     La commande {\bf python} n'admet qu'un argument : {\bf restart}.
707     
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}.
715    
716 \label{ManualPruning}
717 \item [prune]
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.
726
727 prune files|jobs|volume client=\lt{}client-name\gt{} 
728 volume=\lt{}volume-name\gt{}  
729
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.
732    
733 \item [purge]
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} :
742    
743 purge files jobid=\lt{}jobid\gt{}|job=\lt{}job-name\gt{}|client=\lt{}client-name\gt{} 
744
745 purge jobs client=\lt{}client-name\gt{} (of all jobs)
746
747 purge volume|volume=\lt{}vol-name\gt{} (of all jobs)
748
749
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.
752
753 \item [relabel]
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 :
758
759 relabel storage=\lt{}storage-name\gt{} oldvolume=\lt{}old-volume-name\gt{}  
760     volume=\lt{}newvolume-name\gt{} 
761  
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.
768
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.
771
772 \item [release]
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 
776    de la cartouche.
777
778 release storage=\lt{}storage-name\gt{}  
779
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.
789
790 \item [reload]
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. 
807
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.
813
814 \label{restore_command}
815 \item [restore]
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.
824
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  
828
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
835    manual.
836
837 \item [run]
838    \index[console]{run}
839    This command allows you to schedule jobs  to be run immediately. The full form
840    of the command is:
841
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  
846
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
851    the scheduler.
852
853    On my system, when I enter a run command, I get the following  prompt:  
854
855 \footnotesize
856 \begin{verbatim}
857 A job name must be specified.
858 The defined Job resources are:
859      1: Matou
860      2: Polymatou
861      3: Rufus
862      4: Minimatou
863      5: Minou
864      6: PmatouVerify
865      7: MatouVerify
866      8: RufusVerify
867      9: Watchdog
868 Select Job resource (1-9):
869      
870 \end{verbatim}
871 \normalsize
872
873 If I then select number 5, I am prompted with:  
874
875 \footnotesize
876 \begin{verbatim}
877 Run Backup job
878 JobName:  Minou
879 FileSet:  Minou Full Set
880 Level:    Incremental
881 Client:   Minou
882 Storage:  DLTDrive
883 Pool:     Default
884 When:     2003-04-23 17:08:18
885 OK to run? (yes/mod/no):
886      
887 \end{verbatim}
888 \normalsize
889
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.  
892
893 \footnotesize
894 \begin{verbatim}
895 Parameters to modify:
896      1: Level
897      2: Storage
898      3: Job
899      4: FileSet
900      5: Client
901      6: When
902      7: Pool
903 Select parameter to modify (1-7):
904      
905 \end{verbatim}
906 \normalsize
907
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.  
911
912 \item [setdebug]
913    \index[console]{setdebug}
914    \index[dir]{setdebug}
915    \index[dir]{debugging}
916    \index[dir]{debugging Win32}
917    \index[dir]{Windows!debugging}
918
919    This command is used to set the debug level in each  daemon. The form of this
920    command is:
921
922 setdebug level=nn [trace=0/1 client=\lt{}client-name\gt{} | dir | director |
923   storage=\lt{}storage-name\gt{} | all]  
924
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
932    you are done.
933
934 \item [show]
935    \index[console]{show}
936    \index[dir]{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.
945
946 \item [sqlquery]
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.
955
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.
960
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.
965
966 \item [status]
967    \index[dir]{status}
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:
971
972 status [all | dir=\lt{}dir-name\gt{} | director | 
973   client=\lt{}client-name\gt{} | storage=\lt{}storage-name\gt{} |
974   days=nnn]
975
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.
986
987    In the Running Jobs listing, you may find the following types of
988    information:
989
990
991 \footnotesize
992 \begin{verbatim}
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
998 \end{verbatim}
999 \normalsize
1000
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"
1008
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
1017    period specified.
1018
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:
1024 \footnotesize
1025 \begin{verbatim}
1026 status storage=File
1027 Connecting to Storage daemon File at 192.168.68.112:8103
1028
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.
1031
1032 Running Jobs:
1033 No Jobs running.
1034 ====
1035
1036 Jobs waiting to reserve a drive:
1037 ====
1038
1039 Terminated Jobs:
1040  JobId  Level   Files          Bytes Status   Finished        Name 
1041 ======================================================================
1042     59  Full        234      4,417,599 OK       15-Jan-06 11:54 kernsave
1043 ====
1044
1045 Device status:
1046 utochanger "DDS-4-changer" with devices:
1047    "DDS-4" (/dev/nst0)
1048 Device "DDS-4" (/dev/nst0) is mounted with Volume="TestVolume002"
1049 Pool="*unknown*"
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.
1055
1056 Device "DVD-Writer" (/dev/hdc) is not open.
1057 Device "File" (/tmp) is not open.
1058 ====
1059
1060 In Use Volume status:
1061 ====
1062 \end{verbatim}
1063 \normalsize
1064
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:
1070
1071 \footnotesize
1072 \begin{verbatim}
1073 status storage=File
1074 ...
1075 Device status:
1076 Autochanger "DDS-4-changer" with devices:
1077    "DDS-4" (/dev/nst0)
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.
1083
1084 Device "DVD-Writer" (/dev/hdc) is not open.
1085 Device "File" (/tmp) is not open.
1086     Device is BLOCKED waiting for media.
1087 ====
1088 ...
1089 \end{verbatim}
1090 \normalsize
1091
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.
1097
1098 \item [unmount]
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:
1102 \footnotesize
1103 \begin{verbatim}
1104 unmount storage=<storage-name>
1105
1106 unmount [ jobid=<id> | job=<job-name> ]
1107 \end{verbatim}
1108 \normalsize
1109
1110 \label{UpdateCommand}
1111 \item [update]
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:  
1119 \footnotesize
1120 \begin{verbatim}
1121    media, volume, pool, slots  
1122 \end{verbatim}
1123 \normalsize
1124
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:  
1127
1128 \footnotesize
1129 \begin{verbatim}
1130  
1131    Volume Status
1132    Volume Retention Period
1133    Volume Use Duration
1134    Maximum Volume Jobs
1135    Maximum Volume Files
1136    Maximum Volume Bytes
1137    Recycle Flag
1138    Slot
1139    InChanger Flag
1140    Pool
1141    Volume Files
1142    Volume from Pool
1143    All Volumes from Pool
1144    
1145 \end{verbatim}
1146 \normalsize
1147
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
1158    autochanger.
1159
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.
1164
1165    For Pool {\bf update pool}, Bacula will move the Volume record from its
1166    existing pool to the pool specified.
1167
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.
1171
1172    The full form of the update command with all command line arguments is:
1173
1174 \footnotesize
1175 \begin{verbatim}
1176        update volume=xxx pool=yyy slots volstatus=xxx VolRetention=ddd
1177          VolUse=ddd MaxVolJobs=nnn MaxVolBytes=nnn Recycle=yes|no
1178          slot=nnn
1179       
1180 \end{verbatim}
1181 \normalsize
1182
1183 \item [use]
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.  
1189
1190 use \lt{}database-name\gt{} 
1191
1192 \item [var]
1193    \label{var}
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.  
1202
1203 \item [version]
1204    \index[console]{version}
1205    The command prints the Director's version.  
1206
1207 \item [quit]
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).  
1214
1215 \item [query]
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.  
1222
1223 The following queries are currently available (version 1.24):  
1224
1225 \footnotesize
1226 \begin{verbatim}
1227 Available queries:
1228   1: List Job totals:
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):
1238       
1239 \end{verbatim}
1240 \normalsize
1241
1242 \item [exit]
1243    \index[console]{exit}
1244    This command terminates the console program.  
1245
1246 \item [wait]
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 
1251 before continuing. 
1252 \end{description}
1253
1254 \label{dotcommands}
1255
1256 \subsection*{Special dot Commands}
1257 \index[general]{Commands!Special dot}
1258 \index[general]{Special dot Commands}
1259 \addcontentsline{toc}{subsection}{Special dot Commands}
1260
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: 
1266
1267 \footnotesize
1268 \begin{verbatim}
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
1283 .quit                 quit
1284 .status               get status output
1285 .exit                 quit
1286 \end{verbatim}
1287 \normalsize
1288
1289 \label{atcommands}
1290
1291 \subsection*{Special At (@) Commands}
1292 \index[general]{Commands!Special At @}
1293 \index[general]{Special At (@) Commands}
1294 \addcontentsline{toc}{subsection}{Special At (@) Commands}
1295
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: 
1302
1303 \begin{description}
1304
1305 \item [@input \lt{}filename\gt{}]
1306    \index[console]{@input \lt{}filename\gt{}}
1307    Read and execute the commands  contained in the file specified.  
1308
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:  
1316
1317 \footnotesize
1318 \begin{verbatim}
1319     @output /dev/null
1320     commands ...
1321     @output
1322     
1323 \end{verbatim}
1324 \normalsize
1325
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.  
1330
1331 \item [@sleep \lt{}seconds\gt{}]
1332    \index[console]{@sleep \lt{}seconds\gt{}}
1333    Sleep the specified number of seconds.  
1334
1335 \item [@time]
1336    \index[console]{@time}
1337    Print the current time and date.  
1338
1339 \item [@version]
1340    \index[console]{@version}
1341    Print the console's version.  
1342
1343 \item [@quit]
1344    \index[console]{@quit}
1345    quit  
1346
1347 \item [@exit]
1348    \index[console]{@exit}
1349    quit  
1350
1351 \item [@\# anything]
1352    \index[console]{anything}
1353    Comment 
1354 \end{description}
1355
1356 \label{scripting}
1357
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
1362 Script}
1363
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
1366 commands: 
1367
1368 \footnotesize
1369 \begin{verbatim}
1370  ./bconsole -c ./bconsole.conf <<END_OF_DATA
1371  unmount storage=DDS-4
1372  quit
1373  END_OF_DATA
1374 \end{verbatim}
1375 \normalsize
1376
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. 
1380
1381 It is also possible to run the Console program from file input where the file
1382 contains the commands as follows: 
1383
1384 \footnotesize
1385 \begin{verbatim}
1386 ./bconsole -c ./bconsole.conf <filename
1387 \end{verbatim}
1388 \normalsize
1389
1390 where the file named {\bf filename} contains any set of console commands. 
1391
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
1394 of the files saved. 
1395
1396 \footnotesize
1397 \begin{verbatim}
1398 bin/bconsole -c bin/bconsole.conf <<END_OF_DATA
1399 @output /dev/null
1400 messages
1401 @output /tmp/log1.out
1402 label volume=TestVolume001
1403 run job=Client1 yes
1404 wait
1405 messages
1406 @#
1407 @# now do a restore
1408 @#
1409 @output /tmp/log2.out
1410 restore current all
1411 yes
1412 wait
1413 messages
1414 @output
1415 quit
1416 END_OF_DATA
1417 \end{verbatim}
1418 \normalsize
1419
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: 
1423
1424 \footnotesize
1425 \begin{verbatim}
1426 grep "^Termination: *Backup OK" /tmp/log1.out
1427 backupstat=$?
1428 grep "^Termination: *Restore OK" /tmp/log2.out
1429 restorestat=$?
1430 \end{verbatim}
1431 \normalsize
1432
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}
1437
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
1440 pool. 
1441
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. 
1445
1446 Before adding a volume, you must know the following information: 
1447
1448 \begin{enumerate}
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. 
1453 \end{enumerate}
1454
1455 For example, to add media to a Pool, you would issue the following commands to
1456 the console program: 
1457
1458 \footnotesize
1459 \begin{verbatim}
1460 *add
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
1467 *
1468 \end{verbatim}
1469 \normalsize
1470
1471 To see what you have added, enter: 
1472
1473 \footnotesize
1474 \begin{verbatim}
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 +-------+----------+---------+---------+-------+------------------+
1490 *
1491 \end{verbatim}
1492 \normalsize
1493
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.