bacula-dir.conf
Official documentation for Bacula 5.2.x can be found here.
This conf file is valid for Bacula release 5.2.x
PidDirectory = "/var/run" Maximum Concurrent Jobs = 1 Password = "@@DIR_PASSWORD@@" # Console password Messages = Daemon
}
JobDefs {
Name = "DefaultJob" Type = Backup Level = Incremental Client = bacula-fd FileSet = "Full Set" Schedule = "WeeklyCycle" Storage = File Messages = Standard Pool = File Priority = 10 Write Bootstrap = "/var/spool/bacula/%c.bsr"
}
# # Define the main nightly save backup job # By default, this job will back up to disk in /tmp Job {
Name = "BackupClient1" JobDefs = "DefaultJob"
}
#Job { # Name = “BackupClient2” # Client = bacula2-fd # JobDefs = “DefaultJob” #}
# Backup the catalog database (after the nightly save) Job {
Name = "BackupCatalog" JobDefs = "DefaultJob" Level = Full FileSet="Catalog" Schedule = "WeeklyCycleAfterBackup" # This creates an ASCII copy of the catalog # Arguments to make_catalog_backup.pl are: # make_catalog_backup.pl <catalog-name> RunBeforeJob = "/usr/libexec/bacula/make_catalog_backup.pl MyCatalog" # This deletes the copy of the catalog RunAfterJob = "/usr/libexec/bacula/delete_catalog_backup" Write Bootstrap = "/var/spool/bacula/%n.bsr" Priority = 11 # run after main backup
}
# # Standard Restore template, to be changed by Console program # Only one such job is needed for all Jobs/Clients/Storage … # Job {
Name = "RestoreFiles" Type = Restore Client=bacula-fd FileSet="Full Set" Storage = File Pool = Default Messages = Standard Where = /tmp/bacula-restores
}
# List of files to be backed up FileSet {
Name = "Full Set" Include { Options { signature = MD5 }
# # Put your list of files here, preceded by 'File =', one per line # or include an external list with: # # File = <file-name # # Note: / backs up everything on the root partition. # if you have other partitions such as /usr or /home # you will probably want to add them too. # # By default this is defined to point to the Bacula binary # directory to give a reasonable FileSet to backup to # disk storage during initial testing. #
File = /usr/sbin }
# # If you backup the root directory, the following two excluded # files can be useful #
Exclude { File = /var/spool/bacula File = /tmp File = /proc File = /tmp File = /.journal File = /.fsck }
}
# # When to do the backups, full backup on first sunday of the month, # differential (i.e. incremental since full) every other sunday, # and incremental backups other days Schedule {
Name = "WeeklyCycle" Run = Full 1st sun at 23:05 Run = Differential 2nd-5th sun at 23:05 Run = Incremental mon-sat at 23:05
}
# This schedule does the catalog. It starts after the WeeklyCycle Schedule {
Name = "WeeklyCycleAfterBackup" Run = Full sun-sat at 23:10
}
# This is the backup of the catalog FileSet {
Name = "Catalog" Include { Options { signature = MD5 } File = "/var/spool/bacula/bacula.sql" }
}
# Client (File Services) to backup Client {
Name = bacula-fd Address = client.example.com FDPort = 9102 Catalog = MyCatalog Password = "@@FD_PASSWORD@@" # password for FileDaemon File Retention = 30 days # 30 days Job Retention = 6 months # six months AutoPrune = yes # Prune expired Jobs/Files
}
# # Second Client (File Services) to backup # You should change Name, Address, and Password before using # #Client { # Name = bacula2-fd # Address = client2.example.com # FDPort = 9102 # Catalog = MyCatalog # Password = “@@FD_PASSWORD@@2” # password for FileDaemon 2 # File Retention = 30 days # 30 days # Job Retention = 6 months # six months # AutoPrune = yes # Prune expired Jobs/Files #}
# Definition of file storage device Storage {
Name = File
# Do not use “localhost” here
Address = storage.example.com # N.B. Use a fully qualified name here SDPort = 9103 Password = "@@SD_PASSWORD@@" Device = FileStorage Media Type = File
}
# Definition of DDS tape storage device #Storage { # Name = DDS-4 # Do not use “localhost” here # Address = storage.example.com # N.B. Use a fully qualified name here # SDPort = 9103 # Password = “@@SD_PASSWORD@@” # password for Storage daemon # Device = DDS-4 # must be same as Device in Storage daemon # Media Type = DDS-4 # must be same as MediaType in Storage daemon # Autochanger = yes # enable for autochanger device #}
# Definition of 8mm tape storage device #Storage { # Name = “8mmDrive” # Do not use “localhost” here # Address = storage.example.com # N.B. Use a fully qualified name here # SDPort = 9103 # Password = “@@SD_PASSWORD@@” # Device = “Exabyte 8mm” # MediaType = “8mm” #}
# Definition of DVD storage device #Storage { # Name = “DVD” # Do not use “localhost” here # Address = storage.example.com # N.B. Use a fully qualified name here # SDPort = 9103 # Password = “@@SD_PASSWORD@@” # Device = “DVD Writer” # MediaType = “DVD” #}
# Generic catalog service Catalog {
Name = MyCatalog
# Uncomment the following line if you want the dbi driver # dbdriver = “dbi:sqlite3”; dbaddress = 127.0.0.1; dbport =
dbname = "bacula"; dbuser = "bacula"; dbpassword = ""
}
# Reasonable message delivery – send most everything to email address # and to the console Messages {
Name = Standard
# # NOTE! If you send to two email or more email addresses, you will need # to replace the %r in the from field (-f part) with a single valid # email address in both the mailcommand and the operatorcommand. # What this does is, it sets the email address that emails would display # in the FROM field, which is by default the same email as they're being # sent to. However, if you send email to more than one address, then # you'll have to set the FROM address manually, to a single address. # for example, a 'no-reply@mydomain.com', is better since that tends to # tell (most) people that its coming from an automated source.
#
mailcommand = "/usr/sbin/bsmtp -h localhost -f \"\(Bacula\) \<%r\>\" -s \"Bacula: %t %e of %c %l\" %r" operatorcommand = "/usr/sbin/bsmtp -h localhost -f \"\(Bacula\) \<%r\>\" -s \"Bacula: Intervention needed for %j\" %r" mail = root@localhost = all, !skipped operator = root@localhost = mount console = all, !skipped, !saved
# # WARNING! the following will create a file that you must cycle from # time to time as it will grow indefinitely. However, it will # also keep all your messages if they scroll off the console. #
append = "/var/spool/bacula/log" = all, !skipped catalog = all
}
# # Message delivery for daemon messages (no job). Messages {
Name = Daemon mailcommand = "/usr/sbin/bsmtp -h localhost -f \"\(Bacula\) \<%r\>\" -s \"Bacula daemon message\" %r" mail = root@localhost = all, !skipped console = all, !skipped, !saved append = "/var/log/bacula.log" = all, !skipped
}
# Default pool definition Pool {
Name = Default Pool Type = Backup Recycle = yes # Bacula can automatically recycle Volumes AutoPrune = yes # Prune expired volumes Volume Retention = 365 days # one year
}
# File Pool definition Pool {
Name = File Pool Type = Backup Recycle = yes # Bacula can automatically recycle Volumes AutoPrune = yes # Prune expired volumes Volume Retention = 365 days # one year Maximum Volume Bytes = 50G # Limit Volume size to something reasonable Maximum Volumes = 100 # Limit number of Volumes in Pool
}
# Scratch pool definition Pool {
Name = Scratch Pool Type = Backup
}
# # Restricted console used by tray-monitor to get the status of the director # Console {
Name = bacula-mon Password = "@@MON_DIR_PASSWORD@@" CommandACL = status, .status
}