]> git.sur5r.net Git - bacula/docs/blob - docs/manual-fr/dirdconf.tex
00351ec66841044a6d77c765fcb8430c80015eaf
[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 du fichier 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 Notez que deux barres obliques \textbackslash{} sont requises après les doubles quotes 
1860 (l'une préserve l'autre). Si vous utilisez Linux, changez simplement {\bf ufs} en {\bf ext3} 
1861 (ou votre système de fichiers préféré) et l'affaire sera dans le sac.
1862
1863 \item Tout Ã©lément de la liste de fichiers file-list précédé par un signe "inférieur" (\lt{}) 
1864 est interprété comme un fichier qui sera lu sur la machine qui héberge le Director 
1865 au moment où le job démarre. Son contenu est supposé Ãªtre une liste de répertoires ou 
1866 fichiers, un par ligne, Ã  inclure dans la sauvegarde. Les noms ne doivent pas Ãªtre quotés, même 
1867 s'ils comportent des espaces. Cette fonction vous permet de modifier le fichier externe, 
1868 et ainsi ce qui est sauvegardé sans avoir Ã  redémarrer Bacula comme il le faudrait avec 
1869 le modificateur @ décrit plus haut.
1870
1871 Si vous précédez le signe "inférieur" (\lt{}) d'une barre oblique \textbackslash{}\lt{}, le 
1872 fichier mentionné sera lu sur la machine cliente au lieu de celle hébergeant le Director. 
1873 Veullez noter que si le nom de fichier est donné entre quotes, il vous faudra utiliser deux 
1874 barres obliques.
1875
1876 \item Si vous spécifiez explicitement un block device (NDT ?) tel que {\bf /dev/hda1}, alors 
1877 Bacula considèrera ceci comme une partition raw Ã  sauvegarder. Dans ce cas, vous Ãªtes 
1878 fortement invité Ã  utiliser l'option {\bf sparse=yes}, faute de quoi vous sauvegarderez 
1879 la partition entière plutôt que seulement les données réellement contenues dans la 
1880 partition. Par exemple :
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 va sauvegarder les données de la partition /dev/hd6.
1892
1893 will backup the data in device /dev/hd6.  
1894
1895 Ludovic Strappazon a fait remarquer que cette fonction pouvait servir Ã  sauvegarder 
1896 un disque Microsoft Windows. Il suffit de booter avec un Linux Rescue Disk, puis de 
1897 charger un client Bacula statiquement lié comme décrit dans le chapitre 
1898 link{ Disaster Recovery avec Bacula}{_ChapterStart38} de ce manuel. Sauvegardez alors 
1899 la partition complète. En cas de désastre, vous pouvez alors restaurer la partition 
1900 désirée en bootant une fois encore sur le Linux Rescue Disk et en utilisant le 
1901 client Bacula  statiquement lié.
1902
1903
1904 \item Si vous spécifiez explicitement un périphérique FIFO nommé (créé avec mkfifo), 
1905 ets si vous ajoutez l'option {\bf readfifo=yes}, Bacula lira le FIFO et sauvegardera ses 
1906 données sur le volume. Par exemple :
1907
1908 \footnotesize
1909 \begin{verbatim}
1910 Include {
1911   Options {
1912     signature=SHA1
1913     readfifo=yes
1914   }
1915   File = /home/abc/fifo
1916 }
1917 \end{verbatim}
1918 \normalsize
1919
1920 si {\bf /home/abc/fifo} est un FIFO, Bacula va l'ouvrir, le lire, et stocker 
1921 toutes les données ainsi obtenues sur le volume. Notez qu'il faut que vous ayez 
1922 un processus qui Ã©crit sur le FIFO, faute de quoi Bacula restera en suspens, et 
1923 abandonnera au bout d'une minute pour passer au fichier suivant. Les données 
1924 lues peuvent Ãªtre de nature quelconque puisque Bacula les traite comme un flux.
1925
1926 Cette fonction est un excellent moyen de faire une sauvegarde "à chaud" d'une 
1927 très grosse base de données. Vous pouvez utiliser la directive {\bf RunBeforeJob} 
1928 pour créer le FIFO et démarrer un programme qui lit dynamiquement votre base de 
1929 données et l'écrit sur le FIFO. Bacula l'écrira alors sur le volume.
1930
1931 Lors de l'opération de restauration, l'inverse se produit : après que Bacula ait créé 
1932 le FIFO, s'il y avait des données stockées par son biais (inutile de les lister 
1933 explicitement ni d'ajouter aucune option), elles seront renvoyées vers le FIFO. 
1934 Par conséquent, s'il existe un tel FIFO Ã  restaurer, vous devez vous assurer 
1935 qu'il y a un programme lecteur ou Bacula se bloquera et passera au fichier suivant 
1936 après une minute.
1937
1938 \end{itemize}
1939
1940 \end{description}
1941
1942 Voici un exemple de définition de ressource FileSet valide. Notez que le premier 
1943 Include 
1944
1945 The following is an example of a valid FileSet resource definition. Note, the
1946 first Include insère le contenu du fichier {\bf /etc/backup.list} lors du démarrage 
1947 de when Bacula (i.e. le @). 
1948
1949 \footnotesize
1950 \begin{verbatim}
1951 FileSet {
1952   Name = "Full Set"
1953   Include {
1954     Options {
1955       Compression=GZIP
1956       signature=SHA1
1957       Sparse = yes
1958     }
1959     File = @/etc/backup.list
1960   }
1961   Include {
1962      Options {
1963         wild = *.o
1964         Exclude = yes
1965      }
1966      File = /root/myfile
1967      File = /usr/lib/another_file
1968   }
1969 }
1970 \end{verbatim}
1971 \normalsize
1972
1973 Notez que dans l'exemple ci-dessus, tous les fichiers mentionnés dans 
1974 /etc/backup.list seront compressé avec GZIP, qu'une signature SHA1 sera 
1975 calculée sur le contenu des fichiers (leurs données), et que la prise en 
1976 charge particulière des fichiers clairsemés (sparse) s'appliquera.
1977
1978 Les deux répertoires /root/myfile et /usr/lib/another\_file seront aussi 
1979 sauvegardés sans aucune option, mais tous les fichiers Ã  extension  {\bf .o} 
1980 de ces répertoires seront exlus de la sauvegarde.  
1981
1982 Supposons que vous vouliez sauvegarder tout sauf {\bf /tmp} sur votre système.
1983 La commande {\bf df} vous fournit le résultat suivant :
1984
1985 \footnotesize
1986 \begin{verbatim}
1987 [kern@rufus k]$ df
1988 Filesystem      1k-blocks      Used Available Use% Mounted on
1989 /dev/hda5         5044156    439232   4348692  10% /
1990 /dev/hda1           62193      4935     54047   9% /boot
1991 /dev/hda9        20161172   5524660  13612372  29% /home
1992 /dev/hda2           62217      6843     52161  12% /rescue
1993 /dev/hda8         5044156     42548   4745376   1% /tmp
1994 /dev/hda6         5044156   2613132   2174792  55% /usr
1995 none               127708         0    127708   0% /dev/shm
1996 //minimatou/c$   14099200   9895424   4203776  71% /mnt/mmatou
1997 lmatou:/          1554264    215884   1258056  15% /mnt/matou
1998 lmatou:/home      2478140   1589952    760072  68% /mnt/matou/home
1999 lmatou:/usr       1981000   1199960    678628  64% /mnt/matou/usr
2000 lpmatou:/          995116    484112    459596  52% /mnt/pmatou
2001 lpmatou:/home    19222656   2787880  15458228  16% /mnt/pmatou/home
2002 lpmatou:/usr      2478140   2038764    311260  87% /mnt/pmatou/usr
2003 deuter:/          4806936     97684   4465064   3% /mnt/deuter
2004 deuter:/home      4806904    280100   4282620   7% /mnt/deuter/home
2005 deuter:/files    44133352  27652876  14238608  67% /mnt/deuter/files
2006 \end{verbatim}
2007 \normalsize
2008
2009 Si vous vous contentez de spécifier {\bf /} dans votre liste d'inclusions, 
2010 Bacula ne sauvegardera que le système de fichiers {\bf /dev/hda5}. Pour 
2011 sauvegarder tous vos systèmes de fichiers sans inclure les systèmes de fichiers 
2012 montés Samba ou NFS et en excluant /tmp, /proc, .journal, et .autofsck, que 
2013 vous ne voulez ni sauvegarder ni restaurer, vous pouvez utiliser ce qui suit :
2014
2015 \footnotesize
2016 \begin{verbatim}
2017 FileSet {
2018   Name = Include_example
2019   Include {
2020     Options {
2021        wild = /proc
2022        wild = /tmp
2023        wild = \.journal
2024        wild = \.autofsck
2025        exclude = yes
2026     }
2027     File = /
2028     File = /boot
2029     File = /home
2030     File = /rescue
2031     File = /usr
2032   }
2033 }
2034 \end{verbatim}
2035 \normalsize
2036
2037 /tmp Ã©tant sur son propre système de fichiers et n'étant pas explicitement nommé 
2038 dans la liste d'inclusion, il n'est pas nécessaire de le spécifier dans la liste 
2039 d'exclusion. Cependant, il peut Ãªtre préférable de le faire malgré tout par 
2040 souci de clarté et au cas où il ne serait plus sur sa propre partition après un 
2041 remplacement de disques.
2042
2043 Ayez conscience qu'il peut Ãªtre {\bf très} dangereux de permettre Ã  Bacula de traverser ou 
2044 changer de système de fichiers au gré des ppoints de montage. Par exemple, avec ce qui suit : 
2045
2046 \footnotesize
2047 \begin{verbatim}
2048 FileSet {
2049   Name = "Bad example"
2050   Include {
2051     Options { onefs=no }
2052     File = /mnt/matou
2053   }
2054 }
2055 \end{verbatim}
2056 \normalsize
2057
2058 vous sauvegardez une partition NFS montée ({\bf /mnt/matou}), et puisque 
2059 {\bf onefs} est désactivée, Bacula traverse les systèmes de fichiers. 
2060 Si jamais {\bf /mnt/matou} contient lui même un point de montage où le système 
2061 de fichiers de la machine sauvegardée est monté, ce qui est souvent le cas, 
2062 vous vous retrouvez pris dans un boucle récursive, et la sauvegarde ne se 
2063 terminera jamais.
2064
2065 Le FileSet suivant sauvegarde une partition raw :
2066
2067 \footnotesize
2068 \begin{verbatim}
2069 FileSet {
2070   Name = "RawPartition"
2071   Include {
2072     Options { sparse=yes }
2073     File = /dev/hda2
2074   }
2075 }
2076 \end{verbatim}
2077 \normalsize
2078
2079 Lorsque vous sauvegardez et restaurez une partition raw, vous devriez vous 
2080 assurer qu'aucun autre processus, y compris le système, n'écrit sur cette 
2081 partition. En guise de précaution, nous recommandons ardemment de ne sauvegarder 
2082 en mode raw que des partitions non montées, ou montées en lecture seule. Ceci peut 
2083 être fait si nécessaire avec la directive {\bf RunBeforeJob}.
2084
2085 \label{win32}
2086
2087 \subsection*{Considérations sur les FileSets Windows}
2088 \index[general]{FileSets!Windows Considerations for }
2089 \index[general]{Windows Considerations for FileSets }
2090 \addcontentsline{toc}{subsection}{Windows Considerations for FileSets}
2091
2092 Si vous saisissez des noms de fichiers Windows, les chemins des répertoires devraient 
2093 être précédés de double-points (comme dans "c:"). Cependant, les séparateurs de 
2094 champs doivent Ãªtre spécifiés selon la convention Unix (c'est Ã  dire, la barre oblique 
2095 avant : "/"). Si vous souhaitez inclure une apostrophe dans un nom de fichier, précédez-la 
2096 d'une barre oblique arrière (\textbackslash{}\textbackslash{}). Par exemple, vous pourriez 
2097 utiliser ce qui suit pour sauvegarder le répertoire "My Documents" d'une machine Windows :
2098
2099 \footnotesize
2100 \begin{verbatim}
2101 FileSet {
2102   Name = "Windows Set"
2103   Include {
2104     Options {
2105        wild = *.obj
2106        wild = *.exe
2107        exclude = yes
2108      }
2109      File = "c:/My Documents"
2110   }
2111 }
2112 \end{verbatim}
2113 \normalsize
2114
2115 Pour que les listes d'exclusion fonctionnent correctement sous Windows, vous devez 
2116 observer les règles suivante :
2117
2118 \begin{itemize}
2119 \item les noms de fichiers sont sensibles Ã  la casse, aussi vous devez utilise la 
2120 casse correcte ;
2121 \item vous ne devez pas spécifier de barre oblique finale pour exclure un répertoire ;
2122 \item si vos noms de fichiers comportent des espaces, vous devez les encadrer de 
2123 quillemets. Les barres obliques arrières (\textbackslash{}\textbackslash{}) ne 
2124 fonctionnent pas ;
2125 \item si vous utilisez l'ancienne syntaxe des listes d'exclusion (mentionnée ci-dessous), 
2126 vous ne devriez pas spécifier la lettre référençant le disque dans une liste d'exclusion. 
2127 La nouvelle syntaxe décrite ci-dessus devrait fonctionner correctement en incluant la lettre 
2128 du disque.
2129 \end{itemize}
2130
2131 Merci Ã  Thiago Lima pour nous avoir résumé les points ci-dessus. Si vous rencontrez 
2132 des difficultés pour faire fonctionner vos listes d'inclusion ou d'exclusion, 
2133 songez Ã  utiliser la commande {\bf estimate job=xxx listing} documentée 
2134 dans le chapitre \ilink{Console chapter}{estimate} de ce manuel.
2135
2136 Sur les systèmes Win32, si vous déplacez un répertoire ou si vous renommez 
2137 un fichier de la liste Ã  sauvegarder, et si une Full a déjà eu lieu, Bacula 
2138 ne saura reconnaître qu'il existe de nouveaux fichiers Ã  sauvegarder lors d'une 
2139 incrémentale ou d'une différentielle (faites-en le reproche Ã  Microsoft, pas Ã  moi !). 
2140 Pour pallier Ã  ce problème, veuillez copier tout répertoire ou fichier de la 
2141 zone sauvegardée. Si vous ne disposez pas de suffisamment d'espace disque, 
2142 déplacez-les, mais lancez alors une sauvegarde Full.
2143
2144 \subsubsection*{Exclusion de fichiers et répertoires}
2145 \index[general]{Directories!Excluding Files and }
2146 \index[general]{Excluding Files and Directories }
2147 \addcontentsline{toc}{subsubsection}{Exclusion de fichiers et répertoires}
2148
2149 Vous pouvez aussi inclure des noms de fichiers ou chemins absolus, en plus 
2150 de l'utilisation de caractères jokers et de la directive {\bf Exclude=yes} dans 
2151 les ressources Options comme exposé ci-dessus, en ajoutant simplement 
2152 les fichiers Ã  exclure dans une ressource Exclude du FileSet. Par exemple :
2153
2154 \footnotesize
2155 \begin{verbatim}
2156 FileSet {
2157   Name = Exclusion_example
2158   Include {
2159     Options {
2160       Signature = SHA1
2161     }
2162     File = /
2163     File = /boot
2164     File = /home
2165     File = /rescue
2166     File = /usr
2167   }
2168   Exclude {
2169     File = /proc
2170     File = /tmp
2171     File = .journal
2172     File = .autofsck
2173   }
2174 }
2175 \end{verbatim}
2176 \normalsize
2177
2178 \subsection*{Un exemple de FileSet Windows}
2179 \index[general]{FileSet!Windows Example }
2180 \index[general]{Un exemple de FileSet Windows}
2181 \addcontentsline{toc}{subsection}{Un exemple de FileSet Windows}
2182
2183 Cet exemple est une contribution de Phil Stracchino :
2184
2185 \footnotesize
2186 \begin{verbatim}
2187 This is my Windows 2000 fileset:
2188 FileSet {
2189   Name = "Windows 2000 Full Set"
2190   Include {
2191     Options {
2192        signature=MD5
2193     }
2194     File = c:/
2195   }
2196   Exclude {
2197 # Most of these files are excluded not because we don't want
2198 #  them, but because Win2K won't allow them to be backed up
2199 #  except via proprietary Win32 API calls.
2200     File = "/Documents and Settings/*/Application Data/*/Profiles/
2201            */*/Cache/*"
2202     File = "/Documents and Settings/*/Local Settings/Application Data/
2203            Microsoft/Windows/[Uu][Ss][Rr][Cc][Ll][Aa][Ss][Ss].*"
2204     File = "/Documents and Settings/*/[Nn][Tt][Uu][Ss][Ee][Rr].*"
2205     File = "/Documents and Settings/*/Cookies/*"
2206     File = "/Documents and Settings/*/Local Settings/History/*"
2207     File = "/Documents and Settings/*/Local Settings/
2208            Temporary Internet Files/*"
2209     File = "/Documents and Settings/*/Local Settings/Temp/*"
2210     File = "/WINNT/CSC"
2211     File = "/WINNT/security/logs/scepol.log"
2212     File = "/WINNT/system32/config/*"
2213     File = "/WINNT/msdownld.tmp/*"
2214     File = "/WINNT/Internet Logs/*"
2215     File = "/WINNT/$Nt*Uninstall*"
2216     File = "/WINNT/Temp/*"
2217     File = "/temp/*"
2218     File = "/tmp/*"
2219     File = "/pagefile.sys"
2220   }
2221 }
2222 \end{verbatim}
2223 \normalsize
2224
2225 Remarque : les trois lignes coupées de cette liste d'exclusion ne l'ont Ã©té 
2226 que pour des motifs de mise en page, elles doivent en réalité Ãªtre Ã©crites 
2227 sur une seule ligne.
2228
2229 \subsection*{L'ancienne ressource FileSet}
2230 \index[general]{Resource!Old FileSet }
2231 \index[general]{L'ancienne ressource FileSet}
2232 \addcontentsline{toc}{subsection}{L'ancienne ressource FileSet}
2233
2234 L'ancienne Ressource FileSet des versions antérieures Ã  1.34.3 est obsolète, 
2235 mais fonctionne encore. Nous vous encourageons Ã  utiliser la nouvelle forme, 
2236 car le code correspondant sera supprimé Ã  partir de la version 1.37.
2237
2238 \subsection*{Tester vos FileSets}
2239 \index[general]{FileSet!Testing Your }
2240 \index[general]{Tester vos FileSets }
2241 \addcontentsline{toc}{subsection}{Tester vos FileSets}
2242
2243 Si vous voulez vous faire une idée précise de ce qui sera effectivement 
2244 sauvegardé par un FileSet, ou si vous voulez vous assurer de l'efficacité  
2245 d'une liste d'exclusion, vous pouvez utiliser la commande {\bf estimate} 
2246 du programme Console. Voyez \ilink{estimate command}{estimate} dans le 
2247 chapitre Console de ce manuel.
2248
2249 \subsection*{Considerations sur le nommage Windows NTFS}
2250 \index[general]{Considerations sur le nommage Windows NTFS}
2251 \index[general]{Considerations!Windows NTFS Naming }
2252 \addcontentsline{toc}{subsection}{Considerations sur le nommage Windows NTFS}
2253
2254 Les noms de fichiers NTFS contenant des caractères Unicode (i.e. \gt{} 0xFF) ne 
2255 peuvent, pour le moment, Ãªtre nommé eplicitement. Vous devez inclure de tels 
2256 fichiers en désignant un répertoire de niveau supérieur ou une lettre de disque 
2257 ne contenant pas de caractère Unicode.
2258
2259 \subsection*{La ressource Client}
2260 \label{ClientResource2}
2261 \index[general]{Resource!Client }
2262 \index[general]{La ressource Client}
2263 \addcontentsline{toc}{subsection}{La ressource Client} 
2264
2265 La ressource Client définit les attributs des clients servis (sauvegardés) 
2266 par ce Director. Il faut une ressource Client par machine sauvegardée.
2267
2268 \begin{description}
2269
2270 \item [Client (ou FileDaemon)]
2271    \index[dir]{Client (ou FileDaemon) }
2272    Début des directives Client.
2273
2274 \item [Name = \lt{}name\gt{}]
2275    \index[dir]{Name  }
2276 Le nom du client qui sera utilisé dans la directive Job de la ressource ou 
2277 dans une commande run de la Console. Cette directive est requise.
2278
2279 \item [Address = \lt{}address\gt{}]
2280    \index[console]{Address  }
2281
2282 L'adresse d'un File Daemon Bacula est un nom d'hôte, un nom pleinement qualifié 
2283 ou une adresse réseau au format quatre octets pointés. Cette directive est requise.
2284
2285 \item [FD Port = \lt{}port-number\gt{}]
2286    \index[console]{FD Port  }
2287 Où le port est le numéro de port auquel le le File Daemon peut Ãªtre contacté. 
2288 La valeur par défaut est 9102.
2289
2290
2291 \item [Catalog = \lt{}Catalog-resource-name\gt{}]
2292    \index[console]{Catalog  }
2293 Cette directive spécifie le nom de la ressource catalog Ã  utiliser pour ce 
2294 client. Cette directive est requise.
2295
2296 \item [Password = \lt{}password\gt{}]
2297    \index[console]{Password  }
2298 Il s'agit ici du mot de passe Ã  utiliser lors de la connection avec le 
2299 File Daemon, aussi le fichier de configuration de la machine Ã  sauvegarder 
2300 doit définir le même mot de passe pour Ãªtre connecté par ce Director. 
2301 Cette directive est requise. Si vous disposez de {\bf /dev/random} ou de {\bf bc} 
2302 sur votre machine, Bacula génère des mots de passe aléatoires lors du processus 
2303 de configuration. Dans le cas contraire, le mot de passe est laissé blanc.
2304
2305 \label{FileRetention}
2306
2307 \item [File Retention = \lt{}time-period-specification\gt{}  ]
2308    \index[fd]{File Retention  }
2309    The File Retention directive defines the length of time that  Bacula will keep
2310 File records in the Catalog database.  When this time period expires, and if
2311 {\bf AutoPrune} is set to  {\bf yes} Bacula will prune (remove) File records
2312 that  are older than the specified File Retention period. Note, this  affects
2313 only records in the catalog database. It does not  effect your archive
2314 backups.  
2315
2316 File records  may actually be retained for a shorter period than you specify
2317 on  this directive if you specify either a shorter {\bf Job Retention}  or
2318 shorter {\bf Volume Retention} period. The shortest  retention period of the
2319 three takes precedence.  The time may be expressed in seconds, minutes, 
2320 hours, days, weeks, months, quarters, or years. See the 
2321 \ilink{ Configuration chapter}{Time} of this  manual for
2322 additional details of time specification. 
2323
2324 The  default is 60 days. 
2325 \label{JobRetention}
2326
2327 \item [Job Retention = \lt{}time-period-specification\gt{}  ]
2328    \index[fd]{Job Retention  }
2329    The Job Retention directive defines the length of time that  Bacula will keep
2330 Job records in the Catalog database.  When this time period expires, and if
2331 {\bf AutoPrune} is set to  {\bf yes} Bacula will prune (remove) Job records
2332 that are  older than the specified File Retention period. As with the other 
2333 retention periods, this affects only records in the catalog and  not data in
2334 your archive backup.  
2335
2336 If a Job  record is selected for pruning, all associated File and JobMedia 
2337 records will also be pruned regardless of the File Retention  period set. As a
2338 consequence, you normally will set the File  retention period to be less than
2339 the Job retention period. The  Job retention period can actually be less than
2340 the value you  specify here if you set the {\bf Volume Retention} directive in
2341 the  Pool resource to a smaller duration. This is because the Job  retention
2342 period and the Volume retention period are  independently applied, so the
2343 smaller of the two takes  precedence.  
2344
2345 The Job retention period is specified as seconds,  minutes, hours, days,
2346 weeks, months,  quarters, or years.  See the 
2347 \ilink{ Configuration chapter}{Time} of this manual for
2348 additional details of  time specification.  
2349
2350 The default is 180 days.  
2351 \label{AutoPrune}
2352
2353 \item [AutoPrune = \lt{}yes|no\gt{}]
2354    \index[fd]{AutoPrune  }
2355    If AutoPrune is set to  {\bf yes} (default), Bacula (version 1.20 or greater)
2356 will  automatically apply the File retention period and the Job  retention
2357 period for the Client at the end of the Job.  If you set {\bf AutoPrune = no},
2358 pruning will not be done,  and your Catalog will grow in size each time you
2359 run a Job.  Pruning affects only information in the catalog and not data 
2360 stored in the backup archives (on Volumes).  
2361
2362 \item [Maximum Concurrent Jobs = \lt{}number\gt{}]
2363    \index[fd]{Maximum Concurrent Jobs  }
2364    where \lt{}number\gt{}  is the maximum number of Jobs with the current Client
2365 that  can run concurrently. Note, this directive limits only Jobs  for Clients
2366 with the same name as the resource in which it appears. Any  other
2367 restrictions on the maximum concurrent jobs such as in  the Director, Job, or
2368 Storage resources will also apply in addition to  any limit specified here.
2369 The  default is set to 1, but you may set it to a larger number.  We strongly
2370 recommend that you read the WARNING documented under  
2371 \ilink{ Maximum Concurrent Jobs}{DirMaxConJobs} in the Director's
2372 resource.  
2373
2374 \item [*Priority = \lt{}number\gt{}]
2375    \index[fd]{*Priority  }
2376    The number specifies the  priority of this client relative to other clients
2377 that the  Director is processing simultaneously. The priority can range  from
2378 1 to 1000. The clients are ordered such that the smaller  number priorities
2379 are performed first (not currently  implemented). 
2380 \end{description}
2381
2382 The following is an example of a valid Client resource definition: 
2383
2384 \footnotesize
2385 \begin{verbatim}
2386 Client {
2387   Name = Minimatou
2388   Address = minimatou
2389   Catalog = MySQL
2390   Password = very_good
2391 }
2392 \end{verbatim}
2393 \normalsize
2394
2395 \subsection*{The Storage Resource}
2396 \label{StorageResource2}
2397 \index[general]{Resource!Storage }
2398 \index[general]{Storage Resource }
2399 \addcontentsline{toc}{subsection}{Storage Resource}
2400
2401 The Storage resource defines which Storage daemons are available for use by
2402 the Director. 
2403
2404 \begin{description}
2405
2406 \item [Storage]
2407    \index[fd]{Storage }
2408    Start of the Storage resources. At least one  storage resource must be
2409 specified. 
2410
2411 \item [Name = \lt{}name\gt{}]
2412    \index[sd]{Name  }
2413    The name of the storage resource. This  name appears on the Storage directive
2414 specified in the Job directive and  is required. 
2415
2416 \item [Address = \lt{}address\gt{}]
2417    \index[sd]{Address  }
2418    Where the address is a host name,  a {\bf fully qualified domain name}, or an
2419 {\bf IP address}. Please note  that the \lt{}address\gt{} as specified here
2420 will be transmitted to  the File daemon who will then use it to contact the
2421 Storage daemon. Hence,  it is {\bf not}, a good idea to use {\bf localhost} as
2422 the  name but rather a fully qualified machine name or an IP address.  This
2423 directive is required. 
2424
2425 \item [SD Port = \lt{}port\gt{}]
2426    \index[sd]{SD Port  }
2427    Where port is the port to use to  contact the storage daemon for information
2428 and to start jobs.  This same port number must appear in the Storage resource
2429 of the  Storage daemon's configuration file. The default is 9103. 
2430
2431 \item [Password = \lt{}password\gt{}]
2432    \index[sd]{Password  }
2433    This is the password to be used  when establishing a connection with the
2434 Storage services. This  same password also must appear in the Director
2435 resource of the Storage  daemon's configuration file. This directive is
2436 required.  If you have either {\bf /dev/random}  {\bf bc} on your machine,
2437 Bacula will generate a random  password during the configuration process,
2438 otherwise it will  be left blank. 
2439
2440 \item [Device = \lt{}device-name\gt{}]
2441    \index[sd]{Device  }
2442    This directive specifies the name  of the device to be used to for the
2443 storage. This name is not the  physical device name, but the logical device
2444 name as defined on the  {\bf Name} directive contained in the {\bf Device}
2445 resource  definition of the {\bf Storage daemon} configuration file.  You can
2446 specify any name you would like (even the device name if  you prefer) up to a
2447 maximum of 127 characters in length.  The physical device name associated with
2448 this device is specified in  the {\bf Storage daemon} configuration file (as
2449 {\bf Archive  Device}). Please take care not to define two different  Storage
2450 resource directives in the Director that point to the  same Device in the
2451 Storage daemon. Doing so may cause the  Storage daemon to block (or hang)
2452 attempting to open the  same device that is already open. This directive is
2453 required. 
2454
2455 \item [Media Type = \lt{}MediaType\gt{}]
2456    \index[fd]{Media Type  }
2457    This directive specifies the  Media Type to be used to store the data. This is
2458 an arbitrary  string of characters up to 127 maximum that you define. It can 
2459 be anything you want. However, it is best to  make it descriptive of the
2460 storage media (e.g. File, DAT, ''HP  DLT8000``, 8mm, ...). In addition, it is
2461 essential that you  make the {\bf Media Type} specification unique for each
2462 storage  media type. If you have two DDS-4 drives that have incompatible 
2463 formats, or if you have a DDS-4 drive and a DDS-4 autochanger,  you almost
2464 certainly should specify different {\bf Media Types}.  During a restore,
2465 assuming a {\bf DDS-4} Media Type is associated  with the Job, Bacula can
2466 decide to use any Storage  daemon that support Media Type {\bf DDS-4} and on
2467 any drive  supports it. If you want to tie Bacula to using a single Storage 
2468 daemon or drive, you must specify a unique Media Type for that drive.  This is
2469 an important point that should be carefully understood. You  can find more on
2470 this subject in the 
2471 \ilink{Basic Volume Management}{_ChapterStart39} chapter of this
2472 manual.  
2473
2474 The {\bf MediaType} specified here, {\bf must}  correspond to the {\bf Media
2475 Type} specified in the {\bf Device}  resource of the {\bf Storage daemon}
2476 configuration file.  This directive is required, and it is used by the
2477 Director and the  Storage daemon to ensure that a Volume automatically
2478 selected from  the Pool corresponds to the physical device. If a Storage
2479 daemon  handles multiple devices (e.g. will write to various file Volumes  on
2480 different partitions), this directive allows you to specify exactly  which
2481 device.  
2482
2483 As mentioned above, the value specified in the Director's Storage  resource
2484 must agree with the value specified in the Device resource in  the {\bf
2485 Storage daemon's} configuration file. It is also an  additional check so  that
2486 you don't try to write data for a DLT onto an 8mm device. 
2487 \label{Autochanger1}
2488
2489 \item [Autochanger = \lt{}yes|no\gt{}  ]
2490    \index[fd]{Autochanger  }
2491    If you specify {\bf yes}  for this command (the default is {\bf no}), when you
2492 use the {\bf label}  command or the {\bf add} command to create a new Volume,
2493 {\bf Bacula}  will also request the Autochanger Slot number. This simplifies 
2494 creating database entries for Volumes in an autochanger. If you forget  to
2495 specify the Slot, the autochanger will not be used. However, you  may modify
2496 the Slot associated with a Volume at any time  by using the {\bf update
2497 volume} command in the console program.  When {\bf autochanger} is enabled,
2498 the algorithm used by  Bacula to search for available volumes will be modified
2499 to  consider only Volumes that are known to be in the autochanger's  magazine.
2500 If no {\bf in changer} volume is found, Bacula will  attempt recycling,
2501 pruning, ..., and if still no volume is found,  Bacula will search for any
2502 volume whether or not in the magazine.  By privileging in changer volumes,
2503 this procedure minimizes  operator intervention.  The default is {\bf no}.  
2504
2505 For the autochanger to be  used, you must also specify {\bf Autochanger = yes}
2506 in the  
2507 \ilink{Device Resource}{Autochanger}  in the Storage daemon's
2508 configuration file as well as other  important Storage daemon configuration
2509 information.  Please consult the 
2510 \ilink{ Using Autochangers}{_ChapterStart18} manual of this
2511 chapter for the details of  using autochangers. 
2512
2513 \item [Maximum Concurrent Jobs = \lt{}number\gt{}]
2514    \index[fd]{Maximum Concurrent Jobs  }
2515    where \lt{}number\gt{}  is the maximum number of Jobs with the current Storage
2516 resource that  can run concurrently. Note, this directive limits only Jobs 
2517 for Jobs using this Storage daemon. Any  other restrictions on the maximum
2518 concurrent jobs such as in  the Director, Job, or Client resources will also
2519 apply in addition to  any limit specified here. The  default is set to 1, but
2520 you may set it to a larger number.  We strongly recommend that you read the
2521 WARNING documented under  
2522 \ilink{ Maximum Concurrent Jobs}{DirMaxConJobs} in the Director's
2523 resource.  
2524
2525 While it is possible to set the Director's, Job's, or Client's  maximum
2526 concurrent jobs greater than one, you should take great  care in setting the
2527 Storage daemon's greater than one. By keeping  this directive set to one, you
2528 will avoid having two jobs simultaneously  write to the same Volume. Although
2529 this is supported, it is not  currently recommended.  
2530 \end{description}
2531
2532 The following is an example of a valid Storage resource definition: 
2533
2534 \footnotesize
2535 \begin{verbatim}
2536 # Definition of tape storage device
2537 Storage {
2538   Name = DLTDrive
2539   Address = lpmatou
2540   Password = storage_password # password for Storage daemon
2541   Device = "HP DLT 80"    # same as Device in Storage daemon
2542   Media Type = DLT8000    # same as MediaType in Storage daemon
2543 }
2544 \end{verbatim}
2545 \normalsize
2546
2547 \subsection*{The Pool Resource}
2548 \label{PoolResource}
2549 \index[general]{Resource!Pool }
2550 \index[general]{Pool Resource }
2551 \addcontentsline{toc}{subsection}{Pool Resource}
2552
2553 The Pool resource defines the set of storage Volumes (tapes or files) to be
2554 used by Bacula to write the data. By configuring different Pools, you can
2555 determine which set of Volumes (media) receives the backup data. This permits,
2556 for example, to store all full backup data on one set of Volumes and all
2557 incremental backups on another set of Volumes. Alternatively, you could assign
2558 a different set of Volumes to each machine that you backup. This is most
2559 easily done by defining multiple Pools. 
2560
2561 Another important aspect of a Pool is that it contains the default attributes
2562 (Maximum Jobs, Retention Period, Recycle flag, ...) that will be given to a
2563 Volume when it is created. This avoids the need for you to answer a large
2564 number of questions when labeling a new Volume. Each of these attributes can
2565 later be changed on a Volume by Volume basis using the {\bf update} command in
2566 the console program. Note that you must explicitly specify which Pool Bacula
2567 is to use with each Job. Bacula will not automatically search for the correct
2568 Pool. 
2569
2570 Most often in Bacula installations all backups for all machines (Clients) go
2571 to a single set of Volumes. In this case, you will probably only use the {\bf
2572 Default} Pool. If your backup strategy calls for you to mount a different tape
2573 each day, you will probably want to define a separate Pool for each day. For
2574 more information on this subject, please see the 
2575 \ilink{Backup Strategies}{_ChapterStart3} chapter of this
2576 manual. 
2577
2578 To use a Pool, there are three distinct steps. First the Pool must be defined
2579 in the Director's configuration file. Then the Pool must be written to the
2580 Catalog database. This is done automatically by the Director each time that it
2581 starts, or alternatively can be done using the {\bf create} command in the
2582 console program. Finally, if you change the Pool definition in the Director's
2583 configuration file and restart Bacula, the pool will be updated alternatively
2584 you can use the {\bf update pool} console command to refresh the database
2585 image. It is this database image rather than the Director's resource image
2586 that is used for the default Volume attributes. Note, for the pool to be
2587 automatically created or updated, it must be explicitly referenced by a Job
2588 resource. 
2589
2590 Next the physical media must be labeled. The labeling can either be done with
2591 the {\bf label} command in the {\bf console} program or using the {\bf btape}
2592 program. The preferred method is to use the {\bf label} command in the {\bf
2593 console} program. 
2594
2595 Finally, you must add Volume names (and their attributes) to the Pool. For
2596 Volumes to be used by Bacula they must be of the same {\bf Media Type} as the
2597 archive device specified for the job (i.e. if you are going to back up to a
2598 DLT device, the Pool must have DLT volumes defined since 8mm volumes cannot be
2599 mounted on a DLT drive). The {\bf Media Type} has particular importance if you
2600 are backing up to files. When running a Job, you must explicitly specify which
2601 Pool to use. Bacula will then automatically select the next Volume to use from
2602 the Pool, but it will ensure that the {\bf Media Type} of any Volume selected
2603 from the Pool is identical to that required by the Storage resource you have
2604 specified for the Job. 
2605
2606 If you use the {\bf label} command in the console program to label the
2607 Volumes, they will automatically be added to the Pool, so this last step is
2608 not normally required. 
2609
2610 It is also possible to add Volumes to the database without explicitly labeling
2611 the physical volume. This is done with the {\bf add} console command. 
2612
2613 As previously mentioned, each time Bacula starts, it scans all the Pools
2614 associated with each Catalog, and if the database record does not already
2615 exist, it will be created from the Pool Resource definition. {\bf Bacula}
2616 probably should do an {\bf update pool} if you change the Pool definition, but
2617 currently, you must do this manually using the {\bf update pool} command in
2618 the Console program. 
2619
2620 The Pool Resource defined in the Director's configuration file
2621 (bacula-dir.conf) may contain the following directives: 
2622
2623 \begin{description}
2624
2625 \item [Pool]
2626    \index[dir]{Pool }
2627    Start of the Pool resource. There must  be at least one Pool resource defined.
2628
2629
2630 \item [Name = \lt{}name\gt{}]
2631    \index[dir]{Name  }
2632    The name of the pool.  For most applications, you will use the default pool 
2633 name {\bf Default}. This directive is required.  
2634
2635 \item [Number of Volumes = \lt{}number\gt{}]
2636    \index[dir]{Number of Volumes  }
2637    This directive specifies  the number of volumes (tapes or files) contained in
2638 the pool.  Normally, it is defined and updated automatically by the  Bacula
2639 catalog handling routines. 
2640 \label{MaxVolumes}
2641
2642 \item [Maximum Volumes = \lt{}number\gt{}]
2643    \index[dir]{Maximum Volumes  }
2644    This directive specifies the  maximum number of volumes (tapes or files)
2645 contained in the pool.  This directive is optional, if omitted or set to zero,
2646 any number  of volumes will be permitted. In general, this directive is useful
2647 for Autochangers where there is a fixed number of Volumes, or  for File
2648 storage where you wish to ensure that the backups made to  disk files do not
2649 become too numerous or consume too much space.  
2650
2651 \item [Pool Type = \lt{}type\gt{}]
2652    \index[dir]{Pool Type  }
2653    This directive defines the pool  type, which corresponds to the type of Job
2654 being run. It is  required and may be one of the following:  
2655
2656 \begin{itemize}
2657 \item [Backup]  
2658 \item [*Archive]  
2659 \item [*Cloned]  
2660 \item [*Migration]  
2661 \item [*Copy]  
2662 \item [*Save]  
2663    \end{itemize}
2664
2665 \item [Use Volume Once = \lt{}yes|no\gt{}]
2666    \index[dir]{Use Volume Once  }
2667    This directive  if set to {\bf yes} specifies that each volume is to be  used
2668 only once. This is most useful when the Media is a  file and you want a new
2669 file for each backup that is  done. The default is {\bf no} (i.e. use volume
2670 any  number of times). This directive will most likely be phased out 
2671 (deprecated), so you are recommended to use {\bf Maximum Volume Jobs = 1} 
2672 instead.  
2673
2674 Please note that the value defined by this directive in the  bacula-dir.conf
2675 file is the default value used when a Volume  is created. Once the volume is
2676 created, changing the value  in the bacula-dir.conf file will not change what
2677 is stored  for the Volume. To change the value for an existing Volume  you
2678 must use the {\bf update} command in the Console.  
2679
2680 \item [Maximum Volume Jobs = \lt{}positive-integer\gt{}]
2681    \index[fd]{Maximum Volume Jobs  }
2682    This directive specifies  the maximum number of Jobs that can be written to
2683 the Volume. If  you specify zero (the default), there is no limit. Otherwise, 
2684 when the number of Jobs backed up to the Volume equals {\bf positive-integer} 
2685 the Volume will be marked {\bf Used}. When the Volume is marked  {\bf Used} it
2686 can no longer be used for appending Jobs, much like  the {\bf Full} status but
2687 it can be recycled if recycling is enabled.  By setting {\bf
2688 MaximumVolumeJobs} to one, you get the same  effect as setting {\bf
2689 UseVolumeOnce = yes}.  
2690
2691 Please note that the value defined by this directive in the  bacula-dir.conf
2692 file is the default value used when a Volume  is created. Once the volume is
2693 created, changing the value  in the bacula-dir.conf file will not change what
2694 is stored  for the Volume. To change the value for an existing Volume  you
2695 must use the {\bf update} command in the Console.  
2696
2697 \item [Maximum Volume Files = \lt{}positive-integer\gt{}]
2698    \index[fd]{Maximum Volume Files  }
2699    This directive specifies  the maximum number of files that can be written to
2700 the Volume. If  you specify zero (the default), there is no limit. Otherwise, 
2701 when the number of files written to the Volume equals {\bf positive-integer} 
2702 the Volume will be marked {\bf Used}. When the Volume is marked  {\bf Used} it
2703 can no longer be used for appending Jobs, much like  the {\bf Full} status but
2704 it can be recycled if recycling is enabled.  This value is checked and the
2705 {\bf Used} status is set only  at the end of a job that writes to the
2706 particular volume.  
2707
2708 Please note that the value defined by this directive in the  bacula-dir.conf
2709 file is the default value used when a Volume  is created. Once the volume is
2710 created, changing the value  in the bacula-dir.conf file will not change what
2711 is stored  for the Volume. To change the value for an existing Volume  you
2712 must use the {\bf update} command in the Console.  
2713
2714 \item [Maximum Volume Bytes = \lt{}size\gt{}]
2715    \index[fd]{Maximum Volume Bytes  }
2716    This directive specifies  the maximum number of bytes that can be written to
2717 the Volume. If  you specify zero (the default), there is no limit except the 
2718 physical size of the Volume. Otherwise,  when the number of bytes written to
2719 the Volume equals {\bf size}  the Volume will be marked {\bf Used}. When the
2720 Volume is marked  {\bf Used} it can no longer be used for appending Jobs, much
2721 like  the {\bf Full} status but it can be recycled if recycling is enabled. 
2722 This value is checked and the {\bf Used} status set while  the job is writing
2723 to the particular volume.  
2724
2725 Please note that the value defined by this directive in the  bacula-dir.conf
2726 file is the default value used when a Volume  is created. Once the volume is
2727 created, changing the value  in the bacula-dir.conf file will not change what
2728 is stored  for the Volume. To change the value for an existing Volume  you
2729 must use the {\bf update} command in the Console.  
2730
2731 \item [Volume Use Duration = \lt{}time-period-specification\gt{}]
2732    \index[fd]{Volume Use Duration  }
2733    The Volume Use Duration directive defines the time period that  the Volume can
2734 be written beginning from the time of first data  write to the Volume. If the
2735 time-period specified is zero (the  default), the Volume can be written
2736 indefinitely. Otherwise,  when the time period from the first write to the
2737 volume (the  first Job written) exceeds the time-period-specification, the 
2738 Volume will be marked {\bf Used}, which means that no more  Jobs can be
2739 appended to the Volume, but it may be recycled if  recycling is enabled.  
2740
2741 You might use this directive, for example, if you have a Volume  used for
2742 Incremental backups, and Volumes used for Weekly Full  backups. Once the Full
2743 backup is done, you will want to use a  different Incremental Volume. This can
2744 be accomplished by setting  the Volume Use Duration for the Incremental Volume
2745 to six days.  I.e. it will be used for the 6 days following a Full save, then 
2746 a different Incremental volume will be used.  
2747
2748 This value is checked and the {\bf Used} status is set only  at the end of a
2749 job that writes to the particular volume, which  means that even though the
2750 use duration may have expired, the  catalog entry will not be updated until
2751 the next job that  uses this volume is run.  
2752
2753 Please note that the value defined by this directive in the  bacula-dir.conf
2754 file is the default value used when a Volume  is created. Once the volume is
2755 created, changing the value  in the bacula-dir.conf file will not change what
2756 is stored  for the Volume. To change the value for an existing Volume  you
2757 must use the {\bf update} command in the Console.  
2758
2759 \item [Catalog Files = \lt{}yes|no\gt{}]
2760    \index[fd]{Catalog Files  }
2761    This directive  defines whether or not you want the names of the files  that
2762 were saved to be put into the catalog. The default  is {\bf yes}. The
2763 advantage of specifying {\bf Catalog Files = No}  is that you will have a
2764 significantly smaller Catalog database. The  disadvantage is that you will not
2765 be able to produce a Catalog listing  of the files backed up for each Job
2766 (this is often called Browsing).  Also, without the File entries in the
2767 catalog, you will not be  able to use the Console {\bf restore} command nor
2768 any other  command that references File entries.  
2769 \label{PoolAutoPrune}
2770
2771 \item [AutoPrune = \lt{}yes|no\gt{}]
2772    \index[fd]{AutoPrune  }
2773    If AutoPrune is set to  {\bf yes} (default), Bacula (version 1.20 or greater)
2774 will  automatically apply the Volume Retention period when new Volume  is
2775 needed and no appendable Volumes exist in the Pool. Volume  pruning causes
2776 expired Jobs (older than the {\bf Volume  Retention} period) to be deleted
2777 from the Catalog and permits  possible recycling of the Volume.  
2778 \label{VolRetention}
2779
2780 \item [Volume Retention = \lt{}time-period-specification\gt{}]
2781    \index[fd]{Volume Retention  }
2782    The  Volume Retention directive defines the length of time that {\bf Bacula} 
2783 will keep Job records associated with the Volume in the Catalog  database.
2784 When this time period expires, and if {\bf AutoPrune}  is set to {\bf yes}
2785 Bacula will prune (remove) Job  records that are older than the specified
2786 Volume Retention period.  All File records associated with pruned Jobs are
2787 also pruned.  The time may be specified as seconds,  minutes, hours, days,
2788 weeks, months, quarters, or years.  The {\bf Volume Retention} applied
2789 independently to the  {\bf Job Retention} and the {\bf File Retention} periods
2790 defined in the Client resource. This means that the shorter  period is the
2791 one that applies. Note, that when the  {\bf Volume Retention} period has been
2792 reached, it will  prune both the Job and the File records.  
2793
2794 The default is 365 days. Note, this directive sets the default  value for each
2795 Volume entry in the Catalog when the Volume is  created. The value in the 
2796 catalog may be later individually changed for each Volume using  the Console
2797 program.  
2798
2799 By defining multiple Pools with different Volume Retention periods,  you may
2800 effectively have a set of tapes that is recycled weekly,  another Pool of
2801 tapes that is recycled monthly and so on. However,  one must keep in mind that
2802 if your {\bf Volume Retention} period  is too short, it may prune the last
2803 valid Full backup, and hence  until the next Full backup is done, you will not
2804 have a complete  backup of your system, and in addition, the next Incremental 
2805 or Differential backup will be promoted to a Full backup. As  a consequence,
2806 the minimum {\bf Volume Retention} period should be at  twice the interval of
2807 your Full backups. This means that if you  do a Full backup once a month, the
2808 minimum Volume retention  period should be two months.  
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{PoolRecycle}
2816
2817 \item [Recycle = \lt{}yes|no\gt{}]
2818    \index[fd]{Recycle  }
2819    This directive specifies the  default for recycling Purged Volumes. If it is
2820 set to {\bf yes}  and Bacula needs a volume but finds none that are 
2821 appendable, it will search for Purged Volumes (i.e. volumes  with all the Jobs
2822 and Files expired and thus deleted from  the Catalog). If the Volume is
2823 recycled, all previous data  written to that Volume will be overwritten.  
2824
2825 Please note that the value defined by this directive in the  bacula-dir.conf
2826 file is the default value used when a Volume  is created. Once the volume is
2827 created, changing the value  in the bacula-dir.conf file will not change what
2828 is stored  for the Volume. To change the value for an existing Volume  you
2829 must use the {\bf update} command in the Console.  
2830 \label{RecycleOldest}
2831
2832 \item [Recycle Oldest Volume = \lt{}yes|no\gt{}]
2833    \index[fd]{Recycle Oldest Volume  }
2834    This directive  instructs the Director to search for the oldest used  Volume
2835 in the Pool when another Volume is requested by  the Storage daemon and none
2836 are available.  The catalog is then {\bf pruned} respecting the retention 
2837 periods of all Files and Jobs written to this Volume.  If all Jobs are pruned
2838 (i.e. the volume is Purged), then  the Volume is recycled and will be used as
2839 the next  Volume to be written. This directive respects any Job,  File, or
2840 Volume retention periods that you may have specified,  and as such it is {\bf
2841 much} better to use this directive  than the Purge Oldest Volume.  
2842
2843 This directive can be useful if you have  a fixed number of Volumes in the
2844 Pool and you want to  cycle through them and you have specified the correct 
2845 retention periods.  
2846 \label{RecycleCurrent}
2847
2848 \item [Recycle Current Volume = \lt{}yes|no\gt{}]
2849    \index[fd]{Recycle Current Volume  }
2850    If  Bacula needs a new Volume, this directive instructs Bacula  to Prune the
2851 volume respecting the Job and File  retention periods.  If all Jobs are pruned
2852 (i.e. the volume is Purged), then  the Volume is recycled and will be used as
2853 the next  Volume to be written. This directive respects any Job,  File, or
2854 Volume retention periods that you may have specified,  and thus it is {\bf
2855 much} better to use it rather  than the Purge Oldest Volume directive.  
2856
2857 This directive can be useful if you have:  a fixed number of Volumes in the
2858 Pool, you want to  cycle through them, and you have specified  retention
2859 periods that prune Volumes before  you have cycled through the Volume in the
2860 Pool.  
2861 \label{PurgeOldest}
2862
2863 \item [Purge Oldest Volume = \lt{}yes|no\gt{}]
2864    \index[fd]{Purge Oldest Volume  }
2865    This directive  instructs the Director to search for the oldest used  Volume
2866 in the Pool when another Volume is requested by  the Storage daemon and none
2867 are available.  The catalog is then {\bf purged} irrespective of retention 
2868 periods of all Files and Jobs written to this Volume.  The Volume is then
2869 recycled and will be used as the next  Volume to be written. This directive
2870 overrides any Job,  File, or Volume retention periods that you may have
2871 specified.  
2872
2873 This directive can be useful if you have  a fixed number of Volumes in the
2874 Pool and you want to  cycle through them and when all Volumes are full, but
2875 you don't  want to worry about setting proper retention periods. However,  by
2876 using this option you risk losing valuable data.  
2877
2878 {\bf Please be aware that {\bf Purge Oldest Volume} disregards  all retention
2879 periods.} If you have only a single Volume  defined and you turn this variable
2880 on, that Volume will always  be immediately overwritten when it fills! So at a
2881 minimum,  ensure that you have a decent number of Volumes in your Pool  before
2882 running any jobs. If you want retention periods to apply  do not use this
2883 directive. To specify a retention period,  use the {\bf Volume Retention}
2884 directive (see above).  
2885
2886 I highly recommend against using this directive, because it is  sure that some
2887 day, Bacula will recycle a Volume that contains  current data. 
2888
2889 \item [Accept Any Volume = \lt{}yes|no\gt{}]
2890    \index[fd]{Accept Any Volume  }
2891    This directive  specifies whether or not any volume from the Pool may  be used
2892 for backup. The default is {\bf yes} as of version  1.27 and later. If it is
2893 {\bf no} then only the first  writable volume in the Pool will be accepted for
2894 writing backup  data, thus Bacula will fill each Volume sequentially  in turn
2895 before using any other appendable volume in the  Pool. If this is {\bf no} and
2896 you mount a volume out  of order, Bacula will not accept it. If this  is {\bf
2897 yes} any appendable volume from the pool  mounted will be accepted.  
2898
2899 If your tape backup procedure dictates that you manually  mount the next
2900 volume, you will almost certainly want to be  sure this directive is turned
2901 on.  
2902
2903 If you are going on vacation and you think the current volume  may not have
2904 enough room on it, you can simply label a new tape  and leave it in the drive,
2905 and assuming that {\bf Accept Any Volume}  is {\bf yes} Bacula will begin
2906 writing on it. When you return  from vacation, simply remount the last tape,
2907 and Bacula will  continue writing on it until it is full. Then you can remount
2908  your vacation tape and Bacula will fill it in turn.  
2909
2910 \item [Cleaning Prefix = \lt{}string\gt{}]
2911    \index[fd]{Cleaning Prefix  }
2912    This directive defines  a prefix string, which if it matches the beginning of 
2913 a Volume name during labeling of a Volume, the Volume  will be defined with
2914 the VolStatus set to {\bf Cleaning} and  thus Bacula will never attempt to use
2915 this tape. This  is primarily for use with autochangers that accept barcodes 
2916 where the convention is that barcodes beginning with {\bf CLN}  are treated as
2917 cleaning tapes.  
2918 \label{Label}
2919
2920 \item [Label Format = \lt{}format\gt{}]
2921    \index[fd]{Label Format  }
2922    This directive specifies the  format of the labels contained in this pool. The
2923 format directive  is used as a sort of template to create new Volume names
2924 during  automatic Volume labeling.  
2925
2926 The {\bf format} should be specified in double quotes, and  consists of
2927 letters, numbers and the special characters  hyphen ({\bf -}), underscore
2928 ({\bf \_}), colon ({\bf :}), and  period ({\bf .}), which are the legal
2929 characters for a Volume  name. The {\bf format} should be enclosed in  double
2930 quotes ('').  
2931
2932 In addition, the format may contain a number of variable expansion  characters
2933 which will be expanded by a complex algorithm allowing  you to create Volume
2934 names of many different formats. In all  cases, the expansion process must
2935 resolve to the set of characters  noted above that are legal Volume names.
2936 Generally, these  variable expansion characters begin with a dollar sign ({\bf
2937 \$})  or a left bracket ({\bf [}). If you specify variable expansion 
2938 characters, you should always enclose the format with double  quote characters
2939 ({\bf ``}). For more details on variable expansion,  please see the 
2940 \ilink{Variable Expansion}{_ChapterStart50} Chapter of  this manual.  
2941
2942 If no variable expansion characters are found in the string,  the Volume name
2943 will be formed from the {\bf format} string  appended with the number of
2944 volumes in the pool plus one, which  will be edited as four digits with
2945 leading zeros. For example,  with a {\bf Label Format = ''File-``}, the first
2946 volumes will be  named {\bf File-0001}, {\bf File-0002}, ...  
2947
2948 With the exception of Job specific variables, you can test  your {\bf
2949 LabelFormat} by using the 
2950 \ilink{ var command}{var} the Console Chapter of this manual.  
2951
2952 In almost all cases, you should enclose the format specification  (part after
2953 the equal sign) in double quotes.  
2954 \end{description}
2955
2956 In order for a Pool to be used during a Backup Job, the Pool must have at
2957 least one Volume associated with it. Volumes are created for a Pool using the
2958 {\bf label} or the {\bf add} commands in the {\bf Bacula Console}, program. In
2959 addition to adding Volumes to the Pool (i.e. putting the Volume names in the
2960 Catalog database), the physical Volume must be labeled with valid Bacula
2961 software volume label before {\bf Bacula} will accept the Volume. This will be
2962 automatically done if you use the {\bf label} command. Bacula can
2963 automatically label Volumes if instructed to do so, but this feature is not
2964 yet fully implemented. 
2965
2966 The following is an example of a valid Pool resource definition: 
2967
2968 \footnotesize
2969 \begin{verbatim}
2970  
2971 Pool {
2972   Name = Default
2973   Pool Type = Backup
2974 }
2975 \end{verbatim}
2976 \normalsize
2977
2978 \subection*{The Catalog Resource}
2979 \label{CatalogResource}
2980 \index[general]{Resource!Catalog }
2981 \index[general]{Catalog Resource }
2982 \addcontentsline{toc}{subsection}{Catalog Resource}
2983
2984 The Catalog Resource defines what catalog to use for the current job.
2985 Currently, Bacula can only handle a single database server (SQLite, MySQL,
2986 built-in) that is defined when configuring {\bf Bacula}. However, there may be
2987 as many Catalogs (databases) defined as you wish. For example, you may want
2988 each Client to have its own Catalog database, or you may want backup jobs to
2989 use one database and verify or restore jobs to use another database. 
2990
2991 \begin{description}
2992
2993 \item [Catalog]
2994    \index[console]{Catalog }
2995    Start of the Catalog resource.  At least one Catalog resource must be defined.
2996
2997
2998 \item [Name = \lt{}name\gt{}]
2999    \index[console]{Name  }
3000    The name of the Catalog. No  necessary relation to the database server name.
3001 This name  will be specified in the Client resource directive indicating  that
3002 all catalog data for that Client is maintained in this  Catalog. This
3003 directive is required.  
3004
3005 \item [password = \lt{}password\gt{}]
3006    \index[console]{password  }
3007    This specifies the password  to use when logging into the database. This
3008 directive is required.  
3009
3010 \item [DB Name = \lt{}name\gt{}]
3011    \index[console]{DB Name  }
3012    This specifies the name of the  database. If you use multiple catalogs
3013 (databases), you specify  which one here. If you are using an external
3014 database server  rather than the internal one, you must specify a name that 
3015 is known to the server (i.e. you explicitly created the  Bacula tables using
3016 this name. This directive is  required. 
3017
3018 \item [user = \lt{}user\gt{}]
3019    \index[console]{user  }
3020    This specifies what user name  to use to log into the database. This directive
3021 is required.  
3022
3023 \item [DB Socket = \lt{}socket-name\gt{}]
3024    \index[console]{DB Socket  }
3025    This is the name of  a socket to use on the local host to connect to the
3026 database.  This directive is used only by MySQL and is ignored by  SQLite.
3027 Normally, if neither {\bf DB Socket} or {\bf DB Address}  are specified, MySQL
3028 will use the default socket.  
3029
3030 \item [DB Address = \lt{}address\gt{}]
3031    \index[console]{DB Address  }
3032    This is the host address  of the database server. Normally, you would specify
3033 this instead  of {\bf DB Socket} if the database server is on another machine.
3034 In that case, you will also specify {\bf DB Port}. This directive  is used
3035 only by MySQL and is ignored by SQLite if provided.  This directive is
3036 optional.  
3037
3038 \item [DB Port = \lt{}port\gt{}]
3039    \index[console]{DB Port  }
3040    This defines the port to  be used in conjunction with {\bf DB Address} to
3041 access the  database if it is on another machine. This directive is used  only
3042 by MySQL and is ignored by SQLite if provided. This  directive is optional.  
3043
3044 \item [Multiple Connections = \lt{}yes|no\gt{}]
3045    \index[console]{Multiple Connections  }
3046    By default, this  directive is set to no. In that case, each job that uses the
3047 same Catalog will use a single connection to the catalog. It will  be shared,
3048 and Bacula will allow only one Job at a time to  communicate. If you set this
3049 directive to yes, Bacula will  permit multiple connections to the database,
3050 and the database  must be multi-thread capable. For SQLite and PostgreSQL,
3051 this is  no problem. For MySQL, you must be *very* careful to have the 
3052 multi-thread version of the client library loaded on your system.  When this
3053 directive is set yes, each Job will have a separate  connection to the
3054 database, and the database will control the  interaction between the different
3055 Jobs. This can significantly  speed up the database operations if you are
3056 running multiple  simultaneous jobs. In addition, for SQLite and PostgreSQL,
3057 Bacula  will automatically enable transactions. This can significantly  speed
3058 up insertion of attributes in the database either for  a single Job or
3059 multiple simultaneous Jobs.  
3060
3061 This directive has not been tested. Please test carefully  before running it
3062 in production and report back your results.  
3063 \end{description}
3064
3065 The following is an example of a valid Catalog resource definition: 
3066
3067 \footnotesize
3068 \begin{verbatim}
3069 Catalog
3070 {
3071   Name = SQLite
3072   dbname = bacula;
3073   user = bacula;
3074   password = ""                       # no password = no security
3075 }
3076 \end{verbatim}
3077 \normalsize
3078
3079 or for a Catalog on another machine: 
3080
3081 \footnotesize
3082 \begin{verbatim}
3083 Catalog
3084 {
3085   Name = MySQL
3086   dbname = bacula
3087   user = bacula
3088   password = ""
3089   DB Address = remote.acme.com
3090   DB Port = 1234
3091 }
3092 \end{verbatim}
3093 \normalsize
3094
3095 \subection*{The Messages Resource}
3096 \label{MessagesResource2}
3097 \index[general]{Resource!Messages }
3098 \index[general]{Messages Resource }
3099 \addcontentsline{toc}{subsection}{Messages Resource}
3100
3101 For the details of the Messages Resource, please see the 
3102 \ilink{Messages Resource Chapter}{_ChapterStart15} of this
3103 manual. 
3104
3105 \subsection*{The Console Resource}
3106 \label{ConsoleResource1}
3107 \index[general]{Console Resource }
3108 \index[general]{Resource!Console }
3109 \addcontentsline{toc}{subsection}{Console Resource}
3110
3111 As of Bacula version 1.33 and higher, there are three different kinds of
3112 consoles, which the administrator or user can use to interact with the
3113 Director. These three kinds of consoles comprise three different security
3114 levels. 
3115
3116 \begin{itemize}
3117 \item The first console type is an {\bf anonymous} or {\bf default}  console,
3118    which  has full privileges. There is no console resource necessary  for this
3119    type since the password is specified in the Director's  resource and
3120 consequently such consoles do not have an  name as defined on a {\bf Name =}
3121 directive. This is the kind of  console that was initially implemented in
3122 versions prior to 1.33  and remains valid. Typically you would use it only for
3123  administrators.  
3124 \item The second type of console, and new to version 1.33 and  higher is a
3125    ''named`` console defined within  a Console resource in both the Director's
3126    configuration file and in  the Console's configuration file. Both the names
3127 and the passwords  in these two entries must match much as is the case for 
3128 Client programs.  
3129
3130 This second type of console begins with absolutely no  privileges except those
3131 explicitly specified in the Director's  Console resource. Thus you can have
3132 multiple Consoles with  different names and passwords, sort of like multiple
3133 users, each  with different privileges. As a  default, these consoles can do
3134 absolutely nothing -- no commands  what so ever. You give them privileges or
3135 rather access  to commands and resources by specifying access  control lists
3136 in the Director's Console resource. The ACLs are  specified by a directive
3137 followed by a list of access names.  Examples of this are shown below.  
3138 \item The third type of console is similar to the above mentioned  one in that
3139    it requires a Console resource definition in both  the Director and the
3140    Console. In addition, if the console name,  provided on the {\bf Name =}
3141 directive, is the same as a Client  name, that console is permitted to use the
3142 {\bf SetIP}  command to change the Address directive in the  Director's client
3143 resource to the IP address of the Console. This  permits portables or other
3144 machines using DHCP (non-fixed IP addresses)  to ''notify`` the Director of
3145 their current IP address.  
3146 \end{itemize}
3147
3148 The Console resource is optional and need not be specified. The following
3149 directives are permited within the Director's configuration resource: 
3150
3151 \begin{description}
3152
3153 \item [Name = \lt{}name\gt{}]
3154    \index[console]{Name  }
3155    The name of the console. This  name must match the name specified in the
3156 Console's configuration  resource (much as is the case with Client
3157 definitions).  
3158
3159 \item [Password = \lt{}password\gt{}]
3160    \index[console]{Password  }
3161    Specifies the password that  must be supplied for a named Bacula Console to be
3162 authorized. The same  password must appear in the {\bf Console} resource of
3163 the Console  configuration file. For added security, the password is never 
3164 actually passed across the network but rather a challenge response  hash code
3165 created with the password. This directive is required.  If you have either
3166 {\bf /dev/random}  {\bf bc} on your machine, Bacula will generate a random 
3167 password during the configuration process, otherwise it will  be left blank. 
3168
3169 \item [JobACL = \lt{}name-list\gt{}]
3170    \index[console]{JobACL  }
3171    This directive is used to  specify a list of Job resource names that can be
3172 accessed by  the console. Without this directive, the console cannot access 
3173 any of the Director's Job resources. Multiple Job resource names  may be
3174 specified by separating them with commas, and/or by specifying  multiple
3175 JobACL directives. For example, the directive  may be specified as:  
3176
3177 \footnotesize
3178 \begin{verbatim}
3179     JobACL = kernsave, "Backup client 1", "Backup client 2"
3180     JobACL = "RestoreFiles"
3181     
3182 \end{verbatim}
3183 \normalsize
3184
3185 With the above specification, the console can access the Director's  resources
3186 for the four jobs named on the JobACL directives,  but for no others.  
3187
3188 \item [ClientACL = \lt{}name-list\gt{}]
3189    \index[console]{ClientACL  }
3190    This directive is used to  specify a list of Client resource names that can be
3191 accessed by  the console.  
3192
3193 \item [StorageACL = \lt{}name-list\gt{}]
3194    \index[console]{StorageACL  }
3195    This directive is used to  specify a list of Storage resource names that can
3196 be accessed by  the console.  
3197
3198 \item [ScheduleACL = \lt{}name-list\gt{}]
3199    \index[console]{ScheduleACL  }
3200    This directive is used to  specify a list of Schedule resource names that can
3201 be accessed by  the console.  
3202
3203 \item [PoolACL = \lt{}name-list\gt{}]
3204    \index[console]{PoolACL  }
3205    This directive is used to  specify a list of Pool resource names that can be
3206 accessed by  the console.  
3207
3208 \item [FileSetACL = \lt{}name-list\gt{}]
3209    \index[console]{FileSetACL  }
3210    This directive is used to  specify a list of FileSet resource names that can
3211 be accessed by  the console.  
3212
3213 \item [CatalogACL = \lt{}name-list\gt{}]
3214    \index[console]{CatalogACL  }
3215    This directive is used to  specify a list of Catalog resource names that can
3216 be accessed by  the console.  
3217
3218 \item [CommandACL = \lt{}name-list\gt{}]
3219    \index[console]{CommandACL  }
3220    This directive is used to  specify a list of of console commands that can be
3221 executed by  the console. 
3222 \end{description}
3223
3224 Aside from Director resource names and console command names, the special
3225 keyword {\bf *all*} can be specified in any of the above access control lists.
3226 When this keyword is present, any resource or command name (which ever is
3227 appropriate) will be accepted. For an example configuration file, please see
3228 the 
3229 \ilink{Console Configuration}{_ChapterStart36} chapter of this
3230 manual. 
3231
3232 \subsection*{The Counter Resource}
3233 \label{CounterResource}
3234 \index[general]{Resource!Counter }
3235 \index[general]{Counter Resource }
3236 \addcontentsline{toc}{subsection}{Counter Resource}
3237
3238 The Counter Resource defines a counter variable that can be accessed by
3239 variable expansion used for creating Volume labels with the {\bf LabelFormat}
3240 directive. See the 
3241 \ilink{LabelFormat}{Label} directive in this chapter for more
3242 details. 
3243
3244 \begin{description}
3245
3246 \item [Counter]
3247    \index[console]{Counter }
3248    Start of the Counter resource.  Counter directives are optional. 
3249
3250 \item [Name = \lt{}name\gt{}]
3251    \index[console]{Name  }
3252    The name of the Counter.  This is the name you will use in the variable
3253 expansion  to reference the counter value.  
3254
3255 \item [Minimum = \lt{}integer\gt{}]
3256    \index[console]{Minimum  }
3257    This specifies the minimum  value that the counter can have. It also becomes
3258 the default.  If not supplied, zero is assumed.  
3259
3260 \item [Maximum = \lt{}integer\gt{}]
3261    \index[console]{Maximum  }
3262    This is the maximum value  value that the counter can have. If not specified
3263 or set to  zero, the counter can have a maximum value of 2,147,483,648  (2 to
3264 the 31 power). When the counter is incremented past  this value, it is reset
3265 to the Minimum.  
3266
3267 \item [*WrapCounter = \lt{}counter-name\gt{}]
3268    \index[console]{*WrapCounter  }
3269    If this value  is specified, when the counter is incremented past the maximum 
3270 and thus reset to the minimum, the counter specified on the  {\bf WrapCounter}
3271 is incremented. (This is not currently  implemented). 
3272
3273 \item [Catalog = \lt{}catalog-name\gt{}]
3274    \index[console]{Catalog  }
3275    If this directive is  specified, the counter and its values will be saved in 
3276 the specified catalog. If this directive is not present, the  counter will be
3277 redefined each time that Bacula is started. 
3278 \end{description}
3279
3280 \subsection*{ A Complete Example Director Configuration File}
3281 \label{SampleDirectorConfiguration}
3282 \index[general]{File!Complete Example Director Configuration }
3283 \index[general]{Complete Example Director Configuration File }
3284 \addcontentsline{toc}{subsection}{Complete Example Director Configuration File}
3285
3286 An example Director configuration file might be the following: 
3287
3288 \footnotesize
3289 \begin{verbatim}
3290 #
3291 # Default Bacula Director Configuration file
3292 #
3293 #  The only thing that MUST be changed is to add one or more
3294 #   file or directory names in the Include directive of the
3295 #   FileSet resource.
3296 #
3297 #  For Bacula release 1.15 (5 March 2002) -- redhat
3298 #
3299 #  You might also want to change the default email address
3300 #   from root to your address.  See the "mail" and "operator"
3301 #   directives in the Messages resource.
3302 #
3303 Director {                            # define myself
3304   Name = rufus-dir
3305   QueryFile = "/home/kern/bacula/bin/query.sql"
3306   WorkingDirectory = "/home/kern/bacula/bin/working"
3307   PidDirectory = "/home/kern/bacula/bin/working"
3308   Password = "XkSfzu/Cf/wX4L8Zh4G4/yhCbpLcz3YVdmVoQvU3EyF/"
3309 }
3310 # Define the backup Job
3311 Job {
3312   Name = "NightlySave"
3313   Type = Backup
3314   Level = Incremental                 # default
3315   Client=rufus-fd
3316   FileSet="Full Set"
3317   Schedule = "WeeklyCycle"
3318   Storage = DLTDrive
3319   Messages = Standard
3320   Pool = Default
3321 }
3322 Job {
3323   Name = "Restore"
3324   Type = Restore
3325   Client=rufus-fd
3326   FileSet="Full Set"
3327   Where = /tmp/bacula-restores
3328   Storage = DLTDrive
3329   Messages = Standard
3330   Pool = Default
3331 }
3332    
3333 # List of files to be backed up
3334 FileSet {
3335   Name = "Full Set"
3336   Include {
3337     Options { signature=SHA1 }
3338 #
3339 #  Put your list of files here, one per line or include an
3340 #    external list with:
3341 #
3342 #    @file-name
3343 #
3344 #  Note: / backs up everything
3345   File = /
3346   }
3347   Exclude { }
3348 }
3349 # When to do the backups
3350 Schedule {
3351   Name = "WeeklyCycle"
3352   Run = Full sun at 1:05
3353   Run = Incremental mon-sat at 1:05
3354 }
3355 # Client (File Services) to backup
3356 Client {
3357   Name = rufus-fd
3358   Address = rufus
3359   Catalog = MyCatalog
3360   Password = "MQk6lVinz4GG2hdIZk1dsKE/LxMZGo6znMHiD7t7vzF+"
3361   File Retention = 60d      # sixty day file retention
3362   Job Retention = 1y        # 1 year Job retention
3363   AutoPrune = yes           # Auto apply retention periods
3364 }
3365 # Definition of DLT tape storage device
3366 Storage {
3367   Name = DLTDrive
3368   Address = rufus
3369   Password = "jMeWZvfikUHvt3kzKVVPpQ0ccmV6emPnF2cPYFdhLApQ"
3370   Device = "HP DLT 80"      # same as Device in Storage daemon
3371   Media Type = DLT8000      # same as MediaType in Storage daemon
3372 }
3373 # Definition of DDS tape storage device
3374 Storage {
3375   Name = SDT-10000
3376   Address = rufus
3377   Password = "jMeWZvfikUHvt3kzKVVPpQ0ccmV6emPnF2cPYFdhLApQ"
3378   Device = SDT-10000        # same as Device in Storage daemon
3379   Media Type = DDS-4        # same as MediaType in Storage daemon
3380 }
3381 # Definition of 8mm tape storage device
3382 Storage {
3383   Name = "8mmDrive"
3384   Address = rufus
3385   Password = "jMeWZvfikUHvt3kzKVVPpQ0ccmV6emPnF2cPYFdhLApQ"
3386   Device = "Exabyte 8mm"
3387   MediaType = "8mm"
3388 }
3389 # Definition of file storage device
3390 Storage {
3391   Name = File
3392   Address = rufus
3393   Password = "jMeWZvfikUHvt3kzKVVPpQ0ccmV6emPnF2cPYFdhLApQ"
3394   Device = FileStorage
3395   Media Type = File
3396 }
3397 # Generic catalog service
3398 Catalog {
3399   Name = MyCatalog
3400   dbname = bacula; user = bacula; password = ""
3401 }
3402 # Reasonable message delivery -- send most everything to
3403 #   the email address and to the console
3404 Messages {
3405   Name = Standard
3406   mail = root@localhost = all, !skipped, !terminate
3407   operator = root@localhost = mount
3408   console = all, !skipped, !saved
3409 }
3410     
3411 # Default pool definition
3412 Pool {
3413   Name = Default
3414   Pool Type = Backup
3415   AutoPrune = yes
3416   Recycle = yes
3417 }
3418 #
3419 # Restricted console used by tray-monitor to get the status of the director
3420 #
3421 Console {
3422   Name = Monitor
3423   Password = "GN0uRo7PTUmlMbqrJ2Gr1p0fk0HQJTxwnFyE4WSST3MWZseR"
3424   CommandACL = status, .status
3425 }
3426 \end{verbatim}
3427 \normalsize