]> git.sur5r.net Git - bacula/docs/blob - docs/manual-fr/dirdconf.tex
suite de dirdconf.tex
[bacula/docs] / docs / manual-fr / dirdconf.tex
1 %%
2 %%
3
4 \section*{Configurer le Director}
5 \label{_ChapterStart40}
6 \index[general]{Director!Configurer le }
7 \index[general]{Configurer le Director }
8 \addcontentsline{toc}{section}{Configurer le Director}
9
10 Parmi tous les fichiers de configuration requis pour ex\'ecuter {\bf Bacula},
11 celui du Director est le plus compliqu\'e, et c'est celui que vous modifierez
12 le plus souvent, en ajoutant des clients ou en modifiant les FileSets. 
13
14 Pour une discussion g\'en\'erale concernant les fichiers et ressources ainsi
15 que les types de donn\'ees reconnus par {\bf Bacula}, veuillez consulter le
16 chapitre 
17 \ilink{Configuration}{_ChapterStart16} de ce manuel. 
18
19 \subsection*{Les types de ressources du Director}
20 \index[general]{Les types de ressources du Director }
21 \index[general]{Director!Les types de ressources du }
22 \addcontentsline{toc}{subsection}{Les types de ressources du Director}
23
24 Les types de ressources du Director sont : 
25
26 Job, JobDefs, Client, Storage, Catalog, Schedule, FileSet, Pool, Director, et
27 Messages. Nous les pr\'esentons ici dans l'ordre le plus logique (relativement
28 au fichier de configuration du Director) : 
29
30 \begin{itemize}
31 \item 
32    \ilink{Director}{DirectorResource4} -- Pour d\'efinir le nom du
33    Director et son  mot de passe pour l'authentification du programme Console. Il
34 ne doit y avoir qu'une seule  d\'efinition de ressource Director dans le
35 fichier de configuration.  Si vous avez soit {\bf /dev/random} soit {\bf bc}
36 sur votre machine, Bacula g\'en\`erera  un mot de passe al\'eatoire lors du
37 processus de configuration, sinon, il sera laiss\'e blanc. 
38 \item 
39    \ilink{Job}{JobResource} -- Pour d\'efinir les Jobs de types
40    sauvegarde et restauration,  et pour lier les ressources Client, FileSet et
41 Schedules \`a utiliser conjointement pour chaque Job. 
42 \item 
43    \ilink{JobDefs}{JobDefsResource} -- Ressource optionnelle destin\'ee \`a
44    fournir des valeurs par d\'efaut  pour les ressources Job. 
45 \item 
46    \ilink{Schedule}{ScheduleResource} -- Pour d\'efinir le moment
47    o\`u un Job doit \^etre lanc\'e  automatiquement par le {\it scheduler}
48 interne de Bacula. 
49 \item 
50    \ilink{FileSet}{FileSetResource} -- Pour d\'efinir l'ensemble des
51    fichiers \`a sauvegarder  pour chaque client. 
52 \item 
53    \ilink{Client}{ClientResource2} -- Pour d\'efinir quel Client est
54    \`a sauvegarder. 
55 \item 
56    \ilink{Storage}{StorageResource2} -- Pour d\'efinir sur quel
57    p\'eriph\'erique physique les  volumes seront mont\'es.  
58 \item 
59    \ilink{Pool}{PoolResource} -- Pour d\'efinir quel pool de volumes
60    peut \^etre  utilis\'e pour un Job donn\'e 
61 \item 
62    \ilink{Catalog}{CatalogResource} -- Pour d\'efinir la base de
63    donn\'ees o\`u conserver les listes  des fichiers sauvegard\'es et des volumes
64 o\`u ils ont \'et\'e sauvegard\'es.  
65 \item 
66    \ilink{Messages}{_ChapterStart15} -- Pour d\'efinir les
67    destinataires (ou les fichiers de logs) des messages d'erreur et 
68 d'information.  
69 \end{itemize}
70  
71 \subsection*{La ressource Director}
72 \label{DirectorResource4}
73 \index[general]{Director!La ressource }
74 \index[general]{La ressource Director }
75 \addcontentsline{toc}{subsection}{La ressource Director}
76
77 La ressource Director d\'efinit les attributs du Director ex\'ecut\'e sur le
78 r\'eseau. Dans l'impl\'ementation actuelle, il n'y a qu'une ressource
79 Director, mais la r\'ealisation finale contiendra plusieurs Directors pour
80 maintenir la redondance de la base des indexes et m\'edia. 
81
82 \begin{description}
83
84 \item [Director]
85    \index[dir]{Director }
86    D\'ebut de la ressource Director. Une ressource Director et une seule doit
87 \^etre d\'efinie. 
88  
89 \item [Name = \lt{}nom\gt{}]
90    \index[dir]{Name  }
91    Le nom du Director utilis\'e par l'administrateur syst\`eme. Cette directive
92 est requise  
93   
94 \item [Description = \lt{ }texte\gt{}]
95    \index[dir]{Description  }
96    Le champ texte contient une description du Director qui sera affich\'ee  dans
97 l'interface graphique. Cette directive est optionnelle.  
98  
99 \item [Password = \lt{}UA-password\gt{}]
100    \index[dir]{Password  }
101    Sp\'ecifie le mot de passe qui doit \^etre fourni par la Console Bacula par
102 d\'efaut  pour \^etre autoris\'ee. Le m\^eme mot de passe doit appara{\^\i}tre
103 dans la ressource {\bf Director} du fichier de  configuration de la console.
104 Pour plus de s\'ecurit\'e, le mot de passe ne transite jamais sur le r\'eseau,
105 l'authentification se fait via un \'echange de type {\it challenge-response}
106 d'un {\it hash code} cr\'e\'e avec le mot  de passe. Cette directive est
107 requise. Si vous disposez de {\bf /dev/random} ou {\bf bc} sur votre machine,
108 Bacula  g\'en\`erera un mot de passe al\'eatoire lors du processus
109 d'installation, sinon il sera laiss\'e blanc et vous devrez en d\'efinir  un
110 manuellement.  
111  
112 \item [Messages = \lt{}Nom-de-ressource-Messages\gt{}]
113    \index[console]{Messages  }
114    La ressource {\bf messages} sp\'ecifie o\`u doivent \^etre d\'elivr\'es les messages du Director 
115  qui ne sont pas associ\'es \`a un job sp\'ecifique. La plupart des messages sont relatifs
116  \`a un job et seront dirig\'es vers la ressource {\bf messages} sp\'ecifi\'ee par le job. 
117  Cependant, quelques messages peuvent \^etre g\'en\'er\'es lorsque aucun job n'est actif. 
118  Cette directive est requise.
119
120 \item [Working Directory = \lt{}R\'epertoire\gt{}]
121    \index[console]{Working Directory  }
122 Cette directive sp\'ecifie un r\'epertoire o\`u le Director peut d\'eposer ses fichiers 
123 d'\'etats. Ce r\'epertoire ne devrait \^etre utilis\'e que par Bacula, mais il peut \^etre 
124 partag\'e par d'autres {\it daemons} Bacula. Les substitutions shell standard sont 
125 effectu\'ees \`a la lecture du fichier de configuration, de sorte que des valeurs 
126 telles que {\bf \$HOME} seront correctement substitu\'ees. Cette directive est 
127 requise.
128  
129 \item [Pid Directory = \lt{}R\'epertoire\gt{}]
130    \index[fd]{Pid Directory  }
131     Cette directive sp\'ecifie un r\'epertoire o\`u le Director peut d\'eposer son fichier
132 d'Id de processus. Ce fichier est utilis\'e pour stopper Bacula et pr\'evenir l'ex\'ecution 
133 simultan\'ee de plusieurs copies de Bacula. Les substitutions shell standard sont
134 effectu\'ees \`a la lecture du fichier de configuration, de sorte que des valeurs
135 telles que {\bf \$HOME} seront correctement substitu\'ees.
136
137 Typiquement, sur les syst\`emes Linux, vous utiliserez ici {\bf /var/run}. Si vous 
138 n'installez pas Bacula dans les r\'epertoires syst\`eme, vous pouvez utiliser le 
139 r\'epertoire de travail {\bf Working Directory} d\'efini plus haut.
140 Cette directive est requise.
141  
142 \item [QueryFile = \lt{}Chemin\gt{}]
143    \index[dir]{QueryFile  }
144     Cette directive sp\'ecifie un r\'epertoire et un fichier dans lequel le 
145 Director peut trouver les requ\^etes SQL pr\'e\'etablies pour la commande 
146 {\bf Query} de la Console. Les substitutions shell standard sont
147 effectu\'ees \`a la lecture du fichier de configuration, de sorte que des valeurs
148 telles que {\bf \$HOME} seront correctement substitu\'ees. 
149 Cette directive est requise.
150
151 \label{DirMaxConJobs}
152
153 \item [Maximum Concurrent Jobs = \lt{}nombre\gt{}]
154    \index[fd]{Maximum Concurrent Jobs  }
155    O\`u \lt{}nombre\gt{} est le nombre maximal de jobs qui peuvent \^etre ex\'ecut\'es 
156 simultan\'ement par le Director. La valeur par d\'efaut est 1, mais vous pouvez utiliser 
157 une valeur plus grande.
158 Notez que le format des volumes devient beaucoup plus compliqu\'e avec plusieurs jobs 
159 ex\'ecut\'es simultan\'ement. De ce fait, les restaurations peuvent prendre beaucoup plus 
160 de temps si Bacula doit faire le tri parmi les segments entrem\'el\'es de ces jobs. Ceci 
161 peut \^etre \'evit\'e en s'arrangeant pour que chacun des jobs ex\'ecut\'es simultan\'ement 
162 \'ecrive sur un volume distinct. Une autre possibilit\'e consiste \`a utiliser le 
163 {\it data spooling} : les donn\'ees seront d'abord "spool\'ees" sur disque 
164 simultan\'ement, ensuite les fichiers "spool" seront \'ecrits s\'equentiellement 
165 sur le volume.   
166
167 Dans certains cas, des directives telles que {\bf Maximum Volume Jobs} ne sont pas 
168 correctement synchronis\'ees avec le nombre de jobs simultan\'es, et des probl\`emes 
169 de synchronisation subtils peuvent survenir, aussi des tests minutieux sont recommand\'es.
170
171 Actuellement, il n'y a aucun param\`etre de configuration pour r\'egler ou limiter 
172 le nombre de connections par console. Un maximum de cinq connection simultan\'ees 
173 est autoris\'e.
174
175 Pour plus de d\'etails concernant l'ex\'ecution simultan\'ee de plusieurs jobs, consultez la 
176 partie \ilink{Ex\'ecution simultan\'ee de plusieurs jobs}{ConcurrentJobs} du chapitre Astuces de ce manuel.
177
178
179 \item [FD Connect Timeout = \lt{}dur\'ee\gt{}]
180    \index[console]{FD Connect Timeout  }
181    O\`u {\bf dur\'ee} est le d\'elai durant lequel le Director tente de contacter 
182 le File Daemon pour d\'emarrer un job. Une fois ce d\'elai \'ecoul\'e, le Director supprimera le job.
183 La valeur par d\'efaut est 30 minutes.
184    
185 \item [SD Connect Timeout = \lt{}dur\'ee\gt{}]
186    \index[console]{SD Connect Timeout  }
187    O\`u {\bf dur\'ee} est le d\'elai durant lequel le Director tente de contacter 
188 le Storage Daemon pour d\'emarrer un job. Une fois ce d\'elai \'ecoul\'e, le Director supprimera le job.
189 La valeur par d\'efaut est 30 minutes.
190
191 \item [DirAddresses = \lt{}Sp\'ecification-adresses-IP\gt{}]
192    \index[console]{DirAddresses  }
193    Sp\'ecifie les ports et adresses sur lesquels le Director se met en attente de 
194 connections de Consoles Bacula. La meilleure explication est sans doute un exemple :
195
196 \footnotesize
197 \begin{verbatim}
198  DirAddresses  = { ip = {
199         addr = 1.2.3.4; port = 1205; }
200     ipv4 = {
201         addr = 1.2.3.4; port = http; }
202     ipv6 = {
203         addr = 1.2.3.4;
204         port = 1205;
205     }
206     ip = {
207         addr = 1.2.3.4
208         port = 1205
209     }
210     ip = {
211         addr = 1.2.3.4
212     }
213     ip = {
214         addr = 201:220:222::2
215     }
216     ip = {
217         addr = bluedot.thun.net
218     }
219  }
220 \end{verbatim}
221 \normalsize
222
223 o\`u "ip", "ip4", "ip6", "addr", et "port sont les mots clef. Notez que 
224 les adresses peuvent \^etre sp\'ecifi\'ees sous forme de quadruplets point\'es, ou 
225 suivant la notation \`a doubles points IPv6, ou encore sous forme de nom symbolique 
226 (seulement pour la sp\'ecification ip). D'autre part, le port peut \^etre sp\'ecifi\'e 
227 par un nombre, ou par une valeur mn\'emonique du fichier /etc/services. Si un port 
228 n'est pas pr\'ecis\'e, celui par d\'efaut sera utilis\'e. Si une section ip est sp\'ecifi\'ee, 
229 la r\'esolution peut \^etre faite soit par IPv4, soit par IPv6. Si ip4 est sp\'ecifi\'e, 
230 seules les r\'esolutions IPv4 seront permises. Il en va de m\^eme avec ip6.
231
232 \item [DIRport = \lt{}num\'ero-de-port\gt{}]
233    \index[console]{DIRport  }
234    Sp\'ecifie le port (un entier positif) sur lequel le Director est \`a l'\'ecoute 
235 de connections de Consoles Bacula. Ce m\^eme num\'ero de port doit \^etre sp\'ecifi\'e 
236 dans la ressource Director du fichier de configuration de la console. La 
237 valeur par d\'efaut est 9101, aussi, il n'est en principe pas n\'ecessaire 
238 de renseigner cette directive. Elle n'est pas requise si vous sp\'ecifiez des 
239 DirAdresses.
240
241 \item [DirAddress = \lt{}Adresse-IP\gt{}]
242    \index[console]{DirAddress  }
243    Cette directive est optionnelle. Lorsqu'elle est sp\'ecifi\'ee, le Director n'accepte 
244 de connections Console que de l'adresse sp\'ecifi\'ee {\bf Adresse-IP}, qui peut \^etre 
245 soit un nom de domaine, soit une adresse IP au format quadruplet point\'e ou chaîne quot\'ee.  
246 Si cette directive n'est pas sp\'ecifi\'ee, le Director acceptera des connections de Console 
247 de toute adresse valide. Notez que contrairement \`a la sp\'ecification DirAdresses d\'ecrite 
248 plus haut, cette directive ne permet de sp\'ecifier qu'une seule adresse. Cette directive 
249 n'est pas requise si vous utilisez la directive DirAdresses.
250
251 \end{description}
252
253 Voici un exemple d'une ressource Director valide :
254
255 \footnotesize
256 \begin{verbatim}
257 Director {
258   Name = HeadMan
259   WorkingDirectory = "$HOME/bacula/bin/working"
260   Password = UA_password
261   PidDirectory = "$HOME/bacula/bin/working"
262   QueryFile = "$HOME/bacula/bin/query.sql"
263   Messages = Standard
264 }
265 \end{verbatim}
266 \normalsize
267
268 \subsection*{La ressource Job}
269 \label{JobResource}
270 \index[general]{Resource!Job }
271 \index[general]{Job Resource }
272 \addcontentsline{toc}{subsection}{Job Resource}
273
274 La ressource Job d\'efinit un Job (sauvegarde, restauration,...) que Bacula doit 
275 ex\'ecuter. Chaque d\'efinition de ressource Job contient le nom d'un client, la 
276 liste des \'el\'ements \`a sauvegarder (FileSet), la planification (Schedule) pour 
277 ce Job, le lieu o\`u sauvegarder ces donn\'ees (Storage Device) et quel groupe de 
278 media utiliser (Pool). En effet, chaque ressource Job doit r\'epondre aux questions : 
279 "Quoi ?", "O\`u ?", "Quand ?" et "Comment ?" soit, respectivement Fileset, Storage, 
280 Schedule, Type et Niveau (Sauvegarde/Restauration - Full/Differentielle/Incr\'ementale).
281
282 Un seul type ({\bf Backup}, {\bf Restore}, ...) peut \^etre sp\'ecifi\'e pour un Job donn\'e. 
283 Si vous voulez sauvegarder plusieurs FileSets sur le m\^eme client, vous devez d\'efinir un 
284 Job pour chacun d'entre eux.
285
286 \begin{description}
287
288 \item [Job]
289    \index[console]{Job }
290    D\'ebut de la ressource Job. Il faut d\'efinir au moins une ressource Job.
291
292 \item [Name = \lt{}name\gt{}]
293    \index[console]{Name  }
294    Le nom du Job. Ce nom peut \^etre utilis\'e avec la commande {\bf Run} du 
295    programme Console pour lancer un Job. Si le nom contient des espaces, 
296    il doit \^etre plac\'e entre quotes. C'est g\'en\'eralement une bonne id\'ee de 
297    nommer vos Jobs du nom du Client qu'ils sauvegardent, afin de les 
298    identifier ais\'ement.
299
300    Lors de l'ex\'ecution d'un Job, son nom unique est compos\'e du nom que vous avez 
301    sp\'ecifi\'e ici suffix\'e avec la date et l'heure de sa planification.
302    Cette directive est requise.
303
304 \item [Type = \lt{}job-type\gt{}]
305    \index[console]{Type  }
306    La directive {\bf Type} sp\'ecifie le type de Job, qui peut \^etre l'un des 
307    suivants : {\bf Backup},  {\bf Restore}, {\bf Verify}, ou {\bf Admin}. 
308    Cette directive est requise. Pour chaque type de Job, il existe diff\'erents 
309    niveaux, qui seront d\'ecrits dans les prochains paragraphes.
310
311 \begin{description}
312
313 \item [Backup]
314    \index[console]{Backup }
315    D\'efinit une sauvegarde. En principe, vous aurez au moins un job de type Backup 
316    par client sauvegard\'e. A moins que vous ne d\'esactiviez le catalogue, la 
317    plupart des donn\'ees et statistiques concernant les fichiers sauvegard\'ees 
318    seront \'ecrites dans le catalogue.
319
320 \item [Restore]
321    \index[console]{Restore }
322   D\'efinit une restauration. En principe, vous ne cr\'eerez qu'un seul job de ce 
323   type, que vous utiliserez comme un prototype  que vous modifierez \`a l'aide 
324   de la console lorsque vous devrez restaurer. Bien que certaines informations 
325   basiques soient conserv\'ees dans le catalogue lors de restaurations, leur 
326   quantit\'e est infime en regard des informations stock\'ees pour une sauvegarde -- 
327   par exemple, aucune entr\'ee de nom de fichier n'est g\'en\'er\'ee, puisqu'aucun fichier 
328   n'est sauvegard\'e.
329
330 \item [Verify]
331    \index[console]{Verify }
332    D\'efinit un Job de type Verify. Le Jobs de type {\bf verify}  permettent de 
333    comparer le catalogue au syst\`eme de fichiers ou \`a ce qui a \'et\'e sauvegard\'e. 
334    Vous pouvez l'utiliser pour vous assurer qu'une cartouche de donn\'ees est 
335    lisible, mais aussi comme un syst\`eme de d\'etection d'intrusion \`a la fa\ccon de 
336    Tripwire.
337
338 \item [Admin]
339    \index[fd]{Admin }
340    D\'efinit un Job de type Admin. Un  {\bf Admin} peut s'utiliser pour "\'elaguer" 
341    p\'eriodiquement le catalogue, si vous ne souhaitez pas que ceci soit fait \`a la fin 
342    de chaque sauvegarde. Bien que les Jobs de type admin soient enregistr\'es dans le 
343    catalogue, la quantit\'e de donn\'ees g\'en\'er\'ee est infime.
344    
345 \end{description}
346
347 \label{Level}
348
349 \item [Level = \lt{}job-level\gt{}]
350    \index[fd]{Level  }
351    La directive Level sp\'ecifie le niveau d'ex\'ecutiondu job  par d\'efaut. 
352    Chaque type de job a son propre jeu de niveaux qui peuvent \^etre sp\'ecifi\'es. 
353    Le niveau d'ex\'ecution est en g\'en\'eral surcharg\'e par une valeur diff\'erente 
354    sp\'ecifi\'ee dans la ressource {\bf Schedule}. Cette directive n'est pas 
355    requise mais doit \^etre sp\'ecifi\'ee soit ici, soit en tant que surcharge 
356    dans la ressource {\bf Schedule}.
357    
358 Pour un job de type {\bf Backup} le niveau doit \^etre l'un des suivants : 
359
360 \begin{description}
361
362 \item [Full]
363    \index[fd]{Full }
364    Tous les fichiers du FileSet, qu'ils aient \'et\'e modifi\'es ou non.
365
366 \item [Incremental]
367    \index[fd]{Incremental }
368    Tous les fichiers modifi\'es depuis la derni\`ere sauvegarde valide du FileSet 
369    sp\'ecifi\'e. Si le Director ne peut trouver une sauvegarde Full ant\'erieure, 
370    le niveau du job sera \'elev\'e en une sauvegarde Full. Lorsque le Director 
371    recherche une Full valide dans le catalogue, il recherche un job avec 
372    les caract\'eristiques suivantes :
373
374 \begin{itemize}
375 \item le m\^eme nom de job ; 
376 \item le m\^eme nom de client ;  
377 \item le m\^eme FileSet (toute modification de la d\'efinition du FileSet telle 
378       que l'ajout ou la suppression de fichiers dans les sections Include ou 
379       Exclude constitue un changement de FileSet).
380 \item le niveau requis (Full, Differential ou Incremental)
381 \item le job s'est termin\'e normalement, c'est \`a dire un qu'il ne s'est pas termin\'e 
382       en \'echec, et n'a pas \'et\'e effac\'e.
383 \end{itemize}
384
385 Si toutes les conditions ci-dessus ne sont pas r\'ealis\'ees, le Director 
386 augmentera la sauvegarde incr\'ementale en une sauvegarde Full. Dans le cas 
387 contraire, la sauvegarde incr\'ementale sera effectu\'ee normalement.
388
389 Le File Daemon (Client) d\'etermine les fichiers \`a sauvegarder pour une 
390 incr\'ementale par comparaison de l'heure de d\'emarrage du Job pr\'ec\'edent 
391 (Full, Diff\'erentiel ou Incr\'emental) avec les dates de derni\`ere modification 
392 de chaque fichier (st\_mtime) et de ses attributs (st\_ctime). Si le fichier 
393 ou ses attributs ont chang\'es depuis cette date de d\'emarrage, alors le fichier 
394 sera sauvegard\'e.
395
396 Veuillez noter que certains logiciels anti-virus peuvent modifier la date 
397 st\_time lors de leurs op\'erations de scan. Ainsi, si l'antivirus modifie 
398 la date d'acc\`es (st\_atime), qui n'est pas utilis\'ee par Bacula, il 
399 provoquera une modification du st\_ctime et conduira Bacula \`a sauvegarder 
400 les fichiers concern\'es lors des incr\'ementales et diff\'erentielles. Dans le 
401 cas de l'antivirus Sophos, vous pouvez \'eviter cet inconv\'enient en utilisant 
402 l'option {\bf \verb{--{no-reset-atime}. Pour les autres logiciels, voyez 
403 leurs manuels.
404
405 Lorsque Bacula effectue une sauvegarde incr\'ementale, tous les fichiers modifi\'es 
406 pr\'esents sur le syst\`eme sont sauvegard\'es. Cependant, tout fichier supprim\'e depuis 
407 la derni\`ere Full demeure dans le catalogue, ce qui signifie que si vous effectuez 
408 une restauration \`a partir de sauvegardes incr\'ementales (et de la Full associ\'ee), 
409 les fichiers supprim\'es depuis la derni\`ere Full seront aussi restaur\'es. Ces fichiers 
410 n'apparaîtront plus dans le catalogue apr\`es avoir fait une nouvelle sauvegarde 
411 Full. Le processus pour supprimer ces fichiers du catalogue lors d'une 
412 incr\'ementale ralentirait fortement les sauvegardes incr\'ementales. Il n'est 
413 actuellement pas impl\'ement\'e dans Bacula.
414
415 \item [Differential]
416    \index[fd]{Differential }
417    Tous les fichiers modifi\'es depuis la derni\`ere sauvegarde Full valide du FileSet
418    sp\'ecifi\'e. Si le Director ne peut trouver une sauvegarde Full ant\'erieure,
419    le niveau du job sera \'elev\'e en une sauvegarde Full. Lorsque le Director
420    recherche une Full valide dans le catalogue, il recherche un job avec 
421    les caract\'eristiques suivantes :
422
423 \begin{itemize}
424 \item le m\^eme nom de job ;
425 \item le m\^eme nom de client ;
426 \item le m\^eme FileSet (toute modification de la d\'efinition du FileSet telle
427       que l'ajout ou la suppression de fichiers dans les sections Include ou
428       Exclude constitue un changement de FileSet).
429 \item le Job \'etait une sauvegarde FULL
430 \item le Job s'est termin\'e normalement, c'est \`a dire qu'il ne s'est pas termin\'e
431       en \'echec, et n'a pas \'et\'e effac\'e.
432 \end{itemize}
433
434 Si toutes les conditions ci-dessus ne sont pas r\'ealis\'ees, le Director
435 augmentera la sauvegarde diff\'erentielle en une sauvegarde Full. Dans le cas
436 contraire, la sauvegarde diff\'erentielle sera effectu\'ee normalement.
437
438 Le File Daemon (Client) d\'etermine les fichiers \`a sauvegarder pour une
439 diff\'erentielle par comparaison de l'heure de d\'emarrage de la derni\`ere 
440 sauvegarde Full avec les dates de derni\`ere modification
441 de chaque fichier (st\_mtime) et de ses attributs (st\_ctime). Si le fichier
442 ou ses attributs ont chang\'es depuis cette date de d\'emarrage, alors le fichier
443 sera sauvegard\'e. La date de d\'emarrage utilis\'ee est affich\'e apr\`es le {\bf Since} 
444 du rapport de Job. Dans de rares cas, certains fichiers sont sauvegard\'es deux fois 
445 \`a cause de l'utilisation de la date de d\'emarrage de la sauvegarde pr\'ec\'edente, 
446 mais ceci assure qu'aucun changement n'est perdu. Comme pour les incr\'ementales, 
447 vous devriez vous assurer que les horloges de votre serveur Bacula et de vos clients 
448 sont synchronis\'ees, ou aussi proches que possible, pour \'eviter le risque d'omission 
449 d'un fichier. Notez qu'\`a partir de la version 1.33, Bacula effectue automatiquement 
450 ces ajustements de sorte que les horloges utilis\'ees par Bacula soient synchrones.
451
452 Veuillez noter que certains logiciels anti-virus peuvent modifier la date
453 st\_time lors de leurs op\'erations de scan. Ainsi, si l'antivirus modifie
454 la date d'acc\`es (st\_atime), qui n'est pas utilis\'ee par Bacula, il
455 provoquera une modification du st\_ctime et conduira Bacula \`a sauvegarder
456 les fichiers concern\'es lors des incr\'ementales et diff\'erentielles. Dans le
457 cas de l'antivirus Sophos, vous pouvez \'eviter cet inconv\'enient en utilisant
458 l'option {\bf \verb{--{no-reset-atime}. Pour les autres logiciels, voyez
459 leurs manuels.
460
461 Lorsque Bacula effectue une sauvegarde diff\'erentielle, tous les fichiers modifi\'es
462 pr\'esents sur le syst\`eme sont sauvegard\'es. Cependant, tout fichier supprim\'e depuis
463 la derni\`ere Full demeure dans le catalogue, ce qui signifie que si vous effectuez
464 une restauration \`a partir de sauvegardes diff\'erentielles (et de la Full associ\'ee),
465 les fichiers supprim\'es depuis la derni\`ere Full seront aussi restaur\'es. Ces fichiers
466 n'apparaîtront plus dans le catalogue apr\`es avoir fait une nouvelle sauvegarde
467 Full. Le processus pour supprimer ces fichiers du catalogue lors d'une
468 incr\'ementale ralentirait fortement les sauvegardes diff\'erentielles. Il n'est
469 actuellement pas impl\'ement\'e dans Bacula.
470
471 \end{description}
472
473 Pour un Job de type {\bf Restore}, aucun niveau ne doit \^etre sp\'ecifi\'e.  
474
475 Pour un Job de type {\bf Verify}, le niveau peut \^etre l'un des suivants :   
476
477 \begin{description}
478
479 \item [InitCatalog]
480    \index[fd]{InitCatalog }
481    Examine le {\bf FileSet} sp\'ecifi\'e et stocke les attributs de fichiers dans le 
482    catalogue. Vous pouvez vous interroger sur l'int\'er\^et d'un Job qui ne 
483    sauvegarde aucun fichier. La r\'eponse est de pouvoir utiliser Bacula comme 
484    vous utiliseriez Tripwire, en d'autres termes, ce type de Jobs vous permet 
485    de sauvegarder l'\'etat d'un ensemble de fichiers d\'efini par un {\bf FileSet} 
486    afin de pouvoir ult\'erieurement contr\^oler si rien n'a \'et\'e modifi\'e, supprim\'e ou 
487    ajout\'e. Ceci peut \^etre utilis\'e pour d\'etecter une intrusion. Typiquement, 
488    vous sp\'ecifiez un {\bf FileSet} qui contient l'ensemble des fichiers qui ne 
489    devraient pas changer (par exemple /sbin, /boot, /lib, /bin,  ...). Ensuite, 
490    vous ex\'ecutez le Job verify de niveau {\bf InitCatalog} apr\`es l'installation 
491    de votre syst\`eme, puis apr\`es chaque modification (mise \`a jour). Ensuite, 
492    lorsque vous souhaitez contr\^oler l'\'etat de votre syst\`eme de fichiers, 
493    vous utilisez un Job {\bf Verify}, {\bf level = Catalog} afin de comparer 
494    le r\'esultat de votre {\bf InitCatalog} avec l'\'etat actuel de votre syst\`eme 
495    de fichiers.
496
497 \item [Catalog]
498    \index[fd]{Catalog }
499    Compare l'\'etat actuel des fichiers et l'\'etat pr\'ec\'edemment sauvegard\'e 
500    lors d'un {\bf InitCatalog}. Toutes les anomalies sont rapport\'ees. 
501    Les objets du rapport sont d\'etermin\'es par les options {\bf verify} 
502    sp\'ecifi\'ees dans la directive {\bf Include} du {\bf FileSet} sp\'ecifi\'e 
503    (voyez la ressource {\bf FileSet} ci-dessous pour plus de d\'etails). 
504    Typiquement, cette commande sera ex\'ecut\'ee quotidiennement pour 
505    contr\^oler toute modification de votre syst\`eme de fichier.
506    
507 Attention ! Si vous ex\'ecutez deux jobs Verify Catalog simultan\'ement sur le m\^eme client, 
508 les r\'esultats seront probablement erronn\'es. En effet, Verify Catalog modifie 
509 le catalogue lors de son ex\'ecution afin de d\'etecter les nouveaux fichiers.
510
511 \item [VolumeToCatalog]
512    \index[fd]{VolumeToCatalog }
513    Ce niveau permet de lire les attributs de fichiers \'ecrits sur le Volume 
514    lors du dernier Job. Les attributs de fichiers sont compar\'es aux valeurs 
515    sauvegard\'ees dans le catalogue et toute diff\'erence est rapport\'ee. Ceci 
516    est similaire au niveau {\bf Catalog}, sauf que ce sont les 
517    attributs des fichiers du volume plut\^ot que ceux des fichiers du disque 
518    qui sont compar\'es aux attributs sauvegard\'es dans le catalogue. Bien que 
519    les attributs et signatures (MD5 ou SHA1) soient compar\'es, les donn\'ees 
520    r\'eelles ne le sont pas (elles ne figurent pas dans le catalogue).
521
522 Attention ! Si vous ex\'ecutez deux jobs Verify VolumeToCatalog simultan\'ement sur le m\^eme client,
523 les r\'esultats seront probablement erronn\'es. En effet, Verify VolumeToCatalog modifie
524 le catalogue lors de son ex\'ecution afin de d\'etecter les nouveaux fichiers.
525
526 \item [DiskToCatalog]
527    \index[fd]{DiskToCatalog }
528    Ce niveau permet de lire les fichiers tels qu'ils sont actuellement sur le 
529    disque et de comparer leurs attributs actuels avec ceux stock\'es dans le 
530    catalogue lors de la derni\`ere sauvegarde pour le Job sp\'ecifi\'e par la 
531    directive {\bf VerifyJob}. Ce niveau diff\`ere du niveau {\bf Catalog} 
532    d\'ecrit plus haut en ce qu'il ne se r\'ef\`ere pas \`a un Job Verify ant\'erieur, 
533    mais \`a la derni\`ere sauvegarde. Lorsque vous utilisez ce niveau , vous devez 
534    renseigner les option Verify de la section Include. Ces options d\'eterminent 
535    quels attributs seront compar\'es.
536
537 Cette commande peut se r\'ev\'eler tr\`es utile si vous avez des probl\`emes de disque 
538 car elle comparera l'\'etat actuel de votre disque avec la derni\`ere sauvegarde 
539 valide, qui peut remonter \`a plusieurs jobs.
540
541 Notez que l'impl\'ementation actuelle (1.32c) n'identifie pas les fichiers qui 
542 ont \'et\'e supprim\'es.
543 \end{description}
544
545 \item {\bf Verify Job = \lt{}Job-Resource-Name\gt{}}
546    \index[fd]{Verify Job  }
547    Si vous ex\'ecutez un job verify sans cette directive, le dernier job 
548    ex\'ecut\'e sera compar\'e avec le catalogue, ce qui signifie que votre commande 
549    verify doit succ\'eder imm\'ediatement \`a une sauvegarde. Si vous sp\'ecifiez 
550    un {\bf Verify Job}, Bacula trouvera le dernier job ex\'ecut\'e avec ce nom. 
551    Ceci vous permet d'ex\'ecuter toutes vos sauvegardes, puis d'ex\'ecuter les jobs 
552    Verify sur les sauvegardes de votre choix (le plus souvent, un {\bf VolumeToCatalog} 
553    de sorte que la cartouche qui vient juste d'\^etre \'ecrite est relue).
554    
555 \item {\bf JobDefs = \lt{}JobDefs-Resource-Name\gt{}}
556    \index[fd]{JobDefs  }
557    Si un nom de JobDef est sp\'ecifi\'e dans la d\'efinition d'un Job, toutes les valeurs 
558    d\'efinies dans la ressource JobDef concern\'ee seront utilis\'ees en tant que valeurs 
559    par d\'efaut pour le Job. Toute valeur explicitement sp\'ecifi\'ee dans la 
560    d\'efinition du Job outrepasse la valeur par d\'efaut d\'efinie par le JobDef.
561    L'utilisation de cette directive permet d'\'ecrire des ressources Job plus 
562    compactes, o\`u la majeure partie des directives sont d\'efinies dans un ou 
563    plusieurs JobDefs. C'est particuli\`erement pratique si vous avez de nombreux 
564    Jobs similaires avec des variations mineures telles que diff\'erents clients.
565    Un exemple basique de l'utilisation d'un Jobdef est fourni dans le fichier 
566    bacula-dir.conf par d\'efaut.
567
568 \item {\bf Bootstrap = \lt{}bootstrap-file\gt{}}
569    \index[dir]{Bootstrap  }
570    La directive Bootstrap sp\'ecifie un fichier bootstrap qui, s'il est fourni, 
571    sera utilis\'e lors des restaurations et ignor\'e par tout les autres Jobs. 
572    Le fichier {\bf bootstrap} contient la liste des cartouches n\'ecessaires 
573    pour la restauration ainsi que les index des fichiers \`a restaurer 
574    (localisation sur la cartouche). Cette directive 
575    est optionnelle, et n'est utilis\'ee que pour les restaurations. De plus, 
576    elle peut \^etre modifi\'ee lorsqu'une restauration est lanc\'ee depuis la console.
577    
578 Si vous utilisez la commande {\bf Restore} dans la console pour lancer une 
579 restauration, le fichier {\bf bootstrap} sera cr\'e\'e automatiquement \`a partir des 
580 fichiers que vous avez s\'electionn\'es pour la restauration.
581
582 Pour plus de d\'etails concernant les fichiers {\bf bootstrap}, veuillez 
583 consulter le chapitre \ilink{Restaurer des fichiers avec le fichier Bootstrap}{_ChapterStart43} 
584 de ce manuel.
585
586 \item {\bf \label{writebootstrap} Write Bootstrap =  \lt{}bootstrap-file-specification\gt{}}
587 \index[fd]{a name }
588
589    La directive {\bf writebootstrap} sp\'ecifie le de fichier Bootstrap o\`u Bacula 
590    \'ecrira lors de chaque sauvegarde. Ainsi, cette directive s'applique 
591    exclusivement aux jobs de type sauvegarde. Si la sauvegarde est une Full, 
592    Bacula \'ecrase le contenu du fichier sp\'ecifi\'e. Sinon, Bacula ajoute les 
593    nouveaux enregistrements Bootstrap \`a la fin du fichier..
594
595 En utilisant cette fonction, vous aurez constamment un fichier bootstrap 
596 capable de recouvrer l'\'etat le plus r\'ecent de votre syst\`eme. Le fichier 
597 bootstrap devrait \^etre \'ecrit sur un disque mont\'e sur une autre machine, de 
598 sorte que vous puissiez en disposer imm\'ediatement en cas de d\'efaillance 
599 de votre disque dur. Une alternative consiste \`a copier le fichier sur une autre 
600 machine apr\`es chaque mise \`a jour.
601
602 Si la {\bf sp\'ecification de fichier bootstrap} d\'ebute par une barre verticale (|), 
603 Bacula consid\`ere la sp\'ecification comme un nom de programme vers lequel les 
604 les enregistrement bootstrap seront redirig\'es. Ce peut \^etre, par exemple, un 
605 script qui vous envoie par e-mail les enregistrements bootstrap.
606
607 Pour plus de d\'etails sur l'utilisation de fichiers bootstrap, veuillez 
608 consulter le chapitre intitul\'e \ilink{Le Fichier Bootstrap}{_ChapterStart43} 
609 de ce manuel.
610
611
612 \item {\bf Client = \lt{}client-resource-name\gt{}}
613    \index[fd]{Client  }
614    La directive Client sp\'ecifie le Client (File Daemon) \`a utiliser dans le Job.
615    Le client est ex\'ecut\'e sur la machine \`a sauvegarder. Il exp\'edie les fichiers requis
616    au Storage Daemon lors des sauvegardes, et re\\ 3oit les fichiers du Storage Daemon
617    lors des restaurations. Pour plus de d\'etails, consultez la section
618    \ilink{Ressource Client}{ClientResource2} de ce chapitre. Cette deirective est requise.
619
620
621 \item {\bf FileSet = \lt{}FileSet-resource-name\gt{}}
622    \index[fd]{FileSet  }
623    La directive FileSet sp\'ecifie le FileSet \`a utiliser dans le Job concern\'e. Le
624    FileSet d\'efinit les r\'epertoires et fichiers \`a sauvegarder, ainsi que les options
625    \`a utiliser pour les sauvegarder (par exemple la compression,...). Un Job ne peut
626    contenir qu'un seul FileSet. Pour plus de d\'etails, consultez la section
627    \ilink{Ressource FileSet}{FileSetResource} de ce chapitre.
628    Cette directive est requise.
629
630 \item {\bf Messages = \lt{}messages-resource-name\gt{}}
631    \index[dir]{Messages  }
632    La directive Messages d\'efinit la ressource Message qui doit \^etre utilis\'ee
633    pour le job concern\'e. Ainsi, elle d\'etermine le comment et o\`u seront
634    d\'elivr\'es les diff\'erents messages de Bacula. Par exemple, vous pouvez diriger
635    certains messages vers un fichier de logs, tandis que d'autres seront
636    envoy\'es par e-mail. Pour plus de d\'etails, consultez le chapitre
637    \ilink{Ressource Messages}{_ChapterStart15} de ce manuel. Cette directive
638    est requise.
639
640 \item {\bf Pool = \lt{}pool-resource-name\gt{}}
641    \index[dir]{Pool  }
642    La directive Pool sp\'ecifie le jeu de volumes qui doit \^etre utilis\'e pour
643    sauvegarder vos donn\'ees. De nombreuses installations de Bacula
644    n'utiliseront que le pool d\'efini par d\'efaut {\bf Default}. Toutefois,
645    si vous voulez sp\'ecifier diff\'erents jeux de volumes pou diff\'erents clients
646    ou diff\'erents jobs, vous voudrez probablement utiliser les Pools.
647    Pour plus de d\'etails, consultez la section \ilink{Ressource Pool}{PoolResource}
648    de ce chapitre. Cette directive est requise
649
650 \item {\bf Full Backup Pool = \lt{}pool-resource-name\gt{}  }
651    \index[dir]{Full Backup Pool  }
652    La directive {\it Full Backup Pool} sp\'ecifie un Pool \`a utiliser pour les
653    sauvegardes Full. Cette directive outrepasse toute autre sp\'ecification
654    de Pool lors d'une sauvegarde Full. Cette directive est optionnelle.
655
656 \item {\bf Differential Backup Pool = \lt{}pool-resource-name\gt{}  }
657    \index[dir]{Differential Backup Pool  }
658    La directive {\it Differential Backup Pool} sp\'ecifie un Pool \`a utiliser pour les
659    sauvegardes Diff\'erentielles. Cette directive outrepasse toute autre sp\'ecification
660    de Pool lors d'une sauvegarde Diff\'erentielle. Cette directive est optionnelle.
661
662 \item {\bf Incremental Backup Pool = \lt{}pool-resource-name\gt{}  }
663    \index[dir]{Incremental Backup Pool  }
664    La directive {\it Incremental Backup Pool} sp\'ecifie un Pool \`a utiliser pour les
665    sauvegardes Incr\'ementales. Cette directive outrepasse toute autre sp\'ecification
666    de Pool lors d'une sauvegarde Incr\'ementale. Cette directive est optionnelle.
667
668 \item {\bf Schedule = \lt{}schedule-name\gt{}}
669    \index[dir]{Schedule  }
670    La directive Schedule d\'efinit la planification du job. Le {\it schedule} d\'etermine 
671    la date et l'instant o\`u le job doit \^etre lanc\'e automatiquement, et le niveau 
672    (Full, Diff\'erentiel, Incr\'emental...) du job en question. Cette directive est 
673    optionnelle. Si elle est omise, le job ne pourra \^etre ex\'ecut\'e que manuellement via 
674    la Console. Bien que vous puissiez vous contenter d'une ressource Schedule simple
675    pour tout job, vous pouvez aussi d\'efinir des ressources Schedule avec plusieurs 
676    directives {\bf Run}, afin de lancer le job \`a diff\'erentes heures. Chacune de ces 
677    directives {\bf Run} permet d'outrepasser les valeurs par d\'efaut de Level, Pool, 
678    Storage et Messages ressources. Ceci autorise une grande souplesse d'utilisation 
679    d'un simple job.
680    Pour plus de d\'etails, consultez le chapitre. 
681    \ilink{Ressource Schedule}{ScheduleResource} de ce manuel. 
682
683 \item {\bf Storage = \lt{}storage-resource-name\gt{}}
684    \index[dir]{Storage  }
685    La directive Storage d\'efinit le nom du service storage que vous souhaitez 
686    utiliser pour sauvegarder les donn\'ees du FileSet. Pour plus de d\'etails, consultez le 
687    chapitre \ilink{Ressource Storage}{StorageResource2} de ce manuel.
688    Cette directive est requise.
689    
690 \item {\bf Max Start Delay = \lt{}time\gt{}}
691    \index[sd]{Max Start Delay  }
692    La directive Max Start Delay sp\'ecifie le d\'elai maximal entre l'horaire 
693    planifi\'e (dans le schedule) et l'horaire effectif de d\'emarrage du job. 
694    Par exemple, un job peut \^etre programm\'e pour d\'emarrer \`a 1h, mais \^etre 
695    mis en attente \`a cause d'autres jobs en cours d'ex\'ecution. Si le 
696    Max Start Delay a \'et\'e r\'egl\'e \`a 3600, le job sera supprimm\'e s'il n'a pas 
697    d\'emarr\'e \`a 2h. Ceci peut se r\'ev\'eler utile pour, par exemple, \'eviter qu'un job 
698    s'ex\'ecute duant les heures ouvrables. La valeur par d\'efaut est 0 (pas de limite).
699
700 \item {\bf Max Run Time = \lt{}time\gt{}}
701    \index[sd]{Max Run Time  }
702    La directive Max Run Time sp\'ecifie le d\'elai allou\'e pour l'ex\'ecution 
703    compl\`ete d'un job depuis son lancement (pas n\'ecessairement \`a l'heure 
704    de sa programmation) jusqu'\`a sa fin. Cette directive est impl\'ement\'ee 
705    depuis la version 1.33.
706
707 \item {\bf Max Wait Time = \lt{}time\gt{}}
708    \index[sd]{Max Wait Time  }
709    La directive Max Wait Time sp\'ecifie le d\'elai maximum durant lequel un 
710    job peut rester bloqu\'e en attente d'une ressource (par exemple, en attente du 
711    montage d'une cartouche ou encore en attente des Storage ou File Daemon occup\'es 
712    \`a d'autres tâches) depuis son lancement (pas n\'ecessairement \`a l'heure
713    de sa programmation) jusqu'\`a sa fin. Cette directive est impl\'ement\'ee
714    depuis la version 1.33. 
715
716 \item {\bf Prune Jobs = \lt{}yes|no\gt{}}
717    \index[fd]{Prune Jobs  }
718    En principe, l'\'elagage des jobs du catalogue est sp\'ecifi\'e pour chaque client 
719    dans sa propre ressource Client par la directive {\bf AutoPrune}. Si cette 
720    directive est sp\'ecifi\'ee (normalement, non) et si la valeur est {\bf yes}, 
721    elle outrepasse la valeur sp\'ecifi\'ee dans la ressource Client. La valeur 
722    par d\'efaut est {\bf no}.
723
724 \item {\bf Prune Files = \lt{}yes|no\gt{}}
725    \index[fd]{Prune Files  }
726    En principe, l'\'elagage des fichiers du catalogue est sp\'ecifi\'e pour chaque client
727    dans sa propre ressource Client par la directive {\bf AutoPrune}. Si cette
728    directive est sp\'ecifi\'ee (normalement, non) et si la valeur est {\bf yes},
729    elle outrepasse la valeur sp\'ecifi\'ee dans la ressource Client. La valeur
730    par d\'efaut est {\bf no}.
731  
732 \item {\bf Prune Volumes = \lt{}yes|no\gt{}}
733    \index[fd]{Prune Volumes  }
734    En principe, l'\'elagage des volumes du catalogue est sp\'ecifi\'e pour chaque client
735    dans sa propre ressource Client par la directive {\bf AutoPrune}. Si cette
736    directive est sp\'ecifi\'ee (normalement, non) et si la valeur est {\bf yes},
737    elle outrepasse la valeur sp\'ecifi\'ee dans la ressource Client. La valeur
738    par d\'efaut est {\bf no}.
739
740 \item {\bf Run Before Job = \lt{}command\gt{}}
741    \index[fd]{Run Before Job  }
742    La commande sp\'ecifi\'ee est ex\'ecut\'ee en tant que programme externe avant le 
743    lancement du job. Tout retour de la commande sur la sortie standard est 
744    incluse dans le rapport de job de Bacula. La chaîne {bf command} doit \^etre 
745    un nom de programme valide ou un script shell. Cette directive n'est pas requise, 
746    mais si elle est d\'efinie, et si le code retour d'ex\'ecution du programme 
747    est diff\'erent de z\'ero, le job qui a lanc\'e le programme est effac\'e. D'autre part, 
748    la chaîne {bf command} est parcourue puis envoy\'ee vers la fonction execvp(), ce qui 
749    signifie que le chemin de la commande est recherch\'e pour son ex\'ecution, mais 
750    qu'il n'y a aucune interpr\'etation shell. Par cons\'equent, si vous voulez utiliser 
751    des commandes complexes ou toute fonctionnalit\'e du shell telle que la 
752    redirection, vous devez appeler un script shell o\`u vous mettrez vos commandes.
753    Avant de soumettre la commande sp\'ecifi\'ee au syst\`eme d'exploitation, Bacula 
754    effectue les substitutions suivantes :
755
756 \footnotesize
757 \begin{verbatim}
758     %% = %
759     %c = Nom du client
760     %d = Nom du Director
761     %i = JobId
762     %e = Statut de sortie du job
763     %j = Nom unique du job
764     %l = Niveau du job
765     %n = Nom du job
766     %t = Type de job
767     %v = Nom de volume
768     
769 \end{verbatim}
770 \normalsize
771 Depuis la version 1.30, Bacula contr\^ole le statut de sortie du programme 
772 RunBeforeJob. S'il est diff\'erent de z\'ero, le job se termine en erreur. 
773 Lutz Kittler a fait remarquer que ceci peut \^etre un moyen ais\'e pour modifier 
774 vos schedules pour les vacances. Par exemple, supposons que vous fassiez 
775 habituellement des sauvegardes Full le vendredi, mais que jeudi et vendredi 
776 soient f\'eri\'es. Pour \'eviter d'avoir \`a changer les cartouches entre jeudi et vendredi 
777 alors que personne n'est au bureau, vous pouvez cr\'eer un RunBeforeJob qui retourne 
778 un statut non nul jeudi et z\'ero les autres jours. Ainsi, le job de jeudi ne sera pas 
779 ex\'ecut\'e, et la cartouche que vous avez ins\'er\'e mercredi sera disponible pour la Full 
780 de vendredi.
781
782 \item {\bf Run After Job = \lt{}command\gt{}}
783    \index[fd]{Run After Job  }
784    La commande sp\'ecifi\'ee est ex\'ecut\'ee en tant que programme externe apr\`es la fin 
785    du job. La chaîne {bf command} doit \^etre un nom de programme valide ou un 
786    script shell. Cette directive n'est pas requise. Si le code de sortie du 
787    programme est non nul, le job se termine en erreur. Avant de soumettre 
788    la commande sp\'ecifi\'ee au syst\`eme d'exploitation, Bacula effectue les 
789    substitutions de caract\`eres d\'ecrites au paragraphe {\bf Run Before Job}
790
791 Un exemple d'utilisation de cette directive est donn\'e au chapitre 
792 \ilink{Astuces}{JobNotification} de ce manuel. depuis la version 1.30, 
793 Bacula contr\^ole le statut de sortie du program RunAfter. S'il est 
794 non nul, le job se termine en erreur.
795
796 \item {\bf Client Run Before Job = \lt{}command\gt{}}
797    \index[fd]{Client Run Before Job  }
798    Cette directive est similaire \`a {\bf Run Before Job} except\'e que la 
799    commande est ex\'ecut\'ee sur la machine cliente. Les m\^emes restrictions
800    s'appliquent aux syt\`emes Unix que celles signal\'ees pour {\bf Run Before Job}. 
801    D'autre part, pour les clients Windows \`a partir de la version 1.33, notez bien 
802    que vous devez fournir un chemin correct pour votre script, et que le script 
803    peut avoir l'extension .com, .exe, ou .bat. Si vous sp\'ecifiez un chemin, 
804    vous devez aussi sp\'ecifier l'extension compl\`ete. Les commandes \`a la fa\c{c}on 
805    d'Unix ne fonctionneront pas, \`a moins que vous n'ayez install\'e et 
806    correctement configur\'e Cygwin en plus (et s\'epar\'ement) de Bacula.
807
808
809 {\bf Consid\'erations particuli\`eres \`a Windows}
810 La commande peut \^etre n'importe quel programme reconnu par cmd.exe ou command.com 
811 comme un fichier ex\'ecutable. Sp\'ecifier une extension de fichier ex\'ecutable 
812 est optionnel, \`a moins qu'il y ait une ambigu\"it\'e (par exemple ls.bat, ls.exe).
813
814 Bacula cherche la commande dans le r\'epertoire "System \%Path\%" (Dans la
815 boîte de dialogue des variables d'environnement vous avez les variables
816 "syst\`eme" et "utilisateurs". Si bacula-fd fonctionne en tant que
817 service, seules les variables d'environnement syst\`emes sont accessibles.)
818
819 Les variables d'environnement syst\`eme peuvent \^etre invoqu\'ees avec la
820 syntaxe \%var\% et utilis\'ees comme portion du nom de la commande ou des
821 arguments.
822
823 Lorsque la sp\'ecification du chemin absolu d'un ex\'ecutable ou le nom de 
824 l'ex\'ecutable contient des espaces ou des caract\`eres sp\'eciaux, ils doivent 
825 \^etre quot\'es. Il en va de m\^eme pour les arguments.
826
827 \footnotesize
828 \begin{verbatim}
829 ClientRunBeforeJob = "\"C:/Program Files/Software
830      Vendor/Executable\" /arg1 /arg2 \"foo bar\""
831 \end{verbatim}
832 \normalsize
833
834 Les caract\`eres sp\'eciaux \&()[]\{\}\^{}=;!'+,`\~{} devront \^etre quot\'es s'ils font 
835 partie d'un nom de fichier ou d'un argument.
836
837
838 If someone is logged in a blank ``command'' window running the  commands will
839 be present during the execution of the command.  
840
841 Quelques suggestions de Phil Stracchino pour l'ex\'ecution sur les machines 
842 Win32 avec le File Daemon Win32 natif :
843
844 \begin{enumerate}
845 \item Vous pourriez utiliser la directive ClientRunBeforeJob pour sp\'ecifier 
846       un fichier .bat qui ex\'ecute les commandes cot\'e client plut\^ot que 
847       d'essayer d'ex\'ecuter (par exemple) regedit /e directement.
848 \item Le fichier batch devrait retourner explicitement 0 lors des ex\'ecutions correctes.
849 \item Le chemin vers le fichier batch devrait \^etre sp\'ecifi\'e au format Unix :
850
851    ClientRunBeforeJob = ``c:/bacula/bin/systemstate.bat''  
852
853 plut\^ot qu'au format DOS/Windows :  
854
855 ClientRunBeforeJob =
856 ``c:\textbackslash{}bacula\textbackslash{}bin\textbackslash{}systemstate.bat''
857 INCORRECT 
858 \end{enumerate}
859
860 \item {\bf Client Run After Job = \lt{}command\gt{}}
861    \index[fd]{Client Run After Job  }
862    Cette directive est similaire \`a {\bf Run After Job} sauf qu'elle est ex\'ecut\'ee 
863    sur la machine cliente. Veuillez consulter les notes concernant les clients 
864    Windows dans le paragraphe {\bf Client Run Before Job} ci-dessus.
865
866 \item {\bf Rerun Failed Levels = \lt{}yes|no\gt{}}
867    \index[fd]{Rerun Failed Levels  }
868    Si la valeur de cette directive est {\bf yes} ({\bf no} par d\'efaut), et si 
869    Bacula d\'etecte qu'un job ant\'erieur d'un niveau plus \'elev\'e (Full ou 
870    diff\'erentiel), alors le job est \'elev\'e au niveau le plus haut. Ceci est 
871    particuli\`erement utile pour sauvegarder les pc portables qui peuvent 
872    \^etre fr\'equemment inaccessibles. En effet, apr\`es l'\'echec d'une Full, vous 
873    souhaiterez probablement que la prochaine sauvegarde soit de niveau  Full 
874    plut\^ot qu'Incremental ou Diff\'erentiel.
875
876 \item {\bf Spool Data = \lt{}yes|no\gt{}}
877    \index[fd]{Spool Data  }
878    Si la valeur de cette directive est {\bf yes} ({\bf no} par d\'efaut), le 
879    Storage Daemon aura pour consigne de stocker les donn\'ees dans un  
880    fichier spoule sur disque plut\^ot que de les \'ecrire directement sur bande.
881    Lorsque toutes les donn\'ees sont dans le spoule ou lorsque la taille 
882    maximale fix\'ee pour le fichier spoule est atteinte, les donn\'ees sont 
883    d\'echarg\'ees du spoule vers les bandes. Lorsque la valeur de cette directive 
884    est {\bf yes}, la directive Spool Attributes est aussi automatiquement 
885    mise \`a la valeur {\bf yes}. L'utilisation de cette fonctionnalit\'e 
886    pr\'evient les arr\^ets et red\'emarrage incessants lors des incr\'ementales.
887    Elle ne doit pas \^etre utilis\'ee si vous sauvegardez sur disque.
888
889
890 \item {\bf Spool Attributes = \lt{}yes|no\gt{}}
891    \index[fd]{Spool Attributes  }
892    La valeur par d\'efaut est {\bf no}, ce qui signifie que le Storage Daemon 
893    envoie les attributs de fichiers au Director au moment o\`u ils (les fichiers) 
894    sont ecrits sur la bande. Cependant, si vous souhaitez \'eviter le risque 
895    de ralentissement d\^u aux mises \`a jour du catalogue, vous pouvez r\'egler  
896    cette directive \`a {\bf yes}, dans ce cas, le Storage Daemon stockera les 
897    attributs de fichiers dans un fichier tampon du Working Directory pour ne les 
898    transmettre au Director qu'\`a la fin de l'\'ecriture sur bande des donn\'ees du job.
899
900 \item {\bf Where = \lt{}directory\gt{}}
901    \index[dir]{Where  }
902    Cette directive ne concerne que les jobs de type Restauration. Elle permet 
903    de sp\'ecifier un pr\'efixe au nom du r\'epertoire o\`u tous les fichiers sont 
904    restaur\'es. Ceci permet de restaurer les fichiers en un emplacement 
905    diff\'erent de celui o\`u ils ont \'et\'e sauvegard\'es. Si {\bf Where} n'est pas 
906    renseign\'e, ou si sa valeur est backslash ({\bf /}), les fichiers sont 
907    restaur\'es \`a leur emplacement d'origine. Par d\'efaut, nous avons donn\'e \`a 
908    {\bf Where} la valeur {\bf /tmp/bacula-restores} dans les fichiers de 
909    configuration fournis en exemple, ceci afin d'\'eviter l'\'ecrasement 
910    accidentel de vos fichiers.
911
912 \item {\bf Replace = \lt{}replace-option\gt{}}
913    \index[dir]{Replace  }
914    Cette directive ne concerne que les jobs de type Restauration. Elle pr\'ecise 
915    la conduite \`a adopter dans l'\'eventualit\'e o\`u Bacula serait conduit \`a restaurer 
916    un fichier ou un r\'epertoire qui existe d\'ej\`a. Les options suivantes sont 
917    disponibles :
918
919 \begin{description}
920
921 \item [always]
922    \index[dir]{always }
923    Lorsque le fichier \`a restaurer existe d\'ej\`a, il est supprim\'e et remplac\'e par la 
924    copie sauvegard\'ee.
925
926 \item [ifnewer]
927    \index[fd]{ifnewer }
928    Si le fichier sauvegard\'e (sur bande) est plus r\'ecent que le fichier existant, 
929    le fichier existant est supprim\'e et remplac\'e par la copie sauvegard\'ee.
930
931 \item [ifolder]
932    \index[fd]{ifolder }
933    Si le fichier sauvegard\'e (sur bande) est plus ancien que le fichier existant,
934       le fichier existant est supprim\'e et remplac\'e par la copie sauvegard\'ee.
935
936 \item [never]
937    \index[fd]{never }
938    Si le fichier sauvegard\'e existe d\'ej\`a, Bacula renonce \`a restaurer ce fichier.
939 \end{description}
940
941 \item {\bf Prefix Links=\lt{}yes|no\gt{}}
942    \index[fd]{Prefix Links }
943    Si la valeur de cette directive est {\bf Yes} et si un pr\'efixe de chemin 
944    {\bf Where} est sp\'ecifi\'e, alors ce dernier s'applique aussi aux liens 
945    absolus. La valeur par d\'efaut est {\bf No}. Lorsque cette directive est \`a 
946    {\bf Yes}, tous les liens absolus seront aussi modifi\'es pour 
947    pointer vers le nouveau r\'epertoire. En principe, c'est ce qui est souhait\'e : 
948    l'ensemble du r\'epertoire restaur\'e conserve sa coh\'erence interne. Cependant, 
949    si vous voulez replacer les fichiers ult\'erieurement \`a leurs emplacements 
950    d'origine, tous les liens absolus seront bris\'es.
951
952 \item {\bf Maximum Concurrent Jobs = \lt{}number\gt{}}
953    \index[dir]{Maximum Concurrent Jobs  }
954    O\`u \lt{}number\gt{} est le nombre maximum de jobs de la ressource Job courrante 
955    qui peuvent \^etre ex\'ecut\'es simultan\'ement. Notez que cette directive ne limite 
956    que les jobs avec le m\^eme nom que la ressource dans laquelle elle 
957    figure. Toute autre restriction du nombre maximum de jobs simultan\'es, que ce soit au 
958    niveau du Director, du Client ou de la ressource Storage, s'applique en plus de 
959    de la limite stipul\'ee ici. LA valeur par d\'efaut est 1, mais vous pouvez utiliser 
960    une valeur plus grande. Nous vous recommandons fortement de lire 
961    attentivement le paragraphe WARNING sous \ilink{ Maximum Concurrent Jobs}{DirMaxConJobs} 
962    dans la section concernant la ressource Director.
963
964 \item {\bf Reschedule On Error = \lt{}yes|no\gt{}}
965    \index[dir]{Reschedule On Error  }
966    Si cette directive est activ\'ee, alors si le job se termine en erreur, il sera 
967    reprogramm\'e en accord avec les directives {\bf Reschedule Interval} et 
968    {\bf Reschedule Times}. Si vous supprimez le job, il ne sera pas reprogramm\'e.
969    La valeur par d\'efaut est {\bf no}.
970
971 Cette sp\'ecification peut se r\'ev\'eler utile pour les pc portables ainsi que pour toutes 
972 les machines qui ne sont pas connect\'ees au r\'eseau en permanence.
973
974 \item {\bf Reschedule Interval = \lt{}time-specification\gt{}}
975    \index[dir]{Reschedule Interval  }
976    Si cette directive est activ\'ee, alors si le job se termine en erreur, il sera
977    reprogramm\'e apr\`es l'intervalle de temps stipul\'e par {\bf time-specification}. 
978    Consultez la section \ilink{ the time specification formats}{Time} du chapitre 
979    Configurer Bacula pour plus de d\'etails sur les sp\'ecifications de temps. Si 
980    aucun intervalle n'est sp\'ecifi\'e, le job ne sera pas reprogramm\'e en cas d'erreur.
981
982 \item {\bf Reschedule Times = \lt{}count\gt{}}
983    \index[dir]{Reschedule Times  }
984    Cette directive pr\'ecise le nombre maximal de tentatives d'ex\'ecution du job.
985    S'il est fix\'e \`a z\'ero (valeur par d\'efaut), le job sera reprogramm\'e 
986    ind\'efiniment.
987
988 \label{Priority}
989 \item {\bf Priority = \lt{}number\gt{}}
990    \index[dir]{Priority  }
991    Cette directive vous permet de contr\^oler l'ordre d'ex\'ecution des jobs en 
992    sp\'ecifiant un entier positif non nul. Plus grand est ce nombre, plus basse 
993    est la priorit\'e du job. En supposant que vous n'ex\'ecutiez pas de jobs 
994    simultan\'es, tous les jobs en file d'attente avec la priorit\'e 1 seront 
995    ex\'ecut\'es avant ceux avec la priorit\'e 2, et ainsi de suite, sans prise en 
996    compte de l'ordre original de planification.
997    
998    La priorit\'e affecte seulement les jobs en file d'attente, et non les jobs d\'eja 
999    en cours d'ex\'ecution. Si un ou plusieurs jobs de priorit\'e 2 sont d\'ej\`a en cours 
1000    d'ex\'ecution, et si un nouveau job est programm\'e avec la priorit\'e 1, les jobs 
1001    en cours d'ex\'ecution doivent se terminer pour que le job de priorit\'e 1 puisse 
1002    d\'emarrer.
1003
1004    La priorit\'e par d\'efaut est 10.
1005
1006 Si vous voulez ex\'ecutez plusieurs jobs simultan\'es, ce qui n'est pas recommand\'e, 
1007 vous devriez garder les points suivants \`a l'esprit :
1008
1009 \begin{itemize}
1010 \item Pour ex\'ecuter plusieurs jobs simultan\'es, vous devez ajuster la directive 
1011       {\bf Maximum Concurrent Jobs } en cinq ou six endroits diff\'erents : dans le 
1012       fichier bacula-dir.conf, les ressources {\bf Job}, {\bf Client}, {\bf Storage};
1013       dans le fichier bacula-fd, la ressource {\bf FileDaemon}; et dans le fichier 
1014       bacula-sd.conf, la ressource {\bf Storage}. Si vous omettez l'un d'entre eux, 
1015       les jobs seront ex\'ecut\'es un par un.
1016 \item Bacula n'ex\'ecute pas simultan\'ement les jobs de priorit\'es distinctes. 
1017 \item Si Bacula ex\'ecute un job de priorit\'e 2 et si un nouveau job de priorit\'e 
1018       1 est programm\'e, il attendra la fin du job de priorit\'e 1, m\^eme si les 
1019       param\`etres {\bf Maximum Concurrent Jobs} pourraient permettre l'ex\'ecution 
1020       simultan\'ee de deux jobs.
1021 \item Supposons que Bacula soit en train d'ex\'ecuter un job de priorit\'e 2 et qu'un 
1022       job de priorit\'e 1 soit programm\'e et mis en queue en attente de la fin du 
1023       job de priorit\'e 2. Si vous d\'emarrez alors un second job de priorit\'e 2, le job 
1024       en attente de priorit\'e 1 emp\`echera le nouveau job de priorit\'e 2 de s'ex\'ecuter 
1025       en parall\`ele au premier. Ainsi : tant qu'il reste un job de priorit\'e sup\'erieure 
1026       \`a ex\'ecuter, aucun nouveau job de priorit\'e inf\'erieure ne pourra d\'emarrer, m\^eme si 
1027       les param\`etres {\bf Maximum Concurrent Jobs} devraient le permettre. Ceci permet 
1028       d'assurer que les jobs de priorit\'e sup\'erieure seront ex\'ecut\'es d\`es que possible.
1029 \end{itemize}
1030
1031 Si vous avez plusieurs jobs de priorit\'es diff\'erentes, il est pr\'ef\'erable de ne pas les 
1032 d\'emarrer exactement \`a la m\^eme heure, car Bacula doit les examiner un \`a la fois. Si, 
1033 par hazard, Bacula commence par traiter un job de priorit\'e inf\'erieure, il sera 
1034 ex\'ecut\'e avant votre job de priorit\'e \'elev\'e. Pour \'eviter cette situation, 
1035 d\'emarrez l'un quelconque des jobs de priorit\'e \'elev\'ee quelques secondes avant 
1036 ceux de basse priorit\'e. Ainsi, vous serez assur\'e que Bacula examine les jobs 
1037 dans l'ordre voulu et que votre sch\'ema de priorit\'es sera respect\'e.
1038
1039 \label{WritePartAfterJob}
1040
1041 \item {\bf Write Part After Job = \lt{}yes|no\gt{}}
1042    \index[sd]{Write Part After Job  }
1043    Si la valeur de cette directive est {\bf yes} ({\bf no} par d\'efaut), un nouveau 
1044    "fichier partition" (ndt : part file) sera cr\'e\'e apr\`es la fin du job. 
1045
1046 Cette directive devrait \^etre activ\'ee lors de l'\'ecriture sur des p\'eriph\'erique 
1047 qui requi\`erent un montage (par exemple, les DVDs), afin de vous assurer que 
1048 le fichier partition courant, celui qui contient les donn\'ees de ce job, est 
1049 envoy\'e vers le p\'eriph\'erique, et qu'aucune donn\'ee n'est laiss\'ee dans le fichier 
1050 temporaire sur le disque dur. Quoi qu'il en soit, avec certains supports tels 
1051 que les DVD+R et DVD-R, beaucoup d'espace (environ 10 Mb) est perdu \`a chaque fois 
1052 qu'un fichier partition est \'ecrit. Aussi, si vous ex\'ecutez plusieurs jobs \`a la 
1053 suite, vous devriez r\'egler cette directive \`a {\bf no} pour tous ces jobs sauf 
1054 le dernier, pour \'eviter un gaspillage important d'espace, tout en ayant la certitude 
1055 que les donn\'ees sont bien \'ecrites sur le m\'edium lorsque tous les jobs sont 
1056 achev\'es.
1057
1058 Cette directive est ignor\'ee avec les bandes et les p\'eriph\'eriques FIFO.
1059 \end{description}
1060
1061 Voici un exemple de d\'efinition de ressource Job valide.
1062
1063 \footnotesize
1064 \begin{verbatim}
1065 Job {
1066   Name = "Minou"
1067   Type = Backup
1068   Level = Incremental                 # default
1069   Client = Minou
1070   FileSet="Minou Full Set"
1071   Storage = DLTDrive
1072   Pool = Default
1073   Schedule = "MinouWeeklyCycle"
1074   Messages = Standard
1075 }
1076 \end{verbatim}
1077 \normalsize
1078
1079 \subsection*{La ressource JobDefs}
1080 \label{JobDefsResource}
1081 \index[general]{JobDefs Resource }
1082 \index[general]{Resource!JobDefs }
1083 \addcontentsline{toc}{subsection}{JobDefs Resource}
1084
1085 La ressource Jobdefs admet toutes les directives qui peuvent apparaître dans 
1086 une ressource Job. Une ressource Jobdefs ne cr\'e\'e en aucun cas un Job, son r\^ole 
1087 est de pouvoir \^etre d\'esign\'ee dans une ressource Job comme un ensemble de 
1088 param\`etres par d\'efaut. Ceci permet de d\'efinir plusieurs jobs similaires avec 
1089 concision, en ne mentionnant, pour chaque job, que les diff\'erences avec les 
1090 valeurs par d\'efaut sp\'ecifi\'ees dans la ressource Jobdefs.
1091
1092 \subsection*{La ressource Schedule}
1093 \label{ScheduleResource}
1094 \index[general]{Resource!Schedule }
1095 \index[general]{Schedule Resource }
1096 \addcontentsline{toc}{subsection}{Schedule Resource}
1097
1098 La ressource Schedule offre un moyen pour planifier automatiquement un Job, 
1099 mais aussi la possibilit\'e de surcharger les param\`etres par d\'efaut de Level, 
1100 Pool, Storage, et Messages ressources. Si une ressource Schedule n'est pas 
1101 sp\'ecifi\'ee dans un job, ce job ne peut \^etre ex\'ecut\'e que manuellement. 
1102 En g\'en\'eral, vous sp\'ecifierez une action et le moment de son lancement.
1103
1104 \begin{description}
1105
1106 \item [Schedule]
1107    \index[sd]{Schedule }
1108    D\'ebut des directives Schedule. La ressource {\bf Schedule} n'est pas requise, 
1109    mais il vous en faudra au moins une si vous souhaitez que vos jobs soient 
1110    ex\'ecut\'es automatiquement.
1111    
1112 \item [Name = \lt{}name\gt{}]
1113    \index[sd]{Name  }
1114    Le nom du Schedule d\'efini. Cette directive est requise.
1115
1116 \item [Run = \lt{}Job-overrides\gt{} \lt{}Date-time-specification\gt{}  ]
1117    \index[sd]{Run  }
1118    La directive Run d\'efinit quand un job doit \^etre ex\'ecut\'e, et les \'eventuelles 
1119    surcharges \`a appliquer. Il est possible de sp\'ecifier plusieurs directives 
1120    {\bf run} au sein d'une ressource {\bf Schedule}, elles seront toutes 
1121    appliqu\'ees. Si vous avez deux directives {\bf Run} qui d\'emarrent au m\^eme 
1122    moment, deux jobs seront lanc\'es simultan\'ement (en fait, avec une seconde d'\'ecart).
1123    
1124
1125 La directive {\bf Job-overrides} permet d'outrepasser les sp\'ecifications de 
1126 Level, Storage, Messages et Pool \'ecrites dans la ressource Job. De plus, 
1127 les sp\'ecifications FullPool, DifferentialPool et IncrementalPool permettent 
1128 de passer outre les sp\'ecification de Pool, en accord avec le niveau (level) 
1129 effectif d'ex\'ecution du job.
1130
1131 L'utilisation de surcharges permet de peaufiner le param\'etrage d'un job 
1132 particulier. Par exemple, vous pourriez surcharger une sp\'ecification 
1133 Messages qui enverrait vos logs de backups vers un fichier, de fa\\ 3on \`a ce qu'ils 
1134 vous soient envoy\'es par mails pour les Fulls hebdomadaires ou mensuelles.
1135
1136 Les directives {\bf Job-overrides} sont sp\'ecifi\'ees en tant que {\bf mot-clef=valeur} 
1137 o\`u le mot-clef est l'un des suivants : Level, Storage,  Messages, Pool, FullPool, 
1138 DifferentialPool ou IncrementalPool, et la {\bf valeur} est d\'efinie selon le format 
1139 adapt\'e \`a la directive. Vous pouvez sp\'ecifier plusieurs surcharges {\bf Job-overrides} 
1140 en une seule directive {\bf Run} en les s\'eparant par des espaces ou des 
1141 trailing comas (traduction ?). Par exemple :
1142
1143 \begin{description}
1144
1145 \item [Level=Full]
1146    \index[sd]{Level }
1147    Tous les fichiers du FileSet qu'ils aient ou non chang\'e.
1148
1149 \item [Level=Incremental]
1150    \index[sd]{Level }
1151    Tous les fichiers qui ont chang\'e depuis la derni\`ere sauvegarde.
1152
1153 \item [Pool=Weekly]
1154    \index[sd]{Pool }
1155    Sp\'ecifie l'utilisation du Pool nomm\'e {\bf Weekly}.
1156
1157 \item [Storage=DLT\_Drive]
1158    \index[sd]{Storage }
1159    Sp\'ecifie l'utilisation du lecteur {\bf DLT\_Drive} pour p\'eriph\'erique de stockage.
1160
1161 \item [Messages=Verbose]
1162    \index[sd]{Messages }
1163    Sp\'ecifie l'utilisation de la ressource messages {\bf Verbose} pour le job.
1164
1165 \item [FullPool=Full]
1166    \index[sd]{FullPool }
1167    Sp\'ecifie l'utilisation du Pool nomm\'e {\bf Full} si le job est une sauvegarde Full, 
1168    ou s'il a \'et\'e \'elev\'e en Full bien qu'ayant \'et\'e lanc\'e en tant que diff\'erentiel ou 
1169    incr\'emental.
1170
1171 \item [DifferentialPool=Differential]
1172    \index[sd]{DifferentialPool }
1173     Sp\'ecifie l'utilisation du Pool nomm\'e {\bf Differential} si le job est une 
1174     sauvegarde diff\'erentielle.
1175
1176 \item [IncrementalPool=Incremental]
1177    \index[sd]{IncrementalPool }
1178    Sp\'ecifie l'utilisation du Pool nomm\'e {\bf Incremental} si le job est une 
1179    sauvegarde incr\'ementale.
1180
1181 \item [SpoolData=yes|no]
1182    \index[sd]{SpoolData }
1183    Indique \`a Bacula d'ordonner au Storage Daemon de placer les donn\'ees sur un 
1184    spool disque avant de les envoyer vers les cartouches.
1185
1186 \item [WritePartAfterJob=yes|no]
1187    \index[sd]{WritePartAfterJob }
1188    Indique \`a Bacula d'ordonner au Storage Daemon d'\'ecrire le fichier partition 
1189    courant vers le p\'eriph\'erique lorsque le job s'ach\`eve (voir 
1190 \ilink{la directive Write Part After Job dans la ressource Job}{WritePartAfterJob}).  
1191 \end{description}
1192
1193 {\bf Date-time-specification} D\'etermine la planification d'ex\'ecution du job.
1194 La sp\'ecification est une r\'ep\'etition, et, par d\'efaut, Bacula est param\'etr\'e 
1195 pour ex\'ecuter un job au d\'ebut de chaque heure de chaque jour de chaque semaine 
1196 de chaque mois de chaque ann\'ee. Ce n'est probablement pas ce que vous souhaitez, 
1197 aussi vous devez pr\'eciser ou limiter les moments o\`u vous souhaitez voir vos jobs 
1198 ex\'ecut\'es. Toute sp\'ecification est suppos\'ee cyclique et servira \`a limiter le 
1199 cycle par d\'efaut. Ceci se fait en sp\'ecifiant des masques ou des horaires,  
1200 jours de la semaine, jours du mois, semaines du mois, semaines de l'ann\'ee et 
1201 mois de l'ann\'ee o\`u vous voulez ex\'ecuter le job. En combinant ces possibilit\'es, 
1202 vous pouvez d\'efinir une planification qui se r\'ep\`ete \`a presque n'importe quelle 
1203 fr\'equence.
1204
1205 Concr\`etement, vous devez d\'efinir les {\bf mois}, {\bf jour}, {\bf heure} et 
1206 {\bf minute} o\`u le job est \`a ex\'ecuter. Parmis ces quatre objets, le {\bf jour} 
1207 est particulier en ce qu'il peut sp\'ecifier un jour du mois (1,2,...31) ou de la 
1208 semaine (Monday, Tuesday,...Sunday). Enfin, vous pouvez aussi sp\'ecifier un 
1209 jour de la semaine pour restreindre la planification \`a la premi\`ere, deuxi\`eme, 
1210 troisi\`eme, quatri\`eme ou cinqui\`eme semaine du mois.
1211
1212 Par exemple, si vous sp\'ecifiez seulement un jour de la semaine, disons {\bf Mardi}, 
1213 le job sera ex\'ecut\'e toutes les heures de chaque mardi de chaque mois. La raison 
1214 en est que les param\`etres {\bf Mois} et {\bf Heure} sont rest\'es \`a leurs valeurs 
1215 par d\'efaut : chaque mois et chaque heure.
1216
1217 Notez que, par d\'efaut, sans autre sp\'ecification, votre job s'ex\'ecutera au 
1218 d\'ebut de chaque heure. Si vous souhaitez que votre job s'ex\'ecute plus souvent 
1219 qu'une fois par heure, il vous faudra d\'efinir plusieurs sp\'ecifications {\bf run} 
1220 avec pour chacune une minut diff\'erente.
1221
1222 Les dates et horaires d'ex\'ecutions des jobs peuvent \^etre sp\'ecifi\'es comme suit, 
1223 en pseudo-BNF :
1224
1225 \footnotesize
1226 \begin{verbatim}
1227 <void-keyword>    = on
1228 <at-keyword>      = at
1229 <week-keyword>    = 1st | 2nd | 3rd | 4th | 5th | first |
1230                     second | third | forth | fifth
1231 <wday-keyword>    = sun | mon | tue | wed | thu | fri | sat |
1232                     sunday | monday | tuesday | wednesday |
1233                     thursday | friday
1234 <week-of-year-keyword> = w00 | w01 | ... w52 | w53
1235 <month-keyword>   = jan | feb | mar | apr | may | jun | jul |
1236                     aug | sep | oct | nov | dec | january |
1237                     february | ... | december
1238 <daily-keyword>   = daily
1239 <weekly-keyword>  = weekly
1240 <monthly-keyword> = monthly
1241 <hourly-keyword>  = hourly
1242 <digit>           = 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0
1243 <number>          = <digit> | <digit><number>
1244 <12hour>          = 0 | 1 | 2 | ... 12
1245 <hour>            = 0 | 1 | 2 | ... 23
1246 <minute>          = 0 | 1 | 2 | ... 59
1247 <day>             = 1 | 2 | ... 31
1248 <time>            = <hour>:<minute> |
1249                     <12hour>:<minute>am |
1250                     <12hour>:<minute>pm
1251 <time-spec>       = <at-keyword> <time> |
1252                     <hourly-keyword>
1253 <date-keyword>    = <void-keyword>  <weekly-keyword>
1254 <day-range>       = <day>-<day>
1255 <month-range>     = <month-keyword>-<month-keyword>
1256 <wday-range>      = <wday-keyword>-<wday-keyword>
1257 <range>           = <day-range> | <month-range> |
1258                           <wday-range>
1259 <date>            = <date-keyword> | <day> | <range>
1260 <date-spec>       = <date> | <date-spec>
1261 <day-spec>        = <day> | <wday-keyword> |
1262                     <day-range> | <wday-range> |
1263                     <daily-keyword>
1264 <day-spec>        = <day> | <wday-keyword> |
1265                     <week-keyword> <wday-keyword>
1266 <month-spec>      = <month-keyword> | <month-range> |
1267                     <monthly-keyword>
1268 <date-time-spec>  = <month-spec> <day-spec> <time-spec>
1269 \end{verbatim}
1270 \normalsize
1271
1272 \end{description}
1273
1274 Notez que les sp\'ecifications de semaine et d'ann\'ee suivent les d\'efinitions ISO 
1275 standard de semaine et ann\'ee, o\`u la semaine 1 est la semaine qui contient le 
1276 premier jeudi de l'ann\'ee, ou alternativement, la semaine qui contient le 
1277 quatri\`eme jour de janvier. Les semaines sont num\'erot\'ees w01 \`a w53. w00 est 
1278 pour Bacula la semaine qui pr\'ec\`ede la premi\`ere semaine ISO (c'est \`a dire celle 
1279 qui contient les quelques premiers jours de l'ann\'ee si aucun n'est un jeudi). 
1280 w00 n'est pas d\'efinie dans les sp\'ecifications ISO. Une semaine commence le Lundi 
1281 et se termine le Dimanche.
1282
1283 Voici un exemple de ressource Schedule nomm\'ee {\bf WeeklyCycle} qui ex\'ecute 
1284 un job de niveau Full chaque Dimanche \`a 1h05 et un job de niveau incr\'emental 
1285 du Lundi au Samedi \`a 1h05 :
1286
1287 \footnotesize
1288 \begin{verbatim}
1289 Schedule {
1290   Name = "WeeklyCycle"
1291   Run = Level=Full sun at 1:05
1292   Run = Level=Incremental mon-sat at 1:05
1293 }
1294 \end{verbatim}
1295 \normalsize
1296
1297 Voici un exemple de cycle mensuel :
1298
1299 \footnotesize
1300 \begin{verbatim}
1301 Schedule {
1302   Name = "MonthlyCycle"
1303   Run = Level=Full Pool=Monthly 1st sun at 1:05
1304   Run = Level=Differential 2nd-5th sun at 1:05
1305   Run = Level=Incremental Pool=Daily mon-sat at 1:05
1306 }
1307 \end{verbatim}
1308 \normalsize
1309
1310 Le premier de chaque mois :
1311
1312 \footnotesize
1313 \begin{verbatim}
1314 Schedule {
1315   Name = "First"
1316   Run = Level=Full on 1 at 1:05
1317   Run = Level=Incremental on 2-31 at 1:05
1318 }
1319 \end{verbatim}
1320 \normalsize
1321
1322 Toutes les dix minutes :
1323
1324 \footnotesize
1325 \begin{verbatim}
1326 Schedule {
1327   Name = "TenMinutes"
1328   Run = Level=Full hourly at 0:05
1329   Run = Level=Full hourly at 0:15
1330   Run = Level=Full hourly at 0:25
1331   Run = Level=Full hourly at 0:35
1332   Run = Level=Full hourly at 0:45
1333   Run = Level=Full hourly at 0:55
1334 }
1335 \end{verbatim}
1336 \normalsize
1337
1338 \subsection*{Notes techniques sur les Schedules}
1339 \index[general]{Schedules!Technical Notes on }
1340 \index[general]{Technical Notes on Schedules }
1341 \addcontentsline{toc}{subsection}{Notes techniques sur les Schedules}
1342 Au niveau interne, Bacula consid\`ere un schedule en tant que bit masque. 
1343 Il y a six masques et un champ minute pour chaque schedule. Les masques sont 
1344 heure, jour du mois (mday), jour de la semaine (wday), semaine du mois (wom), 
1345 et semaine de l'ann\'ee (woy). Le schedule est initialis\'e de fa\\ 3on \`a avoir les 
1346 bits de chacun de ces masques positionn\'es, ce qui signifie qu'au d\'ebut de chaque 
1347 heure, le job sera ex\'ecut\'e. Quand vous sp\'ecifiez un mois pour la premi\`ere 
1348 fois, le masque est effac\'e et le bit correspondant au mois s\'electionn\'e est 
1349 ajout\'e au masque. Si vous sp\'ecifiez un second mois, le bit correspondant 
1350 est aussi ajout\'e. Ainsi, lorsque Bacula examine le masque pour voir si 
1351 les bits plac\'es correspondent \`a la date courante, votre job ne sera ex\'ecut\'e 
1352 que pendant les deux mois que vous avez sp\'ecifi\'es. De m\^eme, si vous sp\'ecifiez 
1353 un horaire, le masque Heure est effac\'e et le bit correspondant \`a l'heure que 
1354 vous avez sp\'ecifi\'ee est plac\'e, les minutes sont quant \`a elles stock\'ees dans le 
1355 champ Minutes.
1356
1357 Pour chacun de vos schedules, vous pouvez visualiser le masque associ\'e 
1358 grâce \`a la commande  {\bf show schedules} du programme Console. 
1359 Notez que le bit masque est "zero based", et que Dimanche est le premier 
1360 jour de la semaine (bit 0)
1361
1362 \subsection*{La ressource FileSet }
1363 \label{FileSetResource}
1364 \index[general]{Resource!FileSet }
1365 \index[general]{FileSet Resource }
1366 \addcontentsline{toc}{subsection}{FileSet Resource}
1367
1368 La ressource FileSet d\'efinit les fichiers \`a inclure dans une sauvegarde. Pour 
1369 chaque job de type sauvegarde, il est n\'ecessaire de d\'efinir au moins une 
1370 ressource {\bf FileSet}. Un {\bf FileSet} consiste en une liste de fichiers 
1371 ou r\'epertoires \`a inclure, une liste de fichiers ou r\'epertoires \`a exclure, et 
1372 diverses options de sauvegardes telles que compression, chiffrement et 
1373 signatures qui doivent \^etre appliqu\'ees \`a chaque fichier.
1374
1375 Toute modification de la liste des fichiers inclus provoque la cr\'eation par Bacula 
1376 d'un nouveau FileSet (d\'efini par le nom et la somme de contr\^ole MD5 du contenu 
1377 du paragraphe Include). Chaque fois qu'un nouveau FileSet est cr\'e\'e, Bacula 
1378 s'assure que la premi\`ere sauvegarde est une Full.
1379
1380 \begin{description}
1381
1382 \item [FileSet]
1383    \index[dir]{FileSet }
1384    D\'ebut de la ressource FileSet. Au moins une ressource {\bf FileSet} doit 
1385    \^etre d\'efinie.
1386
1387 \item [Name = \lt{}name\gt{}]
1388    \index[dir]{Name  }
1389    Le nom de la ressource FileSet. Cette directive est requise.
1390
1391 \item [Ignore FileSet Changes = \lt{}yes|no\gt{}]
1392    \index[dir]{Ignore FileSet Changes  }
1393 Si cette directive est activ\'ee ({\bf yes}), toute modification des listes 
1394 d'inclusion ou d'exclusion du FileSet sera ignor\'ee et Bacula n'\'el\`evera 
1395 pas la prochaine sauvegarde en Full. La valeur par d\'efaut est {\bf no}, ainsi, 
1396 si vous modifiez une des listes d'inclusion ou d'exclusion du FileSet, Bacula 
1397 forcera une sauvegarde Full pour assurer que tout soit bien sauvegard\'e 
1398 proprement. Il n'est pas recommand\'e d'activer cette directive. Cette directive 
1399 est disponible \`a partir de Bacula 1.35.4.
1400
1401 \item [{Include \ \{ [ Options \{\lt{}file-options\gt{}\} ...]
1402    \lt{}file-list\gt{} \} 
1403    }]
1404 \index[dir]{Include \  \{ [ Options \{\lt{}file-options\gt{}\} ...]
1405 \lt{}file-list\gt{} \}  }
1406
1407 \item [Options \ \{ \lt{}file-options\gt{} \} 
1408    ]
1409    \index[dir]{Options \  \{ \lt{}file-options\gt{} \}  }
1410
1411 \item [Exclude \ \{ \lt{}file-list\gt{} \}]
1412    \index[dir]{Exclude \  \{ \lt{}file-list\gt{} \} }
1413 \end{description}
1414 La ressource Include doit contenir une liste de r\'epertoires et/ou fichiers 
1415 \`a traiter lors de la sauvegarde. Normalement, tous les fichiers trouv\'es dans 
1416 tous les sous-r\'epertoires de tout r\'epertoire de la liste d'inclusion des 
1417 fichiers seront sauvegard\'es. La ressource Include peut aussi comporter une 
1418 ou plusieurs ressources Options qui sp\'ecifient des param\`etres tels que 
1419 la compression \`a appliquer \`a tous les fichiers ou \`a n'importe quel sous ensemble 
1420 de fichiers \`a sauvegarder.
1421
1422 Le nombre de ressources {\bf Include} par FileSet n'est pas limit\'e, chacune ayant 
1423 sa propre liste de r\'epertoires et/ou fichiers \`a sauvegarder et ses propres 
1424 param\`etres d\'efinis par une ou plusieurs ressources Options. La liste de fichiers 
1425 {\bf file-list} consiste en un nom de fichier ou r\'epertoire par ligne.
1426 Les noms de r\'epertoire doivent \^etre sp\'ecifi\'es sans slash final.
1427
1428 Vous devez toujours sp\'ecifier des chemins absolus pour tout fichier ou 
1429 r\'epertoire que vous placez dans un FileSet. De plus, sur les machines Windows, 
1430 vous devez {\bf toujours} pr\'efixer le r\'epertoire ou nom de fichier d'une 
1431 sp\'ecification de disque (par exemple : {\bf c:/xxx}) en utilisant le s\'eparateur 
1432 de r\'epertoire Unix (slash /).
1433
1434 Le comportement par d\'efaut de Bacula en ce qui concerne le traitement des 
1435 r\'epertoires est de descendre r\'ecursivement dans chaque r\'epertoire 
1436 et de sauvegarder tous les fichiers et sous-r\'epertoires. Par d\'efaut, Bacula 
1437 ne suit pas les syst\`emes de fichiers transverses (en terminologie Unix, les 
1438 points de montage). Ceci signifie que si vous sp\'ecifiez la partition racine 
1439 ( par exemple /), Bacula sauvegardera seulement la partition racine, et aucun 
1440 des syst\`emes de fichiers mont\'es. De fa\\ 3on analogue, sur les syst\`emes Windows, 
1441 vous devez expliciter chacun des disques que vous souhaitez sauvegarder (par 
1442 exemple {\bf c:/} et {\bf d:/}...). De plus, au moins pour les syst\`emes 
1443 Windows, il sera la plupart du temps n\'ecessaire d'encadrer chaque sp\'ecification 
1444 de doubles quotes, particuli\`erement si le nom du r\'epertoire (ou du fichier) 
1445 comporte des espaces. La commande {\bf df} des syst\`emes Unix vous fournira 
1446 la liste des r\'epertoires qu'il vous faudra sp\'ecifier pour tout sauvegarder.
1447 Voyez ci-dessous pour un exemple.
1448
1449 Soyez attentif \`a ne pas inclure un r\'epertoire deux fois, car il serait 
1450 sauvegard\'e deux fois, ce qui gaspillerait l'espace sur votre p\'eriph\'erique 
1451 de sauvegarde. Cette erreur est facile \`a commettre. Par exemple :
1452
1453 \footnotesize
1454 \begin{verbatim}
1455   Include {
1456     File = /
1457     File = /usr
1458     Options { compression=GZIP }
1459   }
1460 \end{verbatim}
1461 \normalsize
1462
1463 Sur un syst\`eme Unix o\`u /usr est un sous r\'epertoire (plut\^ot qu'un syst\`eme de 
1464 fichiers mont\'e), cette ressource Include sauvegarderait /usr deux fois.
1465 Dans ce cas, sur les versions ant\'erieures \`a 1.32f-5-09Mar04, en raison 
1466 d'un bug, vous ne pourriez restaurer les fichiers li\'es physiquement sauvegard\'es 
1467 deux fois.
1468
1469 Si vous avez utilis\'e des versions de Bacula ant\'erieures \`a 1.34.3, vous noterez 
1470 ces modifications dans la syntaxe des FileSets :
1471
1472 \begin{enumerate}
1473 \item il n'y a pas de signe \'egale (=) apr\`es le "include" et avant l'accolade 
1474 ouvrante (\{) ;
1475 \item chaque r\'epertoire (ou nom de fichier) \`a sauvegarder est pr\'ec\'ed\'e de 
1476 "{\bf File =}" ;
1477 \item les options qui apparaissaient pr\'ec\'edemmant sur la ligne Include doivent 
1478 d\'esormais \^etre sp\'ecifi\'ees dans leur propre ressource Options.
1479 \end{enumerate}
1480
1481 La ressource Options est optionnelle, mais lorsqu'elle est sp\'ecifi\'ee, elle doit 
1482 contenir une liste de lignes "{\bf mot-clef=valeur}" relatives aux options \`a appliquer 
1483 \`a la liste de fichiers/r\'epertoires. Plusieurs ressources Options peuvent \^etre 
1484 sp\'ecifi\'ees l'une apr\`es l'autre. Lorsqu'un fichier se trouve dans un dossier 
1485 sp\'ecifi\'e, les options sont appliqu\'ees au nom de fichier pour savoir s'il doit 
1486 \^etre sauvegard\'e, et comment. Les ressources Options sont appliqu\'ees dans l'ordre 
1487 o\`u elles apparaîssent dans le FileSet jusqu'\`a ce qu'il y en ait une qui corresponde. 
1488 Une ressource Options qui ne contient pas de directive  {\bf wild} (sp\'ecification 
1489 de caract\`ere joker, voir ci-dessous) est consid\'er\'ee comme concernant tous les 
1490 fichiers. Il est important de bien comprendre ceci, car une fois que Bacula a 
1491 d\'etermin\'e que des Options s'appliquent \`a un fichier donn\'e, ce fichier sera 
1492 sauvegard\'e sans tenir compte d'aucunes des \'eventuelles autres ressources Options. 
1493 Ceci signifie que toute ressource Options avec caract\`eres joker doit apparaître 
1494 avant une ressource Options sans caract\`eres joker. 
1495
1496 Si, pour quelque raison, Bacula applique toutes les ressources Options \`a un 
1497 fichier sans qu'aucune ne corresponde (en g\'en\'eral \`a cause de caract\`eres joker 
1498 qui ne correspondent pas), par d\'efaut Bacula sauvegardera le fichier. Ceci est 
1499 assez logique si vous consid\'erez la situation sans options, o\`u vous souhaitez 
1500 que tout soit sauvegard\'e. De plus, dans le cas ou aucune correspondance n'est  
1501 trouv\'ee, Bacula utilise les options de la derni\`ere ressource Options. Par cons\'equent, 
1502 si vous souhaitez d\'efinir un jeu d'options par d\'efaut, vous devriez les placer 
1503 dans la derni\`ere ressource Options.
1504
1505 Les directives disponibles pour les ressources Options sont les suivantes :
1506
1507 \begin{description}
1508    \item [compression=GZIP]
1509    \index[fd]{compression }
1510    Tous les fichiers sauvegard\'es sont compress\'es (NDT : compression logicielle, 
1511    par opposition \`a la compression mat\'erielle effectu\'ee par le lecteur) au 
1512    format GNU ZIP. Chaque fichier est compress\'e individuellement par le File 
1513    Daemon. S'il y a un probl\`eme \`a la lecture d'une cartouche au niveau de 
1514    l'enregistrement d'un fichier, il affectera tout au plus ce fichier et aucun 
1515    des autres fichiers de la cartouche. La plupart du temps, cette option n'est 
1516    pas n\'ecessaire si vous avez un lecteur de bandes moderne qui applique sa 
1517    propre compression. En fait, si vous activez les deux compressions 
1518    simultan\'ement, il se peut que vos fichiers occupent plus d'espace sur le 
1519    volume qu'avec une seule.
1520
1521    La compression logicielle est particuli\`erement int\'eressante lorsque vous 
1522    sauvegardez sur disque, et peut \^etre d'un grand secours si vous avez un 
1523    ordinateur rapide mais un r\'eseau lent.
1524
1525    La sp\'ecification {\bf GZIP}  utilise le niveau de compression six par d\'efaut 
1526    (i.e. {\bf GZIP} est \'equivalent \`a {\bf GZIP6}). Si vous voulez utiliser un 
1527    niveau diff\'erent (de 1 \`a 9), vous pouvez le sp\'ecifier en ajoutant le num\'ero 
1528    du niveau voulu \`a la fin du mot {\bf GZIP}, sans espace. Ainsi, {\bf compression=GZIP1} 
1529    d\'esigne la compression la moins efficace, mais l'algorithme le plus rapide, 
1530    tandis que {\bf compression=GZIP9} est le niveau de compression le plus \'elev\'e, 
1531    mais requi\`ere plus de puissance de calcul. Selon la documentation GZIP, les 
1532    niveaux de compression sup\'erieurs \`a 6 ne procurent g\'en\'eralement que peu 
1533    de compression suppl\'ementaire alors qu'ils sont plut\^ot exigeants en puissance 
1534    de calcul.
1535
1536    \item [signature=SHA1]
1537    \index[fd]{signature }
1538    La signature SHA1 est calcul\'ee pour tous les fichiers sauvegard\'es. 
1539    L'algorithme SHA1 est 
1540    r\'eput\'e plus lent que MD5, mais bien meilleur d'un point de vue cryptographique 
1541    (i.e. beaucoup moins de collisions et probabilit\'e de piratage bien inf\'erieure.). 
1542    Nous recommandons fortement d'activer l'une ou l'autre des options SHA1 ou MD5 
1543    par d\'efaut pour tous les fichiers. Notez que seule l'une de ces deux options 
1544    peut \^etre activ\'ee pour tout fichier.
1545    
1546    \item [signature=MD5]
1547    \index[fd]{signature }
1548    La signature MD5 est calcul\'ee pour tous les fichiers sauvegard\'es. Activer cette 
1549    option r\'esulte en une charge CPU suppl\'ementaire de l'ordre de 5\% pour chaque 
1550    fichier sauvegard\'e. D'autre part, la signature MD5 ajoute 16 octets 
1551    suppl\'ementaires au catalogue pour chaque fichier sauvegard\'e. Nous recommandons 
1552    fortement d'activer l'une ou l'autre des options SHA1 ou MD5 par d\'efaut pour tous
1553    les fichiers. 
1554
1555    \item [verify=\lt{}options\gt{}]
1556    \index[fd]{verify }
1557    Les "options-lettres" sont utilis\'ees lors de l'ex\'ecution de jobs de type {\bf Verify}
1558    de niveau {\bf Level=Catalog} et de niveau {\bf Level=DiskToCatalog}. Les options
1559    peuvent \^etre n'importe quelle combinaison de ces lettres.
1560
1561 \begin{description}
1562
1563 \item [i]
1564    compare les inodes  
1565
1566 \item [p]
1567    compare bits de permissions  
1568
1569 \item [n]
1570    compare le nombre de liens  
1571
1572 \item [u]
1573    compare les user ids  
1574
1575 \item [g]
1576    compare les group ids  
1577
1578 \item [s]
1579    compare les tailles  
1580
1581 \item [a]
1582    compare les date d'acc\`es (access time)  
1583
1584 \item [m]
1585    compare les dates de modification (st\_mtime)  
1586
1587 \item [c]
1588    compare les dates de changement (st\_ctime)  
1589
1590 \item [s]
1591    signale tout fichier dont la taille a diminu\'e  
1592
1593 \item [5]
1594    compare les signatures MD5  
1595
1596 \item [1]
1597    compare les signatures SHA1  
1598 \end{description}
1599
1600 Le jeu d'options {\bf pins5} (qui compare les bits de permissions, les inodes, 
1601 les nombres de liens, la taille des fichiers et les signatures MD5) est tr\`es 
1602 utile pour des jobs de type verify de niveaux {\bf Level=Catalog} ou 
1603 {\bf Level=DiskToCatalog}.
1604
1605 \item [{\bf onefs=yes|no}]
1606    \index[fd]{onefs }
1607    Si cette option est activ\'ee (valeur {\bf yes}, par d\'efaut), Bacula ne 
1608    changera pas de syst\`eme de fichiers. Autrement dit, il ne sauvegardera pas 
1609    les syst\`emes de fichiers mont\'es sur des sous-r\'epertoires. Si vous souhaitez 
1610    sauvegarder plusieurs syst\`emes de fichiers, vous pouvez les \'enum\'erer 
1611    explicitement. Une autre possibilit\'e consiste \`a d\'esactiver l'option onefs 
1612    ({\bf onefs=no}) afin que Bacula sauvegarde les syst\`emes de fichiers mont\'es 
1613    trouv\'es dans les r\'epertoires list\'es dans votre FileSet. Ainsi, si vous avez 
1614    des syst\`emes de fichiers NFS ou Samba mont\'es sur un r\'epertoire list\'e dans le 
1615    FileSet, ils seront aussi sauvegard\'es. En principe, il est pr\'ef\'erable 
1616    d'activer cette option et de nommer explicitement chaque syst\`eme de fichier 
1617    que vous voulez sauvegarder. Ce nommage explicite \'evite le risque de tomber 
1618    dans une boucle infinie de syst\`emes de fichiers. Voyez l'exemple ci-dessous 
1619    pour plus de d\'etails.
1620
1621 \label{portable}
1622
1623 \item [{\bf portable=yes|no}]
1624    \index[dir]{portable }
1625    Si cette option est activ\'ee (la valeur par d\'efaut est {\bf no}), le File Daemon 
1626    sauvegarde les fichiers win32 dans un format portable, mais tous les attributs 
1627    de fichiers win32 ne seront pas sauvegard\'es ni restaurables. La valeur par 
1628    d\'efaut est {\bf no}, ce qui signifie que sur les syst\`emes Win32, les donn\'ees 
1629    sont sauvegard\'ees en utilisant les appels Windows API et sur les WinNT/2k/XP, 
1630    tous les attributs de s\'ecurit\'e et de propri\'et\'e sont correctement sauvegard\'es 
1631    et restaur\'es. Cependant, ce format n'est pas portable aux autres syst\`emes 
1632    -- par exemple UNIX, Win95/98/Me. Lors de la sauvegarde de syst\`emes Unix, 
1633    cette option est ignor\'ee, et \`a moins que vous n'ayez un besoin sp\'ecifique de 
1634    portabilit\'e de vos sauvegardes, nous recommandons d'accepter la valeur par 
1635    d\'efaut ({\bf no}) de sorte qu'un maximum d'informations concernant vos 
1636    fichiers soit sauvegard\'e.
1637
1638 \item [{\bf recurse=yes|no}]
1639    \index[fd]{recurse }
1640    Si cette option est activ\'ee (la valeur par d\'efaut est {\bf yes}), Bacula 
1641    descend r\'ecursivement dans tout sous-r\'epertoire trouv\'e, \`a moins qu'il ne soit 
1642    explicitement exclu par une d\'efinition {\bf exclude}. Si vous d\'esactivez cette 
1643    option ({\bf recurse=no}), Bacula sauvegardera toutes les entr\'ees de sous-
1644    r\'epertoires, mais n'entrera pas dans ces sous-r\'epertoires, et ainsi ne 
1645    sauvegardera pas les fichiers ou \'epertoires contenus dans ces sous-r\'epertoires.
1646    En principe, vous pr\'ef\`ererez la valeur par d\'efaut ({\bf yes}).
1647
1648 \item [{\bf sparse=yes|no}]
1649    \index[dir]{sparse }
1650    Cette option active un code sp\'ecial qui d\'etecte les fichiers clairsem\'es tels 
1651    ceux cr\'e\'es par ndbm. Elle est d\'esactiv\'ee par d\'efaut ({\bf sparse=no}), de sorte 
1652    qu'aucun contr\^ole n'est fait pour rechercher les fichiers clairsem\'es. Vous 
1653    pouvez l'activer sans danger sur des fichiers non clairsem\'es, cependant elle 
1654    entraîne une l\'eg\`ere charge suppl\'ementaire pour la d\'etection de tampons remplis 
1655    de z\'eros (buffers of all zero), et un l\'eger surplus d'espace sur l'archive 
1656    de sortie sera utilis\'e pour ssauver les adresses de recherche de chaque 
1657    enregistrement non-nul trouv\'e.
1658
1659 {\bf Restrictions:} Bacula lit les fichiers dans des tampons de 32K. Si le tampon 
1660 entier est rempli de z\'eros, il sera trait\'e en tant que bloc clairsem\'e, et ne sera pas 
1661 \'ecrit sur la cartouche. En revanche, si une partie quelconque du tampon est 
1662 non-nulle, le tampon sera int\'egralement copi\'e sur la cartouche, avec \'eventuellement 
1663 des secteurs de disque (g\'en\'eralement 4098 octets) enti\`erement nuls. La d\'etection par 
1664 Bacula des blocs clairsem\'es a lieu sur des blocs de 32K plut\^ot que sur des blocs de 
1665 taille d\'etermin\'ee par le syst\`eme. Si quelqu'un consid\`ere ceci comme un r\'eelle 
1666 probl\`eme, merci d'envoyer une demande de modification en exposant les raisons.
1667 Ce code est apparu avec la version 1.27 de Bacula. 
1668
1669 Si vous n'\^etes pas familier avec les notions de fichiers clairsem\'es, prenons 
1670 pour exemple un fichier o\`u vous \'ecrivez 512 octets \`a l'adresse 0, puis 512 octets 
1671 \`a l'adresse 1 million. Le syst\`eme d'exploitation n'allouera que deux blocs, et 
1672 rien n'est allou\'e pour l'espace vide. Pourtant, lorsque vous lisez le fichier 
1673 clairsem\'e, le syst\`eme retourne tous les z\'eros comme si l'espace \'etait allou\'e, 
1674 et si vous sauvegardez un tel fichier, vous utiliserez beaucoup d'espace 
1675 sur le volume pour \'ecrire des z\'eros. Pire encore, lorsque vous restaurez ce 
1676 fichier \`a son emplacement initial, tous les emplacements pr\'ec\'edemment vides 
1677 seront cette fois allou\'es, occupant ainsi beaucoup plus d'espace disque.
1678 En activant l'option {\bf sparse}, Bacula recherchera sp\'ecifiquement l'espace 
1679 vide dans les fichiers afin d'\'eviter ces inconv\'enients. Le prix \`a payer est que 
1680 Bacula doit d'abord examiner chaque bloc lu avant de l'\'ecrire. Sur un syst\`eme lent, 
1681 ceci peut-\^etre important. Si vous suspectez certains de vos fichiers d'\^etre 
1682 clairsem\'es, vous devriez mesurer les performances et gains d'espace avec et 
1683 sans l'options, ou ne l'activer que pour les fichiers effectivement 
1684 clairsem\'es.
1685
1686 \label{readfifo}
1687
1688 \item [\bf readfifo=yes|no]
1689    \index[fd]{readfifo }
1690 Cette option, si elle est activ\'ee, indique au client de lire les donn\'ees 
1691 (lors d'une sauvegarde) et de les \'ecrire (lors d'une restauration) sur 
1692 un FIFO (pipe) explicitement explicitement mentionn\'e dans le FileSet.
1693 Dans ce cas, vous devez avoir un programme actif qui \'ecrit sur ce FIFO 
1694 dans le cas d'une sauvegarde, ou qui le lit dans le cas d'une restauration.
1695 (Ceci peut \^etre accompli par la directive {\bf RunBeforeJob}). Si cette 
1696 condition n'est pas satisfaite, Bacula demeurera en suspens ind\'efiniment 
1697 en lecture/\'ecriture du FIFO. Lorsque cette option est d\'esactiv\'ee (par d\'efaut), 
1698 le Client sauvegarde simplement l'entr\'ee du r\'epertoire pour le FIFO.
1699
1700 \item [\bf mtimeonly=yes|no]
1701    \index[dir]{mtimeonly }
1702 Cette option, si elle est activ\'ee, indique au client que la s\'election de fichiers 
1703 lors d'une sauvegarde incr\'ementale ou diff\'erentielle ne doit se r\'ef\'erer qu'aux valeurs 
1704 de  st\_mtime du paquet stat(). La valeur par d\'efaut est {\bf no}, ce qui signifie 
1705 que la s\'election de fichiers \`a sauvegarder se base sur les deux valeurs st\_mtime et 
1706 st\_ctime. En g\'en\'eral, il n'est pas recommand\'e d'activer cette option.
1707    
1708 \item [\bf keepatime=yes|no]
1709    \index[dir]{keepatime }
1710 Avec cette option activ\'ee, Bacula r\'etablit le champ st\_atime (date d'acc\`es) des 
1711 fichiers qu'il sauvegarde \`a leur valeur d'avant la sauvegarde. Cette option 
1712 n'est g\'en\'eralement pas recommand\'ee car il existe peu de programmes qui utilisent 
1713 st\_atime, et la charge de la sauvegarde se trouve augment\'ee par les appels 
1714 syst\`emes n\'ecessaires pour r\'etablir les dates. (Je ne suis pas sur que ceci 
1715 fonctionne sous Win32).
1716
1717 \item [\bf wild=\lt{}string\gt{}]
1718    \index[dir]{wild }
1719 Sp\'ecifie une chaîne de caract\`eres jokers \`a appliquer aux fichiers. Notez 
1720 que si {\bf Exclude} n'est pas activ\'ee, cette chaîne s\'electionnera les fichiers 
1721 \`a sauvegarder. Si au contraire {\bf Exclude=yes} est sp\'ecifi\'e, la chaîne 
1722 s\'electionnera les fichiers \`a exclure de la sauvegarde. Plusieurs directives 
1723 wild-card peuvent \^etre sp\'ecifi\'ees et sont appliqu\'ees s\'equentiellement 
1724 jusqu'\`a ce que l'une d'elles corresponde.
1725
1726 \item [\bf regex=\lt{}string\gt{}]
1727    \index[dir]{regex }
1728 Sp\'ecifie une expression r\'eguli\`ere \'etendue POSIX \`a appliquer aux fichiers.
1729 Cette directive est disponible \`a partir de Bacula 1.35. Si {\bf Exclude} n'est 
1730  pas activ\'ee, cette expression r\'eguli\`ere s\'electionnera les fichiers \`a 
1731  sauvegarder. Si au contraire {\bf Exclude=yes} est sp\'ecifi\'e, elle s\'electionnera 
1732  les fichiers \`a exclure de la sauvegarde. Plusieurs directives regex  peuvent \^etre 
1733  sp\'ecifi\'ees et sont appliqu\'ees s\'equentiellement jusqu'\`a ce que l'une d'elles corresponde.
1734
1735 \item [\bf exclude=yes|no]
1736    \index[dir]{exclude }
1737 Lorsque cette option est activ\'ee, tout fichier qui correspond aux options est exclu de 
1738 la sauvegarde. La valeur par d\'efaut est {\bf no}.
1739
1740 \label{ACLSupport}
1741
1742 \item [\bf aclsupport=yes|no]
1743    \index[dir]{aclsupport }
1744    Si cette option est activ\'ee, et si vous avez install\'e la librarie POSIX {\bf libacl} 
1745    sur votre syst\`eme, Bacula sauvegardera Listes de Contr\^oles d'Acc\`es (ACL) UNIX des 
1746    fichiers et r\'epertoires telles que d\'efinies dans IEEE Std 1003.1e version 17 et 
1747    "POSIX.1e" (abandonn\'e). Cette fonction n'est disponible que sur UNIX et d\'epend de 
1748    la librairie ACL. Bacula est automatiquement compil\'e avec le support ACL si la 
1749    librairie {\bf libacl} est install\'ee sur votre syst\`eme (ceci est report\'e dans 
1750    le fichier config.out). Lors de la restauration, Bacula tentera de restaurer les 
1751    ACLs. S'il n'y a pas de support ACL sur le syst\`eme cible, Bacula ne restaurera que les 
1752    fichiers et r\'epertoires sans les informations ACL. Veuillez noter que si vous 
1753    sauvegardez un syst\`eme de fichiers EXT3 ou XFS avec le support des ACLs, et que vous 
1754    restaurez vers un syst\`eme de fichiers sans ACLs (tel , peut-\^etre reiserfs), les 
1755    ACLs seront ignor\'ees.
1756
1757 \end{description}
1758
1759 {\bf \lt{}file-list\gt{}} est une liste de r\'epertoires et/ou noms de fichiers sp\'ecifi\'es 
1760 avec la directive  {\bf File =}. Pour inclure des noms contenant des espaces, 
1761 entourez-les de guillemets (doubles quotes).
1762
1763 Il existe quelques notations particuli\`eres pour sp\'ecifier des fichiers et r\'epertoires 
1764 dans une liste de fichiers {\bf file-list}. Les voici :
1765
1766 \begin{itemize}
1767 \item Tout nom pr\'ec\'ed\'e d'un signe "at" (@) est compris comme le nom d'un fichier, 
1768    lequel contient une liste de fichiers, chacun pr\'ec\'ed\'e d'une directive "File=". 
1769    Ce fichier est lu lorsque le fichier de configuration est parcouru au d\'emarrage 
1770    du Director. Notez bien que le fichier est lu sur sur la machine qui h\'eberge le 
1771    Director (autrement dit, le serveur de sauvegardes) et non sur le Client.
1772    En fait, le "@NomDeFichier" peut apparaître n'importe o\`u dans le fichier de 
1773    configuration o\`u un objet pourrait \^etre lu, le contenu du fichier d\'esign\'e sera 
1774    logiquement ins\'er\'e \`a l'emplacement du "@NomDeFichier". Ce qui doit figurer dans le 
1775    fichier d\'epend de l'emplacement du "@NomDeFichier" au sein du fichier de 
1776    configuration.
1777 \item Tout nom pr\'ec\'ed\'e d'une barre verticale (|) est compris comme le nom d'un 
1778    programme. Ce programme sera ex\'ecut\'e sur la machine qui h\'eberge le Director au 
1779    moment o\`u le job d\'emarre (et non lorsque le Director lit son fichier de 
1780    configuration), et toute sortie de ce programme sera per\\ 3u en tant que liste 
1781    de fichiers ou r\'epertoires, un par ligne, \`a inclure. Ceci vous permet d'avoir un 
1782    job qui, par exemple, inclue toutes les partitions locales m\^eme si vous changez le 
1783    partitionnement en ajoutant des disques. En g\'en\'eral, il vous faudra pr\'ec\'eder 
1784    votre commande d'un "{\bf sh -c}" afin qu'elle soit invoqu\'ee par un shell. 
1785    Ce ne sera pas le cas si vous invoquez un script comme dans le second exemple 
1786    ci-dessous.  Vous devez aussi prendre soin d'\'echapper (pr\'ec\'eder d'un \textbackslash{}) 
1787    les caract\`eres jokers, les caract\`eres du shell, ainsi que toute espace dans votre 
1788    commande. Si vous utilisez des simples quotes (') dans des doubles quotes (``), 
1789    Bacula traitera tout ce qui est entre simples quotes comme un seul champ, et il ne 
1790    dera donc pas n\'ecessaire d'\'echapper les espaces. En g\'en\'eral, parvenir \`a avoir 
1791    toutes les quotes et \'echappements corrects est un calvaire, comme vous pouvez 
1792    le constater dans le prochain exemple. Par cons\'equent, il est souvent plus facile 
1793    de tout mettre dans un fichier et d'utiliser simplement le nom de fichier dans 
1794    Bacula. Dans ce cas le "{\bf sh -c} ne sera plus n\'ecessaire, pourvu que la 
1795    premi\`ere ligne dufichier soit {\bf \#!/bin/sh}.
1796
1797
1798 Par exemple : 
1799
1800 \footnotesize
1801 \begin{verbatim}
1802  
1803 Include {
1804    Options { signature = SHA1 }
1805    File = "|sh -c 'df -l | grep \"^/dev/hd[ab]\" | grep -v \".*/tmp\" \
1806       | awk \"{print \\$6}\"'"
1807 }
1808 \end{verbatim}
1809 \normalsize
1810
1811 produira une liste de toutes les partitions locales sur un syst\`eme RedHat Linux. 
1812 Notez que la ligne si dessus a \'et\'e coup\'ee, mais devrait normalement \^etre \'ecrite 
1813 sur une seule ligne. Quoter est un r\'eel probl\`eme car vous devez d'une part le faire 
1814 pour Bacula - ce qui consiste \`a pr\'ec\'eder tout \textbackslash{} et tout '' avec un 
1815 \textbackslash{} - et d'autre part pour les commandes shell. En d\'efinitive, il est 
1816 probablement plus ais\'e d'ex\'ecuter un petit fichier tel que :
1817
1818 \footnotesize
1819 \begin{verbatim}
1820 Include {
1821   Options {
1822     signature=MD5
1823   }
1824   File = "|my_partitions"
1825 }
1826 \end{verbatim}
1827 \normalsize
1828
1829 o\`u le fichier my\_partitions contient :
1830
1831 \footnotesize
1832 \begin{verbatim}
1833 #!/bin/sh
1834 df -l | grep "^/dev/hd[ab]" | grep -v ".*/tmp" \
1835       | awk "{print \$6}"
1836 \end{verbatim}
1837 \normalsize
1838
1839 Si la barre verticale (|) devant "my\_partitions" est pr\'ec\'ed\'ee d'une barre oblique 
1840 (\textbackslash{}), le programme sera ex\'ecut\'e sur la machine cliente plut\^ot que sur 
1841 la machine h\'ebergeant le Director -- (ceci est impl\'ement\'e, mais n'est pas compl\`etement 
1842 test\'e, et a \'et\'e rapport\'e fonctionner sous Windows). Veuillez noter que si le nom de 
1843 fichier est donn\'e entre quotes, vous devrez utiliser deux barres obliques. Voci un 
1844 exemple, fourni par John Donagher, qui sauvegarde toutes les partitions UFS locales 
1845 sur un syst\`eme distant :
1846
1847 \footnotesize
1848 \begin{verbatim}
1849 FileSet {
1850   Name = "All local partitions"
1851   Include {
1852     Options { signature=SHA1; onefs=yes; }
1853     File = "\\|bash -c \"df -klF ufs | tail +2 | awk '{print \$6}'\""
1854   }
1855 }
1856 \end{verbatim}
1857 \normalsize
1858
1859
1860 Note, it requires two backslash characters after the double quote (one
1861 preserves  the next one). If you are a Linux user, just change the {\bf ufs}
1862 to  {\bf ext3} (or your preferred filesystem type) and you will be in 
1863 business.  
1864 \item Any file-list item preceded by a less-than sign (\lt{})  will be taken
1865    to be a file. This file will be read on the  Director's machine at the time
1866    the Job starts, and the  data will be assumed to be a list of directories or
1867 files,  one per line, to be included. The names should not be  quoted even if
1868 they contain spaces. This feature allows you to  modify the external file and
1869 change what will be saved  without stopping and restarting Bacula as would be 
1870 necessary if using the @ modifier noted above. 
1871
1872 If you  precede the less-than sign (\lt{}) with a backslash as in 
1873 \textbackslash{}\lt{}, the file-list will be read on the Client machine 
1874 instead of on the Director's machine. Please note that if  the filename is
1875 given within quotes, you will need to use  two slashes.  
1876 \item If you explicitly specify a block device such as {\bf /dev/hda1},  then
1877    Bacula (starting with version 1.28) will assume that this  is a raw partition
1878    to be backed up. In this case, you are strongly  urged to specify a {\bf
1879 sparse=yes} include option, otherwise, you  will save the whole partition
1880 rather than just the actual data that  the partition contains. For example: 
1881
1882 \footnotesize
1883 \begin{verbatim}
1884 Include {
1885   Options { signature=MD5; sparse=yes }
1886   File = /dev/hd6
1887 }
1888 \end{verbatim}
1889 \normalsize
1890
1891 will backup the data in device /dev/hd6.  
1892
1893 Ludovic Strappazon has pointed out that this feature can be  used to backup a
1894 full Microsoft Windows disk. Simply boot into  the system using a Linux Rescue
1895 disk, then load a statically  linked Bacula as described in the 
1896 \ilink{ Disaster Recovery Using Bacula}{_ChapterStart38} chapter of
1897 this manual. Then  save the whole disk partition. In the case of a disaster,
1898 you  can then restore the desired partition by again booting with  the rescue
1899 disk and doing a restore of the partition. 
1900 \item If you explicitly specify a FIFO device name (created with mkfifo),  and
1901    you add the option {\bf readfifo=yes} as an option, Bacula  will read the FIFO
1902    and back its data up to the Volume. For  example: 
1903
1904 \footnotesize
1905 \begin{verbatim}
1906 Include {
1907   Options {
1908     signature=SHA1
1909     readfifo=yes
1910   }
1911   File = /home/abc/fifo
1912 }
1913 \end{verbatim}
1914 \normalsize
1915
1916 if {\bf /home/abc/fifo} is a fifo device, Bacula will  open the fifo, read it,
1917 and store all data thus obtained  on the Volume. Please note, you must have a
1918 process on  the system that is writing into the fifo, or Bacula will  hang,
1919 and after one minute of waiting, Bacula will give up  and go on to the next
1920 file. The data read can be anything  since Bacula treats it as a stream.  
1921
1922 This feature can be an excellent way to do a  ``hot'' backup of a very large
1923 database. You can  use the {\bf RunBeforeJob} to create the fifo and to  start
1924 a program that dynamically reads your database and  writes it to the fifo.
1925 Bacula will then write it to the  Volume.  
1926
1927 During the restore operation, the inverse is true,  after Bacula creates the
1928 fifo if there was any data stored  with it (no need to explicitly list it or
1929 add any  options), that data will be written back to the fifo. As  a
1930 consequence, if any such FIFOs exist in the fileset to  be restored, you must
1931 ensure that there is a reader  program or Bacula will block, and after one
1932 minute, Bacula  will time out the write to the fifo and move on to the  next
1933 file. 
1934 \end{itemize}
1935
1936 \end{description}
1937
1938 The following is an example of a valid FileSet resource definition. Note, the
1939 first Include pulls in the contents of the file {\bf /etc/backup.list} when
1940 Bacula is started (i.e. the @). 
1941
1942 \footnotesize
1943 \begin{verbatim}
1944 FileSet {
1945   Name = "Full Set"
1946   Include {
1947     Options {
1948       Compression=GZIP
1949       signature=SHA1
1950       Sparse = yes
1951     }
1952     File = @/etc/backup.list
1953   }
1954   Include {
1955      Options {
1956         wild = *.o
1957         Exclude = yes
1958      }
1959      File = /root/myfile
1960      File = /usr/lib/another_file
1961   }
1962 }
1963 \end{verbatim}
1964 \normalsize
1965
1966 Note, in the above example, all the files contained in /etc/backup.list will
1967 be compressed with GZIP compression, an SHA1 signature will be computed on the
1968 file's contents (its data), and sparse file handling will apply. 
1969
1970 The two directories /root/myfile and /usr/lib/another\_file will also be saved
1971 without any options, but all files in those directories with the extension
1972 {\bf .o} will be excluded. 
1973
1974 Suppose you want to save everything except {\bf /tmp} on your system. Doing a
1975 {\bf df} command, you get the following output: 
1976
1977 \footnotesize
1978 \begin{verbatim}
1979 [kern@rufus k]$ df
1980 Filesystem      1k-blocks      Used Available Use% Mounted on
1981 /dev/hda5         5044156    439232   4348692  10% /
1982 /dev/hda1           62193      4935     54047   9% /boot
1983 /dev/hda9        20161172   5524660  13612372  29% /home
1984 /dev/hda2           62217      6843     52161  12% /rescue
1985 /dev/hda8         5044156     42548   4745376   1% /tmp
1986 /dev/hda6         5044156   2613132   2174792  55% /usr
1987 none               127708         0    127708   0% /dev/shm
1988 //minimatou/c$   14099200   9895424   4203776  71% /mnt/mmatou
1989 lmatou:/          1554264    215884   1258056  15% /mnt/matou
1990 lmatou:/home      2478140   1589952    760072  68% /mnt/matou/home
1991 lmatou:/usr       1981000   1199960    678628  64% /mnt/matou/usr
1992 lpmatou:/          995116    484112    459596  52% /mnt/pmatou
1993 lpmatou:/home    19222656   2787880  15458228  16% /mnt/pmatou/home
1994 lpmatou:/usr      2478140   2038764    311260  87% /mnt/pmatou/usr
1995 deuter:/          4806936     97684   4465064   3% /mnt/deuter
1996 deuter:/home      4806904    280100   4282620   7% /mnt/deuter/home
1997 deuter:/files    44133352  27652876  14238608  67% /mnt/deuter/files
1998 \end{verbatim}
1999 \normalsize
2000
2001 If you specify only {\bf /} in your Include list, Bacula will only save the
2002 Filesystem {\bf /dev/hda5}. To save all file systems except {\bf /tmp} with
2003 out including any of the Samba or NFS mounted systems, and explicitly
2004 excluding a /tmp, /proc, .journal, and .autofsck, which you will not want to
2005 be saved and restored, you can use the following: 
2006
2007 \footnotesize
2008 \begin{verbatim}
2009 FileSet {
2010   Name = Include_example
2011   Include {
2012     Options {
2013        wild = /proc
2014        wild = /tmp
2015        wild = \.journal
2016        wild = \.autofsck
2017        exclude = yes
2018     }
2019     File = /
2020     File = /boot
2021     File = /home
2022     File = /rescue
2023     File = /usr
2024   }
2025 }
2026 \end{verbatim}
2027 \normalsize
2028
2029 Since /tmp is on its own filesystem and it was not explicitly named in the
2030 Include list, it is not really needed in the exclude list. It is better to
2031 list it in the Exclude list for clarity, and in case the disks are changed so
2032 that it is no longer in its own partition. 
2033
2034 Please be aware that allowing Bacula to traverse or change file systems can be
2035 {\bf very} dangerous. For example, with the following: 
2036
2037 \footnotesize
2038 \begin{verbatim}
2039 FileSet {
2040   Name = "Bad example"
2041   Include {
2042     Options { onefs=no }
2043     File = /mnt/matou
2044   }
2045 }
2046 \end{verbatim}
2047 \normalsize
2048
2049 you will be backing up an NFS mounted partition ({\bf /mnt/matou}), and since
2050 {\bf onefs} is set to {\bf no}, Bacula will traverse file systems. Now if {\bf
2051 /mnt/matou} has the current machine's file systems mounted, as is often the
2052 case, you will get yourself into a recursive loop and the backup will never
2053 end. 
2054
2055 The following FileSet definition will backup a raw partition: 
2056
2057 \footnotesize
2058 \begin{verbatim}
2059 FileSet {
2060   Name = "RawPartition"
2061   Include {
2062     Options { sparse=yes }
2063     File = /dev/hda2
2064   }
2065 }
2066 \end{verbatim}
2067 \normalsize
2068
2069 While backing up and restoring a raw partition, you should ensure that no
2070 other process including the system is writing to that partition. As a
2071 precaution, you are strongly urged to ensure that the raw partition is not
2072 mounted or is mounted read-only. If necessary, this can be done using the {\bf
2073 RunBeforeJob} directive. 
2074 \label{win32}
2075
2076 \subsection*{Windows Considerations for FileSets}
2077 \index[general]{FileSets!Windows Considerations for }
2078 \index[general]{Windows Considerations for FileSets }
2079 \addcontentsline{toc}{subsection}{Windows Considerations for FileSets}
2080
2081 If you are entering Windows file names, the directory path may be preceded by
2082 the drive and a colon (as in c:). However, the path separators must be
2083 specified in Unix convention (i.e. forward slash (/)). If you wish to include
2084 a quote in a file name, precede the quote with a backslash
2085 (\textbackslash{}\textbackslash{}). For example you might use the following
2086 for a Windows machine to backup the ``My Documents'' directory: 
2087
2088 \footnotesize
2089 \begin{verbatim}
2090 FileSet {
2091   Name = "Windows Set"
2092   Include {
2093     Options {
2094        wild = *.obj
2095        wild = *.exe
2096        exclude = yes
2097      }
2098      File = "c:/My Documents"
2099   }
2100 }
2101 \end{verbatim}
2102 \normalsize
2103
2104 For exclude lists to work correctly on Windows, you must observe the following
2105 rules: 
2106
2107 \begin{itemize}
2108 \item Filenames are case sensitive, so you must use the correct case.  
2109 \item To exclude a directory, you must not have a trailing slash on the 
2110    directory name.  
2111 \item If you have spaces in your filename, you must enclose the entire name 
2112    in double-quote characters (``). Trying to use a backslash before  the space
2113    will not work.  
2114 \item If you are using the old Exclude syntax (noted below), you may  not
2115    specify a drive letter in the exclude. The new syntax noted  above should work
2116    fine including driver letters. 
2117 \end{itemize}
2118
2119 Thanks to Thiago Lima for summarizing the above items for us. If you are
2120 having difficulties getting includes or excludes to work, you might want to
2121 try using the {\bf estimate job=xxx listing} command documented in the 
2122 \ilink{Console chapter}{estimate} of this manual. 
2123
2124 On Win32 systems, if you move a directory or file or rename a file into the
2125 set of files being backed up, and a Full backup has already been made, Bacula
2126 will not know there are new files to be saved during an Incremental or
2127 Differential backup (blame Microsoft, not me). To avoid this problem, please
2128 {\bf copy} any new directory or files into the backup area. If you do not have
2129 enough disk to copy the directory or files, move them, but then initiate a
2130 Full backup. 
2131
2132 \subsubsection*{Excluding Files and Directories}
2133 \index[general]{Directories!Excluding Files and }
2134 \index[general]{Excluding Files and Directories }
2135 \addcontentsline{toc}{subsubsection}{Excluding Files and Directories}
2136
2137 You may also include full filenames or directory names in addition to using
2138 wild-cards and {\bf Exclude=yes} in the Options resource as specified above by
2139 simply including the files to be excluded in an Exclude resource within the
2140 FileSet. For example: 
2141
2142 \footnotesize
2143 \begin{verbatim}
2144 FileSet {
2145   Name = Exclusion_example
2146   Include {
2147     Options {
2148       Signature = SHA1
2149     }
2150     File = /
2151     File = /boot
2152     File = /home
2153     File = /rescue
2154     File = /usr
2155   }
2156   Exclude {
2157     File = /proc
2158     File = /tmp
2159     File = .journal
2160     File = .autofsck
2161   }
2162 }
2163 \end{verbatim}
2164 \normalsize
2165
2166 \subsection*{A Windows Example FileSet}
2167 \index[general]{FileSet!Windows Example }
2168 \index[general]{Windows Example FileSet }
2169 \addcontentsline{toc}{subsection}{Windows Example FileSet}
2170
2171 The following example was contributed by Phil Stracchino: 
2172
2173 \footnotesize
2174 \begin{verbatim}
2175 This is my Windows 2000 fileset:
2176 FileSet {
2177   Name = "Windows 2000 Full Set"
2178   Include {
2179     Options {
2180        signature=MD5
2181     }
2182     File = c:/
2183   }
2184   Exclude {
2185 # Most of these files are excluded not because we don't want
2186 #  them, but because Win2K won't allow them to be backed up
2187 #  except via proprietary Win32 API calls.
2188     File = "/Documents and Settings/*/Application Data/*/Profiles/
2189            */*/Cache/*"
2190     File = "/Documents and Settings/*/Local Settings/Application Data/
2191            Microsoft/Windows/[Uu][Ss][Rr][Cc][Ll][Aa][Ss][Ss].*"
2192     File = "/Documents and Settings/*/[Nn][Tt][Uu][Ss][Ee][Rr].*"
2193     File = "/Documents and Settings/*/Cookies/*"
2194     File = "/Documents and Settings/*/Local Settings/History/*"
2195     File = "/Documents and Settings/*/Local Settings/
2196            Temporary Internet Files/*"
2197     File = "/Documents and Settings/*/Local Settings/Temp/*"
2198     File = "/WINNT/CSC"
2199     File = "/WINNT/security/logs/scepol.log"
2200     File = "/WINNT/system32/config/*"
2201     File = "/WINNT/msdownld.tmp/*"
2202     File = "/WINNT/Internet Logs/*"
2203     File = "/WINNT/$Nt*Uninstall*"
2204     File = "/WINNT/Temp/*"
2205     File = "/temp/*"
2206     File = "/tmp/*"
2207     File = "/pagefile.sys"
2208   }
2209 }
2210 \end{verbatim}
2211 \normalsize
2212
2213 Note, the three line of the above Exclude were split to fit on the document
2214 page, they should be written on a single line in real use. 
2215
2216 \subsection*{The Old FileSet Resource}
2217 \index[general]{Resource!Old FileSet }
2218 \index[general]{Old FileSet Resource }
2219 \addcontentsline{toc}{subsection}{Old FileSet Resource}
2220
2221 The old pre-version 1.34.3 FileSet Resource has been deprecated but will still
2222 work. You are encouraged to convert to using the new form since the old code
2223 will be removed in version 1.37. 
2224
2225 \subsection*{Testing Your FileSet}
2226 \index[general]{FileSet!Testing Your }
2227 \index[general]{Testing Your FileSet }
2228 \addcontentsline{toc}{subsection}{Testing Your FileSet}
2229
2230 If you wish to get an idea of what your FileSet will really backup or if your
2231 exclusion rules will work correctly, you can test it by using the {\bf
2232 estimate} command in the Console program. See the 
2233 \ilink{estimate command}{estimate} in the Console chapter of this
2234 manual. 
2235
2236 \subsection*{Windows NTFS Naming Considerations}
2237 \index[general]{Windows NTFS Naming Considerations }
2238 \index[general]{Considerations!Windows NTFS Naming }
2239 \addcontentsline{toc}{subsection}{Windows NTFS Naming Considerations}
2240
2241 NTFS filenames containing Unicode characters (i.e. \gt{} 0xFF) cannot be
2242 explicitly named at the moment. You must include such names by naming a higher
2243 level directory or a drive letter that does not contain Unicode characters. 
2244
2245 \subsection*{The Client Resource}
2246 \label{ClientResource2}
2247 \index[general]{Resource!Client }
2248 \index[general]{Client Resource }
2249 \addcontentsline{toc}{subsection}{Client Resource}
2250
2251 The Client resource defines the attributes of the Clients that are served by
2252 this Director; that is the machines that are to be backed up. You will need
2253 one Client resource definition for each machine to be backed up. 
2254
2255 \begin{description}
2256
2257 \item [Client (or FileDaemon)]
2258    \index[dir]{Client (or FileDaemon) }
2259    Start of the Client directives.  
2260
2261 \item [Name = \lt{}name\gt{}]
2262    \index[dir]{Name  }
2263    The client name which will be used in the  Job resource directive or in the
2264 console run command.  This directive is required.  
2265
2266 \item [Address = \lt{}address\gt{}]
2267    \index[console]{Address  }
2268    Where the address is a host  name, a fully qualified domain name, or a network
2269 address in  dotted quad notation for a Bacula File server daemon.  This
2270 directive is required. 
2271
2272 \item [FD Port = \lt{}port-number\gt{}]
2273    \index[console]{FD Port  }
2274    Where the port is a port  number at which the Bacula File server daemon can be
2275 contacted.  The default is 9102. 
2276
2277 \item [Catalog = \lt{}Catalog-resource-name\gt{}]
2278    \index[console]{Catalog  }
2279    This specifies the  name of the catalog resource to be used for this Client. 
2280 This directive is required.  
2281
2282 \item [Password = \lt{}password\gt{}]
2283    \index[console]{Password  }
2284    This is the password to be  used when establishing a connection with the File
2285 services, so  the Client configuration file on the machine to be backed up
2286 must  have the same password defined for this Director. This directive is 
2287 required.  If you have either {\bf /dev/random}  {\bf bc} on your machine,
2288 Bacula will generate a random  password during the configuration process,
2289 otherwise it will  be left blank. 
2290 \label{FileRetention}
2291
2292 \item [File Retention = \lt{}time-period-specification\gt{}  ]
2293    \index[fd]{File Retention  }
2294    The File Retention directive defines the length of time that  Bacula will keep
2295 File records in the Catalog database.  When this time period expires, and if
2296 {\bf AutoPrune} is set to  {\bf yes} Bacula will prune (remove) File records
2297 that  are older than the specified File Retention period. Note, this  affects
2298 only records in the catalog database. It does not  effect your archive
2299 backups.  
2300
2301 File records  may actually be retained for a shorter period than you specify
2302 on  this directive if you specify either a shorter {\bf Job Retention}  or
2303 shorter {\bf Volume Retention} period. The shortest  retention period of the
2304 three takes precedence.  The time may be expressed in seconds, minutes, 
2305 hours, days, weeks, months, quarters, or years. See the 
2306 \ilink{ Configuration chapter}{Time} of this  manual for
2307 additional details of time specification. 
2308
2309 The  default is 60 days. 
2310 \label{JobRetention}
2311
2312 \item [Job Retention = \lt{}time-period-specification\gt{}  ]
2313    \index[fd]{Job Retention  }
2314    The Job Retention directive defines the length of time that  Bacula will keep
2315 Job records in the Catalog database.  When this time period expires, and if
2316 {\bf AutoPrune} is set to  {\bf yes} Bacula will prune (remove) Job records
2317 that are  older than the specified File Retention period. As with the other 
2318 retention periods, this affects only records in the catalog and  not data in
2319 your archive backup.  
2320
2321 If a Job  record is selected for pruning, all associated File and JobMedia 
2322 records will also be pruned regardless of the File Retention  period set. As a
2323 consequence, you normally will set the File  retention period to be less than
2324 the Job retention period. The  Job retention period can actually be less than
2325 the value you  specify here if you set the {\bf Volume Retention} directive in
2326 the  Pool resource to a smaller duration. This is because the Job  retention
2327 period and the Volume retention period are  independently applied, so the
2328 smaller of the two takes  precedence.  
2329
2330 The Job retention period is specified as seconds,  minutes, hours, days,
2331 weeks, months,  quarters, or years.  See the 
2332 \ilink{ Configuration chapter}{Time} of this manual for
2333 additional details of  time specification.  
2334
2335 The default is 180 days.  
2336 \label{AutoPrune}
2337
2338 \item [AutoPrune = \lt{}yes|no\gt{}]
2339    \index[fd]{AutoPrune  }
2340    If AutoPrune is set to  {\bf yes} (default), Bacula (version 1.20 or greater)
2341 will  automatically apply the File retention period and the Job  retention
2342 period for the Client at the end of the Job.  If you set {\bf AutoPrune = no},
2343 pruning will not be done,  and your Catalog will grow in size each time you
2344 run a Job.  Pruning affects only information in the catalog and not data 
2345 stored in the backup archives (on Volumes).  
2346
2347 \item [Maximum Concurrent Jobs = \lt{}number\gt{}]
2348    \index[fd]{Maximum Concurrent Jobs  }
2349    where \lt{}number\gt{}  is the maximum number of Jobs with the current Client
2350 that  can run concurrently. Note, this directive limits only Jobs  for Clients
2351 with the same name as the resource in which it appears. Any  other
2352 restrictions on the maximum concurrent jobs such as in  the Director, Job, or
2353 Storage resources will also apply in addition to  any limit specified here.
2354 The  default is set to 1, but you may set it to a larger number.  We strongly
2355 recommend that you read the WARNING documented under  
2356 \ilink{ Maximum Concurrent Jobs}{DirMaxConJobs} in the Director's
2357 resource.  
2358
2359 \item [*Priority = \lt{}number\gt{}]
2360    \index[fd]{*Priority  }
2361    The number specifies the  priority of this client relative to other clients
2362 that the  Director is processing simultaneously. The priority can range  from
2363 1 to 1000. The clients are ordered such that the smaller  number priorities
2364 are performed first (not currently  implemented). 
2365 \end{description}
2366
2367 The following is an example of a valid Client resource definition: 
2368
2369 \footnotesize
2370 \begin{verbatim}
2371 Client {
2372   Name = Minimatou
2373   Address = minimatou
2374   Catalog = MySQL
2375   Password = very_good
2376 }
2377 \end{verbatim}
2378 \normalsize
2379
2380 \subsection*{The Storage Resource}
2381 \label{StorageResource2}
2382 \index[general]{Resource!Storage }
2383 \index[general]{Storage Resource }
2384 \addcontentsline{toc}{subsection}{Storage Resource}
2385
2386 The Storage resource defines which Storage daemons are available for use by
2387 the Director. 
2388
2389 \begin{description}
2390
2391 \item [Storage]
2392    \index[fd]{Storage }
2393    Start of the Storage resources. At least one  storage resource must be
2394 specified. 
2395
2396 \item [Name = \lt{}name\gt{}]
2397    \index[sd]{Name  }
2398    The name of the storage resource. This  name appears on the Storage directive
2399 specified in the Job directive and  is required. 
2400
2401 \item [Address = \lt{}address\gt{}]
2402    \index[sd]{Address  }
2403    Where the address is a host name,  a {\bf fully qualified domain name}, or an
2404 {\bf IP address}. Please note  that the \lt{}address\gt{} as specified here
2405 will be transmitted to  the File daemon who will then use it to contact the
2406 Storage daemon. Hence,  it is {\bf not}, a good idea to use {\bf localhost} as
2407 the  name but rather a fully qualified machine name or an IP address.  This
2408 directive is required. 
2409
2410 \item [SD Port = \lt{}port\gt{}]
2411    \index[sd]{SD Port  }
2412    Where port is the port to use to  contact the storage daemon for information
2413 and to start jobs.  This same port number must appear in the Storage resource
2414 of the  Storage daemon's configuration file. The default is 9103. 
2415
2416 \item [Password = \lt{}password\gt{}]
2417    \index[sd]{Password  }
2418    This is the password to be used  when establishing a connection with the
2419 Storage services. This  same password also must appear in the Director
2420 resource of the Storage  daemon's configuration file. This directive is
2421 required.  If you have either {\bf /dev/random}  {\bf bc} on your machine,
2422 Bacula will generate a random  password during the configuration process,
2423 otherwise it will  be left blank. 
2424
2425 \item [Device = \lt{}device-name\gt{}]
2426    \index[sd]{Device  }
2427    This directive specifies the name  of the device to be used to for the
2428 storage. This name is not the  physical device name, but the logical device
2429 name as defined on the  {\bf Name} directive contained in the {\bf Device}
2430 resource  definition of the {\bf Storage daemon} configuration file.  You can
2431 specify any name you would like (even the device name if  you prefer) up to a
2432 maximum of 127 characters in length.  The physical device name associated with
2433 this device is specified in  the {\bf Storage daemon} configuration file (as
2434 {\bf Archive  Device}). Please take care not to define two different  Storage
2435 resource directives in the Director that point to the  same Device in the
2436 Storage daemon. Doing so may cause the  Storage daemon to block (or hang)
2437 attempting to open the  same device that is already open. This directive is
2438 required. 
2439
2440 \item [Media Type = \lt{}MediaType\gt{}]
2441    \index[fd]{Media Type  }
2442    This directive specifies the  Media Type to be used to store the data. This is
2443 an arbitrary  string of characters up to 127 maximum that you define. It can 
2444 be anything you want. However, it is best to  make it descriptive of the
2445 storage media (e.g. File, DAT, ''HP  DLT8000``, 8mm, ...). In addition, it is
2446 essential that you  make the {\bf Media Type} specification unique for each
2447 storage  media type. If you have two DDS-4 drives that have incompatible 
2448 formats, or if you have a DDS-4 drive and a DDS-4 autochanger,  you almost
2449 certainly should specify different {\bf Media Types}.  During a restore,
2450 assuming a {\bf DDS-4} Media Type is associated  with the Job, Bacula can
2451 decide to use any Storage  daemon that support Media Type {\bf DDS-4} and on
2452 any drive  supports it. If you want to tie Bacula to using a single Storage 
2453 daemon or drive, you must specify a unique Media Type for that drive.  This is
2454 an important point that should be carefully understood. You  can find more on
2455 this subject in the 
2456 \ilink{Basic Volume Management}{_ChapterStart39} chapter of this
2457 manual.  
2458
2459 The {\bf MediaType} specified here, {\bf must}  correspond to the {\bf Media
2460 Type} specified in the {\bf Device}  resource of the {\bf Storage daemon}
2461 configuration file.  This directive is required, and it is used by the
2462 Director and the  Storage daemon to ensure that a Volume automatically
2463 selected from  the Pool corresponds to the physical device. If a Storage
2464 daemon  handles multiple devices (e.g. will write to various file Volumes  on
2465 different partitions), this directive allows you to specify exactly  which
2466 device.  
2467
2468 As mentioned above, the value specified in the Director's Storage  resource
2469 must agree with the value specified in the Device resource in  the {\bf
2470 Storage daemon's} configuration file. It is also an  additional check so  that
2471 you don't try to write data for a DLT onto an 8mm device. 
2472 \label{Autochanger1}
2473
2474 \item [Autochanger = \lt{}yes|no\gt{}  ]
2475    \index[fd]{Autochanger  }
2476    If you specify {\bf yes}  for this command (the default is {\bf no}), when you
2477 use the {\bf label}  command or the {\bf add} command to create a new Volume,
2478 {\bf Bacula}  will also request the Autochanger Slot number. This simplifies 
2479 creating database entries for Volumes in an autochanger. If you forget  to
2480 specify the Slot, the autochanger will not be used. However, you  may modify
2481 the Slot associated with a Volume at any time  by using the {\bf update
2482 volume} command in the console program.  When {\bf autochanger} is enabled,
2483 the algorithm used by  Bacula to search for available volumes will be modified
2484 to  consider only Volumes that are known to be in the autochanger's  magazine.
2485 If no {\bf in changer} volume is found, Bacula will  attempt recycling,
2486 pruning, ..., and if still no volume is found,  Bacula will search for any
2487 volume whether or not in the magazine.  By privileging in changer volumes,
2488 this procedure minimizes  operator intervention.  The default is {\bf no}.  
2489
2490 For the autochanger to be  used, you must also specify {\bf Autochanger = yes}
2491 in the  
2492 \ilink{Device Resource}{Autochanger}  in the Storage daemon's
2493 configuration file as well as other  important Storage daemon configuration
2494 information.  Please consult the 
2495 \ilink{ Using Autochangers}{_ChapterStart18} manual of this
2496 chapter for the details of  using autochangers. 
2497
2498 \item [Maximum Concurrent Jobs = \lt{}number\gt{}]
2499    \index[fd]{Maximum Concurrent Jobs  }
2500    where \lt{}number\gt{}  is the maximum number of Jobs with the current Storage
2501 resource that  can run concurrently. Note, this directive limits only Jobs 
2502 for Jobs using this Storage daemon. Any  other restrictions on the maximum
2503 concurrent jobs such as in  the Director, Job, or Client resources will also
2504 apply in addition to  any limit specified here. The  default is set to 1, but
2505 you may set it to a larger number.  We strongly recommend that you read the
2506 WARNING documented under  
2507 \ilink{ Maximum Concurrent Jobs}{DirMaxConJobs} in the Director's
2508 resource.  
2509
2510 While it is possible to set the Director's, Job's, or Client's  maximum
2511 concurrent jobs greater than one, you should take great  care in setting the
2512 Storage daemon's greater than one. By keeping  this directive set to one, you
2513 will avoid having two jobs simultaneously  write to the same Volume. Although
2514 this is supported, it is not  currently recommended.  
2515 \end{description}
2516
2517 The following is an example of a valid Storage resource definition: 
2518
2519 \footnotesize
2520 \begin{verbatim}
2521 # Definition of tape storage device
2522 Storage {
2523   Name = DLTDrive
2524   Address = lpmatou
2525   Password = storage_password # password for Storage daemon
2526   Device = "HP DLT 80"    # same as Device in Storage daemon
2527   Media Type = DLT8000    # same as MediaType in Storage daemon
2528 }
2529 \end{verbatim}
2530 \normalsize
2531
2532 \subsection*{The Pool Resource}
2533 \label{PoolResource}
2534 \index[general]{Resource!Pool }
2535 \index[general]{Pool Resource }
2536 \addcontentsline{toc}{subsection}{Pool Resource}
2537
2538 The Pool resource defines the set of storage Volumes (tapes or files) to be
2539 used by Bacula to write the data. By configuring different Pools, you can
2540 determine which set of Volumes (media) receives the backup data. This permits,
2541 for example, to store all full backup data on one set of Volumes and all
2542 incremental backups on another set of Volumes. Alternatively, you could assign
2543 a different set of Volumes to each machine that you backup. This is most
2544 easily done by defining multiple Pools. 
2545
2546 Another important aspect of a Pool is that it contains the default attributes
2547 (Maximum Jobs, Retention Period, Recycle flag, ...) that will be given to a
2548 Volume when it is created. This avoids the need for you to answer a large
2549 number of questions when labeling a new Volume. Each of these attributes can
2550 later be changed on a Volume by Volume basis using the {\bf update} command in
2551 the console program. Note that you must explicitly specify which Pool Bacula
2552 is to use with each Job. Bacula will not automatically search for the correct
2553 Pool. 
2554
2555 Most often in Bacula installations all backups for all machines (Clients) go
2556 to a single set of Volumes. In this case, you will probably only use the {\bf
2557 Default} Pool. If your backup strategy calls for you to mount a different tape
2558 each day, you will probably want to define a separate Pool for each day. For
2559 more information on this subject, please see the 
2560 \ilink{Backup Strategies}{_ChapterStart3} chapter of this
2561 manual. 
2562
2563 To use a Pool, there are three distinct steps. First the Pool must be defined
2564 in the Director's configuration file. Then the Pool must be written to the
2565 Catalog database. This is done automatically by the Director each time that it
2566 starts, or alternatively can be done using the {\bf create} command in the
2567 console program. Finally, if you change the Pool definition in the Director's
2568 configuration file and restart Bacula, the pool will be updated alternatively
2569 you can use the {\bf update pool} console command to refresh the database
2570 image. It is this database image rather than the Director's resource image
2571 that is used for the default Volume attributes. Note, for the pool to be
2572 automatically created or updated, it must be explicitly referenced by a Job
2573 resource. 
2574
2575 Next the physical media must be labeled. The labeling can either be done with
2576 the {\bf label} command in the {\bf console} program or using the {\bf btape}
2577 program. The preferred method is to use the {\bf label} command in the {\bf
2578 console} program. 
2579
2580 Finally, you must add Volume names (and their attributes) to the Pool. For
2581 Volumes to be used by Bacula they must be of the same {\bf Media Type} as the
2582 archive device specified for the job (i.e. if you are going to back up to a
2583 DLT device, the Pool must have DLT volumes defined since 8mm volumes cannot be
2584 mounted on a DLT drive). The {\bf Media Type} has particular importance if you
2585 are backing up to files. When running a Job, you must explicitly specify which
2586 Pool to use. Bacula will then automatically select the next Volume to use from
2587 the Pool, but it will ensure that the {\bf Media Type} of any Volume selected
2588 from the Pool is identical to that required by the Storage resource you have
2589 specified for the Job. 
2590
2591 If you use the {\bf label} command in the console program to label the
2592 Volumes, they will automatically be added to the Pool, so this last step is
2593 not normally required. 
2594
2595 It is also possible to add Volumes to the database without explicitly labeling
2596 the physical volume. This is done with the {\bf add} console command. 
2597
2598 As previously mentioned, each time Bacula starts, it scans all the Pools
2599 associated with each Catalog, and if the database record does not already
2600 exist, it will be created from the Pool Resource definition. {\bf Bacula}
2601 probably should do an {\bf update pool} if you change the Pool definition, but
2602 currently, you must do this manually using the {\bf update pool} command in
2603 the Console program. 
2604
2605 The Pool Resource defined in the Director's configuration file
2606 (bacula-dir.conf) may contain the following directives: 
2607
2608 \begin{description}
2609
2610 \item [Pool]
2611    \index[dir]{Pool }
2612    Start of the Pool resource. There must  be at least one Pool resource defined.
2613
2614
2615 \item [Name = \lt{}name\gt{}]
2616    \index[dir]{Name  }
2617    The name of the pool.  For most applications, you will use the default pool 
2618 name {\bf Default}. This directive is required.  
2619
2620 \item [Number of Volumes = \lt{}number\gt{}]
2621    \index[dir]{Number of Volumes  }
2622    This directive specifies  the number of volumes (tapes or files) contained in
2623 the pool.  Normally, it is defined and updated automatically by the  Bacula
2624 catalog handling routines. 
2625 \label{MaxVolumes}
2626
2627 \item [Maximum Volumes = \lt{}number\gt{}]
2628    \index[dir]{Maximum Volumes  }
2629    This directive specifies the  maximum number of volumes (tapes or files)
2630 contained in the pool.  This directive is optional, if omitted or set to zero,
2631 any number  of volumes will be permitted. In general, this directive is useful
2632 for Autochangers where there is a fixed number of Volumes, or  for File
2633 storage where you wish to ensure that the backups made to  disk files do not
2634 become too numerous or consume too much space.  
2635
2636 \item [Pool Type = \lt{}type\gt{}]
2637    \index[dir]{Pool Type  }
2638    This directive defines the pool  type, which corresponds to the type of Job
2639 being run. It is  required and may be one of the following:  
2640
2641 \begin{itemize}
2642 \item [Backup]  
2643 \item [*Archive]  
2644 \item [*Cloned]  
2645 \item [*Migration]  
2646 \item [*Copy]  
2647 \item [*Save]  
2648    \end{itemize}
2649
2650 \item [Use Volume Once = \lt{}yes|no\gt{}]
2651    \index[dir]{Use Volume Once  }
2652    This directive  if set to {\bf yes} specifies that each volume is to be  used
2653 only once. This is most useful when the Media is a  file and you want a new
2654 file for each backup that is  done. The default is {\bf no} (i.e. use volume
2655 any  number of times). This directive will most likely be phased out 
2656 (deprecated), so you are recommended to use {\bf Maximum Volume Jobs = 1} 
2657 instead.  
2658
2659 Please note that the value defined by this directive in the  bacula-dir.conf
2660 file is the default value used when a Volume  is created. Once the volume is
2661 created, changing the value  in the bacula-dir.conf file will not change what
2662 is stored  for the Volume. To change the value for an existing Volume  you
2663 must use the {\bf update} command in the Console.  
2664
2665 \item [Maximum Volume Jobs = \lt{}positive-integer\gt{}]
2666    \index[fd]{Maximum Volume Jobs  }
2667    This directive specifies  the maximum number of Jobs that can be written to
2668 the Volume. If  you specify zero (the default), there is no limit. Otherwise, 
2669 when the number of Jobs backed up to the Volume equals {\bf positive-integer} 
2670 the Volume will be marked {\bf Used}. When the Volume is marked  {\bf Used} it
2671 can no longer be used for appending Jobs, much like  the {\bf Full} status but
2672 it can be recycled if recycling is enabled.  By setting {\bf
2673 MaximumVolumeJobs} to one, you get the same  effect as setting {\bf
2674 UseVolumeOnce = yes}.  
2675
2676 Please note that the value defined by this directive in the  bacula-dir.conf
2677 file is the default value used when a Volume  is created. Once the volume is
2678 created, changing the value  in the bacula-dir.conf file will not change what
2679 is stored  for the Volume. To change the value for an existing Volume  you
2680 must use the {\bf update} command in the Console.  
2681
2682 \item [Maximum Volume Files = \lt{}positive-integer\gt{}]
2683    \index[fd]{Maximum Volume Files  }
2684    This directive specifies  the maximum number of files that can be written to
2685 the Volume. If  you specify zero (the default), there is no limit. Otherwise, 
2686 when the number of files written to the Volume equals {\bf positive-integer} 
2687 the Volume will be marked {\bf Used}. When the Volume is marked  {\bf Used} it
2688 can no longer be used for appending Jobs, much like  the {\bf Full} status but
2689 it can be recycled if recycling is enabled.  This value is checked and the
2690 {\bf Used} status is set only  at the end of a job that writes to the
2691 particular volume.  
2692
2693 Please note that the value defined by this directive in the  bacula-dir.conf
2694 file is the default value used when a Volume  is created. Once the volume is
2695 created, changing the value  in the bacula-dir.conf file will not change what
2696 is stored  for the Volume. To change the value for an existing Volume  you
2697 must use the {\bf update} command in the Console.  
2698
2699 \item [Maximum Volume Bytes = \lt{}size\gt{}]
2700    \index[fd]{Maximum Volume Bytes  }
2701    This directive specifies  the maximum number of bytes that can be written to
2702 the Volume. If  you specify zero (the default), there is no limit except the 
2703 physical size of the Volume. Otherwise,  when the number of bytes written to
2704 the Volume equals {\bf size}  the Volume will be marked {\bf Used}. When the
2705 Volume is marked  {\bf Used} it can no longer be used for appending Jobs, much
2706 like  the {\bf Full} status but it can be recycled if recycling is enabled. 
2707 This value is checked and the {\bf Used} status set while  the job is writing
2708 to the particular volume.  
2709
2710 Please note that the value defined by this directive in the  bacula-dir.conf
2711 file is the default value used when a Volume  is created. Once the volume is
2712 created, changing the value  in the bacula-dir.conf file will not change what
2713 is stored  for the Volume. To change the value for an existing Volume  you
2714 must use the {\bf update} command in the Console.  
2715
2716 \item [Volume Use Duration = \lt{}time-period-specification\gt{}]
2717    \index[fd]{Volume Use Duration  }
2718    The Volume Use Duration directive defines the time period that  the Volume can
2719 be written beginning from the time of first data  write to the Volume. If the
2720 time-period specified is zero (the  default), the Volume can be written
2721 indefinitely. Otherwise,  when the time period from the first write to the
2722 volume (the  first Job written) exceeds the time-period-specification, the 
2723 Volume will be marked {\bf Used}, which means that no more  Jobs can be
2724 appended to the Volume, but it may be recycled if  recycling is enabled.  
2725
2726 You might use this directive, for example, if you have a Volume  used for
2727 Incremental backups, and Volumes used for Weekly Full  backups. Once the Full
2728 backup is done, you will want to use a  different Incremental Volume. This can
2729 be accomplished by setting  the Volume Use Duration for the Incremental Volume
2730 to six days.  I.e. it will be used for the 6 days following a Full save, then 
2731 a different Incremental volume will be used.  
2732
2733 This value is checked and the {\bf Used} status is set only  at the end of a
2734 job that writes to the particular volume, which  means that even though the
2735 use duration may have expired, the  catalog entry will not be updated until
2736 the next job that  uses this volume is run.  
2737
2738 Please note that the value defined by this directive in the  bacula-dir.conf
2739 file is the default value used when a Volume  is created. Once the volume is
2740 created, changing the value  in the bacula-dir.conf file will not change what
2741 is stored  for the Volume. To change the value for an existing Volume  you
2742 must use the {\bf update} command in the Console.  
2743
2744 \item [Catalog Files = \lt{}yes|no\gt{}]
2745    \index[fd]{Catalog Files  }
2746    This directive  defines whether or not you want the names of the files  that
2747 were saved to be put into the catalog. The default  is {\bf yes}. The
2748 advantage of specifying {\bf Catalog Files = No}  is that you will have a
2749 significantly smaller Catalog database. The  disadvantage is that you will not
2750 be able to produce a Catalog listing  of the files backed up for each Job
2751 (this is often called Browsing).  Also, without the File entries in the
2752 catalog, you will not be  able to use the Console {\bf restore} command nor
2753 any other  command that references File entries.  
2754 \label{PoolAutoPrune}
2755
2756 \item [AutoPrune = \lt{}yes|no\gt{}]
2757    \index[fd]{AutoPrune  }
2758    If AutoPrune is set to  {\bf yes} (default), Bacula (version 1.20 or greater)
2759 will  automatically apply the Volume Retention period when new Volume  is
2760 needed and no appendable Volumes exist in the Pool. Volume  pruning causes
2761 expired Jobs (older than the {\bf Volume  Retention} period) to be deleted
2762 from the Catalog and permits  possible recycling of the Volume.  
2763 \label{VolRetention}
2764
2765 \item [Volume Retention = \lt{}time-period-specification\gt{}]
2766    \index[fd]{Volume Retention  }
2767    The  Volume Retention directive defines the length of time that {\bf Bacula} 
2768 will keep Job records associated with the Volume in the Catalog  database.
2769 When this time period expires, and if {\bf AutoPrune}  is set to {\bf yes}
2770 Bacula will prune (remove) Job  records that are older than the specified
2771 Volume Retention period.  All File records associated with pruned Jobs are
2772 also pruned.  The time may be specified as seconds,  minutes, hours, days,
2773 weeks, months, quarters, or years.  The {\bf Volume Retention} applied
2774 independently to the  {\bf Job Retention} and the {\bf File Retention} periods
2775 defined in the Client resource. This means that the shorter  period is the
2776 one that applies. Note, that when the  {\bf Volume Retention} period has been
2777 reached, it will  prune both the Job and the File records.  
2778
2779 The default is 365 days. Note, this directive sets the default  value for each
2780 Volume entry in the Catalog when the Volume is  created. The value in the 
2781 catalog may be later individually changed for each Volume using  the Console
2782 program.  
2783
2784 By defining multiple Pools with different Volume Retention periods,  you may
2785 effectively have a set of tapes that is recycled weekly,  another Pool of
2786 tapes that is recycled monthly and so on. However,  one must keep in mind that
2787 if your {\bf Volume Retention} period  is too short, it may prune the last
2788 valid Full backup, and hence  until the next Full backup is done, you will not
2789 have a complete  backup of your system, and in addition, the next Incremental 
2790 or Differential backup will be promoted to a Full backup. As  a consequence,
2791 the minimum {\bf Volume Retention} period should be at  twice the interval of
2792 your Full backups. This means that if you  do a Full backup once a month, the
2793 minimum Volume retention  period should be two months.  
2794
2795 Please note that the value defined by this directive in the  bacula-dir.conf
2796 file is the default value used when a Volume  is created. Once the volume is
2797 created, changing the value  in the bacula-dir.conf file will not change what
2798 is stored  for the Volume. To change the value for an existing Volume  you
2799 must use the {\bf update} command in the Console.  
2800 \label{PoolRecycle}
2801
2802 \item [Recycle = \lt{}yes|no\gt{}]
2803    \index[fd]{Recycle  }
2804    This directive specifies the  default for recycling Purged Volumes. If it is
2805 set to {\bf yes}  and Bacula needs a volume but finds none that are 
2806 appendable, it will search for Purged Volumes (i.e. volumes  with all the Jobs
2807 and Files expired and thus deleted from  the Catalog). If the Volume is
2808 recycled, all previous data  written to that Volume will be overwritten.  
2809
2810 Please note that the value defined by this directive in the  bacula-dir.conf
2811 file is the default value used when a Volume  is created. Once the volume is
2812 created, changing the value  in the bacula-dir.conf file will not change what
2813 is stored  for the Volume. To change the value for an existing Volume  you
2814 must use the {\bf update} command in the Console.  
2815 \label{RecycleOldest}
2816
2817 \item [Recycle Oldest Volume = \lt{}yes|no\gt{}]
2818    \index[fd]{Recycle Oldest Volume  }
2819    This directive  instructs the Director to search for the oldest used  Volume
2820 in the Pool when another Volume is requested by  the Storage daemon and none
2821 are available.  The catalog is then {\bf pruned} respecting the retention 
2822 periods of all Files and Jobs written to this Volume.  If all Jobs are pruned
2823 (i.e. the volume is Purged), then  the Volume is recycled and will be used as
2824 the next  Volume to be written. This directive respects any Job,  File, or
2825 Volume retention periods that you may have specified,  and as such it is {\bf
2826 much} better to use this directive  than the Purge Oldest Volume.  
2827
2828 This directive can be useful if you have  a fixed number of Volumes in the
2829 Pool and you want to  cycle through them and you have specified the correct 
2830 retention periods.  
2831 \label{RecycleCurrent}
2832
2833 \item [Recycle Current Volume = \lt{}yes|no\gt{}]
2834    \index[fd]{Recycle Current Volume  }
2835    If  Bacula needs a new Volume, this directive instructs Bacula  to Prune the
2836 volume respecting the Job and File  retention periods.  If all Jobs are pruned
2837 (i.e. the volume is Purged), then  the Volume is recycled and will be used as
2838 the next  Volume to be written. This directive respects any Job,  File, or
2839 Volume retention periods that you may have specified,  and thus it is {\bf
2840 much} better to use it rather  than the Purge Oldest Volume directive.  
2841
2842 This directive can be useful if you have:  a fixed number of Volumes in the
2843 Pool, you want to  cycle through them, and you have specified  retention
2844 periods that prune Volumes before  you have cycled through the Volume in the
2845 Pool.  
2846 \label{PurgeOldest}
2847
2848 \item [Purge Oldest Volume = \lt{}yes|no\gt{}]
2849    \index[fd]{Purge Oldest Volume  }
2850    This directive  instructs the Director to search for the oldest used  Volume
2851 in the Pool when another Volume is requested by  the Storage daemon and none
2852 are available.  The catalog is then {\bf purged} irrespective of retention 
2853 periods of all Files and Jobs written to this Volume.  The Volume is then
2854 recycled and will be used as the next  Volume to be written. This directive
2855 overrides any Job,  File, or Volume retention periods that you may have
2856 specified.  
2857
2858 This directive can be useful if you have  a fixed number of Volumes in the
2859 Pool and you want to  cycle through them and when all Volumes are full, but
2860 you don't  want to worry about setting proper retention periods. However,  by
2861 using this option you risk losing valuable data.  
2862
2863 {\bf Please be aware that {\bf Purge Oldest Volume} disregards  all retention
2864 periods.} If you have only a single Volume  defined and you turn this variable
2865 on, that Volume will always  be immediately overwritten when it fills! So at a
2866 minimum,  ensure that you have a decent number of Volumes in your Pool  before
2867 running any jobs. If you want retention periods to apply  do not use this
2868 directive. To specify a retention period,  use the {\bf Volume Retention}
2869 directive (see above).  
2870
2871 I highly recommend against using this directive, because it is  sure that some
2872 day, Bacula will recycle a Volume that contains  current data. 
2873
2874 \item [Accept Any Volume = \lt{}yes|no\gt{}]
2875    \index[fd]{Accept Any Volume  }
2876    This directive  specifies whether or not any volume from the Pool may  be used
2877 for backup. The default is {\bf yes} as of version  1.27 and later. If it is
2878 {\bf no} then only the first  writable volume in the Pool will be accepted for
2879 writing backup  data, thus Bacula will fill each Volume sequentially  in turn
2880 before using any other appendable volume in the  Pool. If this is {\bf no} and
2881 you mount a volume out  of order, Bacula will not accept it. If this  is {\bf
2882 yes} any appendable volume from the pool  mounted will be accepted.  
2883
2884 If your tape backup procedure dictates that you manually  mount the next
2885 volume, you will almost certainly want to be  sure this directive is turned
2886 on.  
2887
2888 If you are going on vacation and you think the current volume  may not have
2889 enough room on it, you can simply label a new tape  and leave it in the drive,
2890 and assuming that {\bf Accept Any Volume}  is {\bf yes} Bacula will begin
2891 writing on it. When you return  from vacation, simply remount the last tape,
2892 and Bacula will  continue writing on it until it is full. Then you can remount
2893  your vacation tape and Bacula will fill it in turn.  
2894
2895 \item [Cleaning Prefix = \lt{}string\gt{}]
2896    \index[fd]{Cleaning Prefix  }
2897    This directive defines  a prefix string, which if it matches the beginning of 
2898 a Volume name during labeling of a Volume, the Volume  will be defined with
2899 the VolStatus set to {\bf Cleaning} and  thus Bacula will never attempt to use
2900 this tape. This  is primarily for use with autochangers that accept barcodes 
2901 where the convention is that barcodes beginning with {\bf CLN}  are treated as
2902 cleaning tapes.  
2903 \label{Label}
2904
2905 \item [Label Format = \lt{}format\gt{}]
2906    \index[fd]{Label Format  }
2907    This directive specifies the  format of the labels contained in this pool. The
2908 format directive  is used as a sort of template to create new Volume names
2909 during  automatic Volume labeling.  
2910
2911 The {\bf format} should be specified in double quotes, and  consists of
2912 letters, numbers and the special characters  hyphen ({\bf -}), underscore
2913 ({\bf \_}), colon ({\bf :}), and  period ({\bf .}), which are the legal
2914 characters for a Volume  name. The {\bf format} should be enclosed in  double
2915 quotes ('').  
2916
2917 In addition, the format may contain a number of variable expansion  characters
2918 which will be expanded by a complex algorithm allowing  you to create Volume
2919 names of many different formats. In all  cases, the expansion process must
2920 resolve to the set of characters  noted above that are legal Volume names.
2921 Generally, these  variable expansion characters begin with a dollar sign ({\bf
2922 \$})  or a left bracket ({\bf [}). If you specify variable expansion 
2923 characters, you should always enclose the format with double  quote characters
2924 ({\bf ``}). For more details on variable expansion,  please see the 
2925 \ilink{Variable Expansion}{_ChapterStart50} Chapter of  this manual.  
2926
2927 If no variable expansion characters are found in the string,  the Volume name
2928 will be formed from the {\bf format} string  appended with the number of
2929 volumes in the pool plus one, which  will be edited as four digits with
2930 leading zeros. For example,  with a {\bf Label Format = ''File-``}, the first
2931 volumes will be  named {\bf File-0001}, {\bf File-0002}, ...  
2932
2933 With the exception of Job specific variables, you can test  your {\bf
2934 LabelFormat} by using the 
2935 \ilink{ var command}{var} the Console Chapter of this manual.  
2936
2937 In almost all cases, you should enclose the format specification  (part after
2938 the equal sign) in double quotes.  
2939 \end{description}
2940
2941 In order for a Pool to be used during a Backup Job, the Pool must have at
2942 least one Volume associated with it. Volumes are created for a Pool using the
2943 {\bf label} or the {\bf add} commands in the {\bf Bacula Console}, program. In
2944 addition to adding Volumes to the Pool (i.e. putting the Volume names in the
2945 Catalog database), the physical Volume must be labeled with valid Bacula
2946 software volume label before {\bf Bacula} will accept the Volume. This will be
2947 automatically done if you use the {\bf label} command. Bacula can
2948 automatically label Volumes if instructed to do so, but this feature is not
2949 yet fully implemented. 
2950
2951 The following is an example of a valid Pool resource definition: 
2952
2953 \footnotesize
2954 \begin{verbatim}
2955  
2956 Pool {
2957   Name = Default
2958   Pool Type = Backup
2959 }
2960 \end{verbatim}
2961 \normalsize
2962
2963 \subection*{The Catalog Resource}
2964 \label{CatalogResource}
2965 \index[general]{Resource!Catalog }
2966 \index[general]{Catalog Resource }
2967 \addcontentsline{toc}{subsection}{Catalog Resource}
2968
2969 The Catalog Resource defines what catalog to use for the current job.
2970 Currently, Bacula can only handle a single database server (SQLite, MySQL,
2971 built-in) that is defined when configuring {\bf Bacula}. However, there may be
2972 as many Catalogs (databases) defined as you wish. For example, you may want
2973 each Client to have its own Catalog database, or you may want backup jobs to
2974 use one database and verify or restore jobs to use another database. 
2975
2976 \begin{description}
2977
2978 \item [Catalog]
2979    \index[console]{Catalog }
2980    Start of the Catalog resource.  At least one Catalog resource must be defined.
2981
2982
2983 \item [Name = \lt{}name\gt{}]
2984    \index[console]{Name  }
2985    The name of the Catalog. No  necessary relation to the database server name.
2986 This name  will be specified in the Client resource directive indicating  that
2987 all catalog data for that Client is maintained in this  Catalog. This
2988 directive is required.  
2989
2990 \item [password = \lt{}password\gt{}]
2991    \index[console]{password  }
2992    This specifies the password  to use when logging into the database. This
2993 directive is required.  
2994
2995 \item [DB Name = \lt{}name\gt{}]
2996    \index[console]{DB Name  }
2997    This specifies the name of the  database. If you use multiple catalogs
2998 (databases), you specify  which one here. If you are using an external
2999 database server  rather than the internal one, you must specify a name that 
3000 is known to the server (i.e. you explicitly created the  Bacula tables using
3001 this name. This directive is  required. 
3002
3003 \item [user = \lt{}user\gt{}]
3004    \index[console]{user  }
3005    This specifies what user name  to use to log into the database. This directive
3006 is required.  
3007
3008 \item [DB Socket = \lt{}socket-name\gt{}]
3009    \index[console]{DB Socket  }
3010    This is the name of  a socket to use on the local host to connect to the
3011 database.  This directive is used only by MySQL and is ignored by  SQLite.
3012 Normally, if neither {\bf DB Socket} or {\bf DB Address}  are specified, MySQL
3013 will use the default socket.  
3014
3015 \item [DB Address = \lt{}address\gt{}]
3016    \index[console]{DB Address  }
3017    This is the host address  of the database server. Normally, you would specify
3018 this instead  of {\bf DB Socket} if the database server is on another machine.
3019 In that case, you will also specify {\bf DB Port}. This directive  is used
3020 only by MySQL and is ignored by SQLite if provided.  This directive is
3021 optional.  
3022
3023 \item [DB Port = \lt{}port\gt{}]
3024    \index[console]{DB Port  }
3025    This defines the port to  be used in conjunction with {\bf DB Address} to
3026 access the  database if it is on another machine. This directive is used  only
3027 by MySQL and is ignored by SQLite if provided. This  directive is optional.  
3028
3029 \item [Multiple Connections = \lt{}yes|no\gt{}]
3030    \index[console]{Multiple Connections  }
3031    By default, this  directive is set to no. In that case, each job that uses the
3032 same Catalog will use a single connection to the catalog. It will  be shared,
3033 and Bacula will allow only one Job at a time to  communicate. If you set this
3034 directive to yes, Bacula will  permit multiple connections to the database,
3035 and the database  must be multi-thread capable. For SQLite and PostgreSQL,
3036 this is  no problem. For MySQL, you must be *very* careful to have the 
3037 multi-thread version of the client library loaded on your system.  When this
3038 directive is set yes, each Job will have a separate  connection to the
3039 database, and the database will control the  interaction between the different
3040 Jobs. This can significantly  speed up the database operations if you are
3041 running multiple  simultaneous jobs. In addition, for SQLite and PostgreSQL,
3042 Bacula  will automatically enable transactions. This can significantly  speed
3043 up insertion of attributes in the database either for  a single Job or
3044 multiple simultaneous Jobs.  
3045
3046 This directive has not been tested. Please test carefully  before running it
3047 in production and report back your results.  
3048 \end{description}
3049
3050 The following is an example of a valid Catalog resource definition: 
3051
3052 \footnotesize
3053 \begin{verbatim}
3054 Catalog
3055 {
3056   Name = SQLite
3057   dbname = bacula;
3058   user = bacula;
3059   password = ""                       # no password = no security
3060 }
3061 \end{verbatim}
3062 \normalsize
3063
3064 or for a Catalog on another machine: 
3065
3066 \footnotesize
3067 \begin{verbatim}
3068 Catalog
3069 {
3070   Name = MySQL
3071   dbname = bacula
3072   user = bacula
3073   password = ""
3074   DB Address = remote.acme.com
3075   DB Port = 1234
3076 }
3077 \end{verbatim}
3078 \normalsize
3079
3080 \subection*{The Messages Resource}
3081 \label{MessagesResource2}
3082 \index[general]{Resource!Messages }
3083 \index[general]{Messages Resource }
3084 \addcontentsline{toc}{subsection}{Messages Resource}
3085
3086 For the details of the Messages Resource, please see the 
3087 \ilink{Messages Resource Chapter}{_ChapterStart15} of this
3088 manual. 
3089
3090 \subsection*{The Console Resource}
3091 \label{ConsoleResource1}
3092 \index[general]{Console Resource }
3093 \index[general]{Resource!Console }
3094 \addcontentsline{toc}{subsection}{Console Resource}
3095
3096 As of Bacula version 1.33 and higher, there are three different kinds of
3097 consoles, which the administrator or user can use to interact with the
3098 Director. These three kinds of consoles comprise three different security
3099 levels. 
3100
3101 \begin{itemize}
3102 \item The first console type is an {\bf anonymous} or {\bf default}  console,
3103    which  has full privileges. There is no console resource necessary  for this
3104    type since the password is specified in the Director's  resource and
3105 consequently such consoles do not have an  name as defined on a {\bf Name =}
3106 directive. This is the kind of  console that was initially implemented in
3107 versions prior to 1.33  and remains valid. Typically you would use it only for
3108  administrators.  
3109 \item The second type of console, and new to version 1.33 and  higher is a
3110    ''named`` console defined within  a Console resource in both the Director's
3111    configuration file and in  the Console's configuration file. Both the names
3112 and the passwords  in these two entries must match much as is the case for 
3113 Client programs.  
3114
3115 This second type of console begins with absolutely no  privileges except those
3116 explicitly specified in the Director's  Console resource. Thus you can have
3117 multiple Consoles with  different names and passwords, sort of like multiple
3118 users, each  with different privileges. As a  default, these consoles can do
3119 absolutely nothing -- no commands  what so ever. You give them privileges or
3120 rather access  to commands and resources by specifying access  control lists
3121 in the Director's Console resource. The ACLs are  specified by a directive
3122 followed by a list of access names.  Examples of this are shown below.  
3123 \item The third type of console is similar to the above mentioned  one in that
3124    it requires a Console resource definition in both  the Director and the
3125    Console. In addition, if the console name,  provided on the {\bf Name =}
3126 directive, is the same as a Client  name, that console is permitted to use the
3127 {\bf SetIP}  command to change the Address directive in the  Director's client
3128 resource to the IP address of the Console. This  permits portables or other
3129 machines using DHCP (non-fixed IP addresses)  to ''notify`` the Director of
3130 their current IP address.  
3131 \end{itemize}
3132
3133 The Console resource is optional and need not be specified. The following
3134 directives are permited within the Director's configuration resource: 
3135
3136 \begin{description}
3137
3138 \item [Name = \lt{}name\gt{}]
3139    \index[console]{Name  }
3140    The name of the console. This  name must match the name specified in the
3141 Console's configuration  resource (much as is the case with Client
3142 definitions).  
3143
3144 \item [Password = \lt{}password\gt{}]
3145    \index[console]{Password  }
3146    Specifies the password that  must be supplied for a named Bacula Console to be
3147 authorized. The same  password must appear in the {\bf Console} resource of
3148 the Console  configuration file. For added security, the password is never 
3149 actually passed across the network but rather a challenge response  hash code
3150 created with the password. This directive is required.  If you have either
3151 {\bf /dev/random}  {\bf bc} on your machine, Bacula will generate a random 
3152 password during the configuration process, otherwise it will  be left blank. 
3153
3154 \item [JobACL = \lt{}name-list\gt{}]
3155    \index[console]{JobACL  }
3156    This directive is used to  specify a list of Job resource names that can be
3157 accessed by  the console. Without this directive, the console cannot access 
3158 any of the Director's Job resources. Multiple Job resource names  may be
3159 specified by separating them with commas, and/or by specifying  multiple
3160 JobACL directives. For example, the directive  may be specified as:  
3161
3162 \footnotesize
3163 \begin{verbatim}
3164     JobACL = kernsave, "Backup client 1", "Backup client 2"
3165     JobACL = "RestoreFiles"
3166     
3167 \end{verbatim}
3168 \normalsize
3169
3170 With the above specification, the console can access the Director's  resources
3171 for the four jobs named on the JobACL directives,  but for no others.  
3172
3173 \item [ClientACL = \lt{}name-list\gt{}]
3174    \index[console]{ClientACL  }
3175    This directive is used to  specify a list of Client resource names that can be
3176 accessed by  the console.  
3177
3178 \item [StorageACL = \lt{}name-list\gt{}]
3179    \index[console]{StorageACL  }
3180    This directive is used to  specify a list of Storage resource names that can
3181 be accessed by  the console.  
3182
3183 \item [ScheduleACL = \lt{}name-list\gt{}]
3184    \index[console]{ScheduleACL  }
3185    This directive is used to  specify a list of Schedule resource names that can
3186 be accessed by  the console.  
3187
3188 \item [PoolACL = \lt{}name-list\gt{}]
3189    \index[console]{PoolACL  }
3190    This directive is used to  specify a list of Pool resource names that can be
3191 accessed by  the console.  
3192
3193 \item [FileSetACL = \lt{}name-list\gt{}]
3194    \index[console]{FileSetACL  }
3195    This directive is used to  specify a list of FileSet resource names that can
3196 be accessed by  the console.  
3197
3198 \item [CatalogACL = \lt{}name-list\gt{}]
3199    \index[console]{CatalogACL  }
3200    This directive is used to  specify a list of Catalog resource names that can
3201 be accessed by  the console.  
3202
3203 \item [CommandACL = \lt{}name-list\gt{}]
3204    \index[console]{CommandACL  }
3205    This directive is used to  specify a list of of console commands that can be
3206 executed by  the console. 
3207 \end{description}
3208
3209 Aside from Director resource names and console command names, the special
3210 keyword {\bf *all*} can be specified in any of the above access control lists.
3211 When this keyword is present, any resource or command name (which ever is
3212 appropriate) will be accepted. For an example configuration file, please see
3213 the 
3214 \ilink{Console Configuration}{_ChapterStart36} chapter of this
3215 manual. 
3216
3217 \subsection*{The Counter Resource}
3218 \label{CounterResource}
3219 \index[general]{Resource!Counter }
3220 \index[general]{Counter Resource }
3221 \addcontentsline{toc}{subsection}{Counter Resource}
3222
3223 The Counter Resource defines a counter variable that can be accessed by
3224 variable expansion used for creating Volume labels with the {\bf LabelFormat}
3225 directive. See the 
3226 \ilink{LabelFormat}{Label} directive in this chapter for more
3227 details. 
3228
3229 \begin{description}
3230
3231 \item [Counter]
3232    \index[console]{Counter }
3233    Start of the Counter resource.  Counter directives are optional. 
3234
3235 \item [Name = \lt{}name\gt{}]
3236    \index[console]{Name  }
3237    The name of the Counter.  This is the name you will use in the variable
3238 expansion  to reference the counter value.  
3239
3240 \item [Minimum = \lt{}integer\gt{}]
3241    \index[console]{Minimum  }
3242    This specifies the minimum  value that the counter can have. It also becomes
3243 the default.  If not supplied, zero is assumed.  
3244
3245 \item [Maximum = \lt{}integer\gt{}]
3246    \index[console]{Maximum  }
3247    This is the maximum value  value that the counter can have. If not specified
3248 or set to  zero, the counter can have a maximum value of 2,147,483,648  (2 to
3249 the 31 power). When the counter is incremented past  this value, it is reset
3250 to the Minimum.  
3251
3252 \item [*WrapCounter = \lt{}counter-name\gt{}]
3253    \index[console]{*WrapCounter  }
3254    If this value  is specified, when the counter is incremented past the maximum 
3255 and thus reset to the minimum, the counter specified on the  {\bf WrapCounter}
3256 is incremented. (This is not currently  implemented). 
3257
3258 \item [Catalog = \lt{}catalog-name\gt{}]
3259    \index[console]{Catalog  }
3260    If this directive is  specified, the counter and its values will be saved in 
3261 the specified catalog. If this directive is not present, the  counter will be
3262 redefined each time that Bacula is started. 
3263 \end{description}
3264
3265 \subsection*{ A Complete Example Director Configuration File}
3266 \label{SampleDirectorConfiguration}
3267 \index[general]{File!Complete Example Director Configuration }
3268 \index[general]{Complete Example Director Configuration File }
3269 \addcontentsline{toc}{subsection}{Complete Example Director Configuration File}
3270
3271 An example Director configuration file might be the following: 
3272
3273 \footnotesize
3274 \begin{verbatim}
3275 #
3276 # Default Bacula Director Configuration file
3277 #
3278 #  The only thing that MUST be changed is to add one or more
3279 #   file or directory names in the Include directive of the
3280 #   FileSet resource.
3281 #
3282 #  For Bacula release 1.15 (5 March 2002) -- redhat
3283 #
3284 #  You might also want to change the default email address
3285 #   from root to your address.  See the "mail" and "operator"
3286 #   directives in the Messages resource.
3287 #
3288 Director {                            # define myself
3289   Name = rufus-dir
3290   QueryFile = "/home/kern/bacula/bin/query.sql"
3291   WorkingDirectory = "/home/kern/bacula/bin/working"
3292   PidDirectory = "/home/kern/bacula/bin/working"
3293   Password = "XkSfzu/Cf/wX4L8Zh4G4/yhCbpLcz3YVdmVoQvU3EyF/"
3294 }
3295 # Define the backup Job
3296 Job {
3297   Name = "NightlySave"
3298   Type = Backup
3299   Level = Incremental                 # default
3300   Client=rufus-fd
3301   FileSet="Full Set"
3302   Schedule = "WeeklyCycle"
3303   Storage = DLTDrive
3304   Messages = Standard
3305   Pool = Default
3306 }
3307 Job {
3308   Name = "Restore"
3309   Type = Restore
3310   Client=rufus-fd
3311   FileSet="Full Set"
3312   Where = /tmp/bacula-restores
3313   Storage = DLTDrive
3314   Messages = Standard
3315   Pool = Default
3316 }
3317    
3318 # List of files to be backed up
3319 FileSet {
3320   Name = "Full Set"
3321   Include {
3322     Options { signature=SHA1 }
3323 #
3324 #  Put your list of files here, one per line or include an
3325 #    external list with:
3326 #
3327 #    @file-name
3328 #
3329 #  Note: / backs up everything
3330   File = /
3331   }
3332   Exclude { }
3333 }
3334 # When to do the backups
3335 Schedule {
3336   Name = "WeeklyCycle"
3337   Run = Full sun at 1:05
3338   Run = Incremental mon-sat at 1:05
3339 }
3340 # Client (File Services) to backup
3341 Client {
3342   Name = rufus-fd
3343   Address = rufus
3344   Catalog = MyCatalog
3345   Password = "MQk6lVinz4GG2hdIZk1dsKE/LxMZGo6znMHiD7t7vzF+"
3346   File Retention = 60d      # sixty day file retention
3347   Job Retention = 1y        # 1 year Job retention
3348   AutoPrune = yes           # Auto apply retention periods
3349 }
3350 # Definition of DLT tape storage device
3351 Storage {
3352   Name = DLTDrive
3353   Address = rufus
3354   Password = "jMeWZvfikUHvt3kzKVVPpQ0ccmV6emPnF2cPYFdhLApQ"
3355   Device = "HP DLT 80"      # same as Device in Storage daemon
3356   Media Type = DLT8000      # same as MediaType in Storage daemon
3357 }
3358 # Definition of DDS tape storage device
3359 Storage {
3360   Name = SDT-10000
3361   Address = rufus
3362   Password = "jMeWZvfikUHvt3kzKVVPpQ0ccmV6emPnF2cPYFdhLApQ"
3363   Device = SDT-10000        # same as Device in Storage daemon
3364   Media Type = DDS-4        # same as MediaType in Storage daemon
3365 }
3366 # Definition of 8mm tape storage device
3367 Storage {
3368   Name = "8mmDrive"
3369   Address = rufus
3370   Password = "jMeWZvfikUHvt3kzKVVPpQ0ccmV6emPnF2cPYFdhLApQ"
3371   Device = "Exabyte 8mm"
3372   MediaType = "8mm"
3373 }
3374 # Definition of file storage device
3375 Storage {
3376   Name = File
3377   Address = rufus
3378   Password = "jMeWZvfikUHvt3kzKVVPpQ0ccmV6emPnF2cPYFdhLApQ"
3379   Device = FileStorage
3380   Media Type = File
3381 }
3382 # Generic catalog service
3383 Catalog {
3384   Name = MyCatalog
3385   dbname = bacula; user = bacula; password = ""
3386 }
3387 # Reasonable message delivery -- send most everything to
3388 #   the email address and to the console
3389 Messages {
3390   Name = Standard
3391   mail = root@localhost = all, !skipped, !terminate
3392   operator = root@localhost = mount
3393   console = all, !skipped, !saved
3394 }
3395     
3396 # Default pool definition
3397 Pool {
3398   Name = Default
3399   Pool Type = Backup
3400   AutoPrune = yes
3401   Recycle = yes
3402 }
3403 #
3404 # Restricted console used by tray-monitor to get the status of the director
3405 #
3406 Console {
3407   Name = Monitor
3408   Password = "GN0uRo7PTUmlMbqrJ2Gr1p0fk0HQJTxwnFyE4WSST3MWZseR"
3409   CommandACL = status, .status
3410 }
3411 \end{verbatim}
3412 \normalsize