~ubuntu-branches/ubuntu/trusty/bacula-doc/trusty

« back to all changes in this revision

Viewing changes to manual/configure.tex

  • Committer: Bazaar Package Importer
  • Author(s): John Goerzen
  • Date: 2006-08-15 09:44:08 UTC
  • Revision ID: james.westby@ubuntu.com-20060815094408-1kvvfls2hs3d9uw8
Tags: upstream-1.38.11.1
ImportĀ upstreamĀ versionĀ 1.38.11.1

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
%%
 
2
%%
 
3
 
 
4
\section*{Customizing the Configuration Files}
 
5
\label{_ChapterStart16}
 
6
\index[general]{Files!Customizing the Configuration }
 
7
\index[general]{Customizing the Configuration Files }
 
8
\addcontentsline{toc}{section}{Customizing the Configuration Files}
 
9
 
 
10
When each of the Bacula programs starts, it reads a configuration file
 
11
specified on the command line or the default {\bf bacula-dir.conf}, {\bf
 
12
bacula-fd.conf}, {\bf bacula-sd.conf}, or {\bf console.conf} for the Director
 
13
daemon, the File daemon, the Storage daemon, and the Console program
 
14
respectively. 
 
15
 
 
16
Each service (Director, Client, Storage, Console) has its own configuration
 
17
file containing a set of Resource definitions. These resources are very
 
18
similar from one service to another, but may contain different directives
 
19
(records) depending on the service. For example, in the Director's resource
 
20
file, the {\bf Director} resource defines the name of the Director, a number
 
21
of global Director parameters and his password. In the File daemon
 
22
configuration file, the {\bf Director} resource specifies which Directors are
 
23
permitted to use the File daemon. 
 
24
 
 
25
Before running Bacula for the first time, you must customize the configuration
 
26
files for each daemon. Default configuration files will have been created by
 
27
the installation process, but you will need to modify them to correspond to
 
28
your system. An overall view of the resources can be seen in the following: 
 
29
 
 
30
\addcontentsline{lof}{figure}{Bacula Objects}
 
31
\includegraphics{./bacula-objects.eps} 
 
32
\\
 
33
(thanks to Aristides Maniatis for the above graphic) 
 
34
\label{ResFormat}
 
35
 
 
36
\subsection*{Resource Directive Format}
 
37
\index[general]{Resource Directive Format }
 
38
\index[general]{Format!Resource Directive }
 
39
\addcontentsline{toc}{subsection}{Resource Directive Format}
 
40
 
 
41
Although, you won't need to know the details of all the directives a basic
 
42
knowledge of Bacula resource directives is essential. Each directive contained
 
43
within the resource (within the braces) is composed of a keyword followed by
 
44
an equal sign (=) followed by one or more values. The keywords must be one of
 
45
the known Bacula resource record keywords, and it may be composed of upper or
 
46
lower case characters and spaces. 
 
47
 
 
48
Each resource definition MUST contain a Name directive, and may optionally
 
49
contain a Description directive (or record). The Name directive is used to
 
50
uniquely identify the resource. The Description directive is (will be) used
 
51
during display of the Resource to provide easier human recognition. For
 
52
example: 
 
53
 
 
54
\footnotesize
 
55
\begin{verbatim}
 
56
Director {
 
57
  Name = "MyDir"
 
58
  Description = "Main Bacula Director"
 
59
  WorkingDirectory = "$HOME/bacula/bin/working"
 
60
}
 
61
\end{verbatim}
 
62
\normalsize
 
63
 
 
64
Defines the Director resource with the name "MyDir" and a working directory
 
65
\$HOME/bacula/bin/working. In general, if you want spaces in a name to the
 
66
right of the first equal sign (=), you must enclose that name within double
 
67
quotes. Otherwise quotes are not generally necessary because once defined,
 
68
quoted strings and unquoted strings are all equal. 
 
69
\label{Comments}
 
70
 
 
71
\subsubsection*{Comments}
 
72
\index[general]{Comments }
 
73
\addcontentsline{toc}{subsubsection}{Comments}
 
74
 
 
75
When reading the configuration file, blank lines are ignored and everything
 
