Bacula 1.30 User's Guide | Chapter 5

Installing Bacula | Index | Director Configuration

# Customizing the Configuration Files

When each of the three Bacula daemons starts, it reads a configuration file specified on the command line or the default bacula-dir.conf, bacula-fd.conf, bacula-sd.conf, or console.conf for the Director daemon, the File daemon, the Storage daemon, and the Console program respectively.

Each service (Director, Client, Storage, Console) has its own configuration file containing a set of Resource Records. These resources are very similar from one service to another, but may contain different records depending on the service. For example, in the Director's resource file, the Director resource defines the name of the Director, a number of global Director parameters and his password. In the File daemon configuration file, the Director resource specifies which Directors are permitted to use the File daemon.

Before running Bacula for the first time, you must customize the configuration files for each daemon. Default configuration files will have been created by the installation process, but you will need to modify them to correspond to your system.

## Resource Record Format

Although, you won't need to know the details of all the records, a basic knowledge of Bacula resource records is essential. Each record contained within the resource (within the braces) is composed of a keyword followed by an equal sign (=) followed by one or more values. The keywords must be one of the known Bacula resource record keywords, and it may be composed of upper or lower case characters and spaces.

Each resource definition MUST contain a Name record, and may optionally contain a Description record. The Name record is used to uniquely identify the resource. The Description record is (will be) used during display of the record to provide easier human recognition of the record. For example:

    Director {
      Name = "MyDir"
      Description = "Main Bacula Director"
      WorkingDirectory = "$HOME/bacula/bin/working"
    }

Defines the Director resource with the name "MyDir" and a working directory $HOME/bacula/bin/working. In general, if you want spaces in a name to the right of the first equal sign (=), you must enclose that name within double quotes. Otherwise quotes are not generally necessary because once defined, quoted strings and unquoted strings are all equal.

### Comments

When reading the configuration file, blank lines are ignored and everything after a hash sign (#) until the end of the line is taken to be a comment. A semicolon (;) is a logical end of line, and anything after the semicolon is considered as the next statement. If a statement appears on a line by itself, a semicolon is not necessary to terminate it, so generally in the examples in this manual, you will not see many semicolons.

### Upper and Lower Case and Spaces

Case (upper/lower) and spaces are totally ignored in the resource record keywords (the part before the equal sign).

Within the keyword (i.e. before the equal sign), spaces are not significant. Thus the keywords: name, Name, and N a m e are all identical.

Spaces after the equal sign and before the first character of the value are ignored.

In general, spaces within a value are significant (not ignored), and if the value is a name, you must enclose the name in double quotes for the spaces to be accepted. Names may contain up to 127 characters. Currently, a name may contain any ASCII character. Within a quoted string, any character following a slash (\) is taken as itself (handy for inserting slashes and double quotes ("). Please note, however, that Bacula resource names as well as certain other names (e.g. Volume names) will in the future be severely limited to permit only letters (including ISO accented letters), numbers, and a few special characters (space, underscore, ...). All other characters and punctuation will be illegal.

### Recognized Primitive Data Types

When parsing the resource records, Bacula classifies the data according to the types listed below. The first time you read this, it may appear a bit overwhelming, but in reality, it is all pretty logical and straight forward.

name
  A keyword or name consisting of alpha numeric characters, including the hyphen, underscore, and dollar characters. The first character of a name must be a letter. A name has a maximum length currently set to 127 bytes. Typically keywords appear on the left side of an equal (i.e. they are Bacula keywords). Keywords may not be quoted.
name-string
  A name-string is similar to a name, except that the name may be quoted and can thus contain additional characters including spaces. Name strings are limited to 127 characters in length. Name strings are typically used on the right side of an equal (i.e. they are values to be associated with a keyword.
string
  A quoted string containing virtually any character including spaces, or a non-quoted string. A string may be of any length. Strings are typically values that correspond to filenames, directories, or system command names. A forward slash (\) turns the next character into itself, so to include a double quote in a string, you precede the double quote with a forward slash. Likewise to include a forward slash.
directory
  A directory is either a quoted or non-quoted string. A directory will be passed to your standard shell for expansion when it is scanned. Thus constructs such as $HOME are interpreted to be their correct values.
password
  This is a Bacula password and it is stored internally in MD5 hashed format.
integer
  A 32 bit integer value. It may be positive or negative.
positive integer
  A 32 bit positive integer value.
long integer
  A 64 bit integer value. Typically these are values such as bytes that can exceed 4 billion and thus require a 64 bit value.
yes/no
  Either a yes or a no.
size
  A size specified as bytes. Typically, this is a floating point scientific input format followed by an optional modifier. The floating point input is stored as a 64 bit integer value. If a modifier is present, it must immediately follow the value with no intervening spaces. The following modifiers are permitted:

k
  1,024 (kilobytes)
m
  1,048,576 (megabytes)
g
  1,073,741,824 (gigabytes)

If you want to input one million rather than the megabyte size (1,048,576), you can simply enter 1.0e6.

time
  A time or durations specified in seconds. Typically, this is a floating point input format followed by an optional modifier. The floating point input is stored as a 64 bit integer value. If a modifier is present, it must immediately follow the value with no intervening spaces. The following modifiers are permitted:

s
  seconds
n
  minutes (60 seconds)
h
  hours (3600 seconds)
d
  days (3600*24 seconds)
w
  weeks (3600*24*7 seconds)
m
  months (3600*24*30 seconds)
q
  quarters (3600*24*91 seconds)
y
  years (3600*24*365 seconds)

## Resource Types

The following table lists all current Bacula resource types. It shows what resources must be defined for each service (daemon). The default configuration files will already contain at least one example of each permitted resource, so you need not worry about creating all these kinds of records from scratch.

Resource | Director | Client | Storage | Console
--- | --- | --- | --- | ---
Catalog | Yes | No | No | No
Client | Yes | Yes | No | No
Device | No | No | Yes | No
Director | Yes | Yes | Yes | Yes
FileSet | Yes | No | No | No
Job | Yes | No | No | No
Message | Yes | Yes | Yes | No
Pool | Yes | No | No | No
Schedule | Yes | No | No | No
Storage | Yes | No | Yes | No

The details of each Resource and the records permitted therein are described in the following chapters.

The following configuration files must be defined:

- Console -- to define the resources for the Console program (user interface to the Director). It defines which Directors are available so that you may interact with them.
- Director -- to define the resources necessary for the Director. You define all the Clients and Storage daemons that you use in this configuration file.
- Client -- to define the resources for each client to be backed up. That is, you will have a separate Client resource file on each machine that runs a File daemon.
- Storage -- to define the resources to be used by each Storage daemon. Normally, you will have a single Storage daemon that controls your tape drive or tape drives. However, if you have tape drives on several machines, you will have at least one Storage daemon per machine.

Installing Bacula | Index | Director Configuration

Bacula 1.30 User's Guide The Network Backup Solution | Copyright © 2000-2003 Kern Sibbald and John Walker