76
after a hash sign (\#) until the end of the line is taken to be a comment. A
 
77
semicolon (;) is a logical end of line, and anything after the semicolon is
 
78
considered as the next statement. If a statement appears on a line by itself,
 
79
a semicolon is not necessary to terminate it, so generally in the examples in
 
80
this manual, you will not see many semicolons. 
 
81
\label{Case1}
 
82
 
 
83
\subsubsection*{Upper and Lower Case and Spaces}
 
84
\index[general]{Spaces!Upper and Lower Case and }
 
85
\index[general]{Upper and Lower Case and Spaces }
 
86
\addcontentsline{toc}{subsubsection}{Upper and Lower Case and Spaces}
 
87
 
 
88
Case (upper/lower) and spaces are totally ignored in the resource directive
 
89
keywords (the part before the equal sign). 
 
90
 
 
91
Within the keyword (i.e. before the equal sign), spaces are not significant.
 
92
Thus the keywords: {\bf name}, {\bf Name}, and {\bf N a m e} are all
 
93
identical. 
 
94
 
 
95
Spaces after the equal sign and before the first character of the value are
 
96
ignored. 
 
97
 
 
98
In general, spaces within a value are significant (not ignored), and if the
 
99
value is a name, you must enclose the name in double quotes for the spaces to
 
100
be accepted. Names may contain up to 127 characters. Currently, a name may
 
101
contain any ASCII character. Within a quoted string, any character following a
 
102
backslash (\textbackslash{}) is taken as itself (handy for inserting
 
103
blackslashes and double quotes ("). 
 
104
 
 
105
Please note, however, that Bacula resource names as well as certain other
 
106
names (e.g. Volume names) will in the future be severely limited to permit
 
107
only letters (including ISO accented letters), numbers, and a few special
 
108
characters (space, underscore, ...). All other characters and punctuation will
 
109
be illegal. 
 
110
\label{Includes}
 
111
 
 
112
\subsubsection*{Including other Configuration Files}
 
113
\index[general]{Including other Configuration Files }
 
114
\index[general]{Files!Including other Configuration }
 
115
\index[general]{Using @ to include other files}
 
116
\index[general{@{\bf filename}}
 
117
\addcontentsline{toc}{subsubsection}{Including other Configuration Files}
 
118
 
 
119
If you wish to break your configuration file into smaller pieces, you can do
 
120
so by including other files using the syntax @{\bf filename} where {\bf
 
121
filename} is the full path and filename of another file. The @filename
 
122
specification can be given anywhere a primitive token would appear. 
 
123
\label{DataTypes}
 
124
 
 
125
\subsubsection*{Recognized Primitive Data Types}
 
126
\index[general]{Types!Recognized Primitive Data }
 
127
\index[general]{Recognized Primitive Data Types }
 
128
\addcontentsline{toc}{subsubsection}{Recognized Primitive Data Types}
 
129
 
 
130
When parsing the resource directives, Bacula classifies the data according to
 
131
the types listed below. The first time you read this, it may appear a bit
 
132
overwhelming, but in reality, it is all pretty logical and straightforward. 
 
133
 
 
134
\begin{description}
 
135
 
 
136
\item [name]
 
137
   \index[fd]{name}
 
138
   A keyword or name consisting of alphanumeric characters, including the
 
139
hyphen, underscore, and dollar  characters. The first character of a {\bf
 
140
name} must be  a letter.  A name has a maximum length currently set to 127
 
141
bytes.  Typically keywords appear on the left side of an equal (i.e.  they are
 
142
Bacula keywords -- i.e. Resource names or  directive names). Keywords may not
 
143
be quoted.  
 
144
 
 
145
\item [name-string]
 
146
   \index[fd]{name-string }
 
147
   A name-string is similar to a name,  except that the name may be quoted and
 
148
can thus contain  additional characters including spaces. Name strings  are
 
149
limited to 127 characters in length. Name strings  are typically used on the
 
150
right side of an equal (i.e.  they are values to be associated with a keyword.
 
151
 
 
152
 
 
153
\item [string]
 
154
   \index[fd]{string }
 
155
   A quoted string containing virtually any  character including spaces, or a
 
156
non-quoted string. A  string may be of any length. Strings are typically
 
157
values  that correspond to filenames, directories, or system  command names. A
 
158
backslash (\textbackslash{}) turns the next character into  itself, so to
 
159
include a double quote in a string, you precede the  double quote with a
 
160
backslash. Likewise to include a backslash. 
 
161
 
 
162
\item [directory]
 
163
   \index[dir]{directory }
 
164
   A directory is either a quoted or  non-quoted string. A directory will be
 
165
passed to your  standard shell for expansion when it is scanned. Thus 
 
166
constructs such as {\bf \$HOME} are interpreted to be  their correct values. 
 
167
 
 
168
\item [password]
 
169
   \index[dir]{password }
 
170
   This is a Bacula password and  it is stored internally in MD5 hashed format. 
 
171
 
 
172
\item [integer]
 
173
   \index[dir]{integer }
 
174
   A 32 bit integer value. It may be positive  or negative. 
 
175
 
 
176
\item [positive integer]
 
177
   \index[dir]{positive integer }
 
178
   A 32 bit positive integer value. 
 
179
 
 
180
\item [long integer]
 
181
   \index[dir]{long integer }
 
182
   A 64 bit integer value. Typically these  are values such as bytes that can
 
183
exceed 4 billion and thus  require a 64 bit value. 
 
184
 
 
185
\item [yes|no]
 
186
   \index[dir]{yes or no }
 
187
   Either a {\bf yes} or a {\bf no}. 
 
188
 
 
189
\label{Size1}
 
190
\item [size]
 
191
\index[dir]{size }
 
192
A size specified as bytes. Typically, this is  a floating point scientific
 
193
input format followed by an optional modifier. The  floating point input is
 
194
stored as a 64 bit integer value.  If a modifier is present, it must
 
195
immediately follow the  value with no intervening spaces. The following
 
196
modifiers are permitted:  
 
197
 
 
198
\begin{description}
 
199
\item [k]
 
200
   1,024 (kilobytes)  
 
201
 
 
202
\item [kb]
 
203
   1,000 (kilobytes)  
 
204
 
 
205
\item [m]
 
206
   1,048,576 (megabytes)  
 
207
 
 
208
\item [mb]
 
209
   1,000,000 (megabytes)  
 
210
 
 
211
\item [g]
 
212
   1,073,741,824 (gigabytes) 
 
213
 
 
214
\item [gb]
 
215
   1,000,000,000 (gigabytes) 
 
216
\end{description}
 
217
 
 
218
\label{Time}
 
219
\item [time]
 
220
\index[dir]{time}
 
221
A time or duration specified in seconds.  The time is stored internally as
 
222
a 64 bit integer value, but it is specified in two parts: a number part and
 
223
a modifier part.  The number can be an integer or a floating point number.
 
224
If it is entered in floating point notation, it will be rounded to the
 
225
nearest integer.  The modifier is mandatory and follows the number part,
 
226
either with or without intervening spaces.  The following modifiers are
 
227
permitted:
 
228
 
 
229
\begin{description}
 
230
 
 
231
\item [seconds]
 
232
   \index[dir]{seconds }
 
233
   seconds  
 
234
 
 
235
\item [minutes]
 
236
   \index[dir]{minutes }
 
237
   minutes (60 seconds)  
 
238
 
 
239
\item [hours]
 
240
   \index[dir]{hours }
 
241
   hours (3600 seconds)  
 
242
 
 
243
\item [days]
 
244
   \index[dir]{days }
 
245
   days (3600*24 seconds)  
 
246
 
 
247
\item [weeks]
 
248
   \index[dir]{weeks }
 
249
   weeks (3600*24*7 seconds)  
 
250
 
 
251
\item [months]
 
252
   \index[dir]{months }
 
253
   months (3600*24*30 seconds)  
 
254
 
 
255
\item [quarters]
 
256
   \index[dir]{quarters }
 
257
   quarters (3600*24*91 seconds)  
 
258
 
 
259
\item [years]
 
260
   \index[dir]{years }
 
261
   years (3600*24*365 seconds)  
 
262
\end{description}
 
263
 
 
264
Any abbreviation of these modifiers is also permitted (i.e.  {\bf seconds}
 
265
may be specified as {\bf sec} or {\bf s}.  A specification of {\bf m} will
 
266
be taken as months.
 
267
 
 
268
The specification of a time may have as many number/modifier parts as you
 
269
wish.  For example:
 
270
 
 
271
\footnotesize
 
272
\begin{verbatim}
 
273
1 week 2 days 3 hours 10 mins
 
274
1 month 2 days 30 sec
 
275
   
 
276
\end{verbatim}
 
277
\normalsize
 
278
 
 
279
are valid date specifications.
 
280
 
 
281
\end{description}
 
282
 
 
283
\label{ResTypes}
 
284
\subsection*{Resource Types}
 
285
\index[general]{Types!Resource }
 
286
\index[general]{Resource Types }
 
287
\addcontentsline{toc}{subsection}{Resource Types}
 
288
 
 
289
The following table lists all current Bacula resource types. It shows what
 
290
resources must be defined for each service (daemon). The default configuration
 
291
files will already contain at least one example of each permitted resource, so
 
292
you need not worry about creating all these kinds of resources from scratch. 
 
293
 
 
294
\addcontentsline{lot}{table}{Resource Types}
 
295
\begin{longtable}{|l|l|l|l|l|}
 
296
 \hline 
 
297
\multicolumn{1}{|c| }{\bf Resource } & \multicolumn{1}{c| }{\bf Director } &
 
298
\multicolumn{1}{c| }{\bf Client } & \multicolumn{1}{c| }{\bf Storage } &
 
299
\multicolumn{1}{c| }{\bf Console  } \\
 
300
 \hline 
 
301
{Autochanger } & {No  } & {No } & {Yes } & {No  } \\
 
302
\hline
 
303
{Catalog } & {Yes } & {No  } & {No } & {No  } \\
 
304
 \hline 
 
305
{Client  } & {Yes } & {Yes } & {No } & {No  } \\
 
306
 \hline 
 
307
{Console } & {Yes } & {No } & {No } & {Yes  } \\
 
308
 \hline 
 
309
{Device  } & {No  } & {No } & {Yes } & {No  } \\
 
310
 \hline 
 
311
{Director } & {Yes } & {Yes } & {Yes } & {Yes  } \\
 
312
 \hline 
 
313
{FileSet } & {Yes } & {No } & {No } & {No  } \\
 
314
 \hline 
 
315
{Job  } & {Yes } & {No } & {No } & {No  } \\
 
316
 \hline 
 
317
{JobDefs } & {Yes } & {No } & {No } & {No  } \\
 
318
 \hline 
 
319
{Message } & {Yes } & {Yes } & {Yes } & {No  } \\
 
320
 \hline 
 
321
{Pool  } & {Yes } & {No } & {No } & {No  } \\
 
322
 \hline 
 
323
{Schedule } & {Yes } & {No } & {No } & {No  } \\
 
324
 \hline 
 
325
{Storage } & {Yes } & {No } & {Yes } & {No }
 
326
\\ \hline 
 
327
 
 
328
\end{longtable}
 
329
 
 
330
\subsection*{Names, Passwords and Authorization}
 
331
\label{Names}
 
332
\index[general]{Authorization!Names Passwords and }
 
333
\index[general]{Names, Passwords and Authorization }
 
334
\index[general]{Passwords}
 
335
\addcontentsline{toc}{subsection}{Names, Passwords and Authorization}
 
336
 
 
337
In order for one daemon to contact another daemon, it must authorize itself
 
338
with a password. In most cases, the password corresponds to a particular name,
 
339
so both the name and the password must match to be authorized. 
 
340
 
 
341
The default configuration files are automatically defined for correct
 
342
authorization with random passwords. If you add to or modify these files, you
 
343
will need to take care to keep them consistent. 
 
344
 
 
345
Here is sort of a picture of what names/passwords in which files/Resources
 
346
must match up: 
 
347
 
 
348
\includegraphics{./Conf-Diagram.eps} 
 
349
 
 
350
In the left column, you will find the Director, Storage, and Client resources,
 
351
with their names and passwords -- these are all in {\bf bacula-dir.conf}. In
 
352
the right column are where the corresponding values should be found in the
 
353
Console, Storage daemon (SD), and File daemon (FD) configuration files. 
 
354
 
 
355
Please note that the Address, {\bf fd-sd}, that appears in the Storage
 
356
resource of the Director, preceded with and asterisk in the above example, is
 
357
passed to the File daemon in symbolic form. The File daemon then resolves it
 
358
to an IP address. For this reason, you must use either an IP address or a
 
359
fully qualified name. A name such as {\bf localhost}, not being a fully
 
360
qualified name, will resolve in the File daemon to the localhost of the File
 
361
daemon, which is most likely not what is desired. The password used for the
 
362
File daemon to authorize with the Storage daemon is a temporary password
 
363
unique to each Job created by the daemons and is not specified in any .conf
 
364
file. 
 
365
 
 
366
\subsection*{Detailed Information for each Daemon}
 
367
\index[general]{Detailed Information for each Daemon }
 
368
\index[general]{Daemon!Detailed Information for each }
 
369
\addcontentsline{toc}{subsection}{Detailed Information for each Daemon}
 
370
 
 
371
The details of each Resource and the directives permitted therein are
 
372
described in the following chapters. 
 
373
 
 
374
The following configuration files must be defined: 
 
375
 
 
376
\begin{itemize}
 
377
\item 
 
378
   \ilink{Console}{_ChapterStart36} -- to define the resources for 
 
379
   the Console program (user interface to the Director).  It defines which
 
380
Directors are  available so that you may interact with them. 
 
381
\item 
 
382
   \ilink{Director}{_ChapterStart40} -- to define the resources 
 
383
   necessary for the Director. You define all the Clients  and Storage daemons
 
384
that you use in this configuration file.  
 
385
\item 
 
386
   \ilink{Client}{_ChapterStart25} -- to define the resources for 
 
387
   each client to be backed up. That is, you will have a separate  Client
 
388
resource file on each machine that runs a File daemon. 
 
389
\item 
 
390
   \ilink{Storage}{_ChapterStart31} -- to define the resources to 
 
391
   be used by each Storage daemon. Normally, you will have  a single Storage
 
392
daemon that controls your tape drive or tape  drives. However, if you have
 
393
tape drives on several machines,  you will have at least one Storage daemon
 
394
per machine.  
 
395
\end{itemize}