PidDirectory = "@piddir@"
Maximum Concurrent Jobs = 1
Password = "@dir_password@" # Console password
- Messages = Standard
+ Messages = Daemon
}
-#
-# Define the main nightly save backup job
-# By default, this job will back up to disk in /tmp
-Job {
- Name = "Client1"
+JobDefs {
+ Name = "DefaultJob"
Type = Backup
+ Level = Incremental
Client = @hostname@-fd
FileSet = "Full Set"
Schedule = "WeeklyCycle"
Storage = File
Messages = Standard
Pool = Default
+ Priority = 10
+}
+
+
+#
+# Define the main nightly save backup job
+# By default, this job will back up to disk in @archivedir@
+Job {
+ Name = "Client1"
+ JobDefs = "DefaultJob"
Write Bootstrap = "@working_dir@/Client1.bsr"
}
+#Job {
+# Name = "Client2"
+# Client = @hostname@2-fd
+# JobDefs = "DefaultJob"
+# Write Bootstrap = "@working_dir@/Client2.bsr"
+#}
+
# Backup the catalog database (after the nightly save)
Job {
Name = "BackupCatalog"
- Type = Backup
- Client=@hostname@-fd
+ JobDefs = "DefaultJob"
+ Level = Full
FileSet="Catalog"
Schedule = "WeeklyCycleAfterBackup"
- Storage = File
- Messages = Standard
- Pool = Default
# This creates an ASCII copy of the catalog
- RunBeforeJob = "@scriptdir@/make_catalog_backup -u bacula"
+ # WARNING!!! Passing the password via the command line is insecure.
+ # see comments in make_catalog_backup for details.
+ # Arguments to make_catalog_backup are:
+ # make_catalog_backup <database-name> <user-name> <password> <host>
+ RunBeforeJob = "@scriptdir@/make_catalog_backup @db_name@ @db_user@"
# This deletes the copy of the catalog
RunAfterJob = "@scriptdir@/delete_catalog_backup"
Write Bootstrap = "@working_dir@/BackupCatalog.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=@hostname@-fd
- FileSet="Full Set"
- Storage = File
- Messages = Standard
+ Client=@hostname@-fd
+ FileSet="Full Set"
+ Storage = File
Pool = Default
- Where = /tmp/bacula-restores
+ Messages = Standard
+ Where = @archivedir@/bacula-restores
}
# List of files to be backed up
FileSet {
Name = "Full Set"
- Include = signature=MD5 {
+ Include {
+ Options {
+ signature = MD5
+ }
#
-# Put your list of files here, one per line or include an
-# external list with:
+# Put your list of files here, preceded by 'File =', one per line
+# or include an external list with:
#
-# <file-name
+# File = <file-name
#
# Note: / backs up everything on the root partition.
# if you have other partitons such as /usr or /home
# directory to give a reasonable FileSet to backup to
# disk storage during initial testing.
#
- @BUILD_DIR@
+ File = @BUILD_DIR@
}
#
# If you backup the root directory, the following two excluded
# files can be useful
#
- Exclude = { /proc /tmp /.journal /.fsck }
+ Exclude {
+ File = /proc
+ File = /tmp
+ File = /.journal
+ File = /.fsck
+ }
}
#
# and incremental backups other days
Schedule {
Name = "WeeklyCycle"
- Run = Full 1st sun at 1:05
- Run = Differential 2nd-5th sun at 1:05
- Run = Incremental mon-sat at 1:05
+ 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 1:10
+ Run = Full sun-sat at 23:10
}
# This is the backup of the catalog
FileSet {
Name = "Catalog"
- Include = signature=MD5 {
- @working_dir@/bacula.sql
+ Include {
+ Options {
+ signature = MD5
+ }
+ File = @working_dir@/bacula.sql
}
}
FDPort = @fd_port@
Catalog = MyCatalog
Password = "@fd_password@" # password for FileDaemon
- File Retention = 30d # 30 days
- Job Retention = 180d # six months
+ File Retention = 30 days # 30 days
+ Job Retention = 6 months # six months
AutoPrune = yes # Prune expired Jobs/Files
}
-# Definiton of file storage device
+#
+# Second Client (File Services) to backup
+# You should change Name, Address, and Password before using
+#
+#Client {
+# Name = @hostname@2-fd
+# Address = @hostname@2
+# FDPort = @fd_port@
+# 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 = @hostname@ # N.B. Use a fully qualified name here
SDPort = @sd_port@
Password = "@sd_password@"
Media Type = File
}
-# Definition of DLT tape storage device
-#Storage {
-# Name = DLTDrive
-# Address = @hostname@ # N.B. Use a fully qualified name here
-# SDPort = @sd_port@
-# Password = "@sd_password@" # password for Storage daemon
-# Device = "HP DLT 80" # must be same as Device in Storage daemon
-# Media Type = DLT8000 # must be same as MediaType in Storage daemon
-#}
+
# Definition of DDS tape storage device
#Storage {
-# Name = SDT-10000
+# Name = DDS-4
+# Do not use "localhost" here
# Address = @hostname@ # N.B. Use a fully qualified name here
# SDPort = @sd_port@
# Password = "@sd_password@" # password for Storage daemon
-# Device = SDT-10000 # must be same as Device in 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 = @hostname@ # N.B. Use a fully qualified name here
# SDPort = @sd_port@
# Password = "@sd_password@"
# MediaType = "8mm"
#}
+# Definition of DVD storage device
+#Storage {
+# Name = "DVD"
+# Do not use "localhost" here
+# Address = @hostname@ # N.B. Use a fully qualified name here
+# SDPort = @sd_port@
+# Password = "@sd_password@"
+# Device = "DVD Writer"
+# MediaType = "DVD"
+#}
+
# Generic catalog service
Catalog {
Name = MyCatalog
- dbname = bacula; user = bacula; password = ""
+# Uncomment the following line if you want the dbi driver
+# dbdriver = "dbi:mysql"; dbaddress = 127.0.0.1; dbport = 3306
+ dbname = @db_name@; user = @db_user@; password = ""
}
# Reasonable message delivery -- send most everything to email address
# and to the console
Messages {
Name = Standard
- mailcommand = "@sbindir@/smtp -h @smtp_host@ -f \"\(Bacula\) %r\" -s \"Bacula: %t %e of %c %l\" %r"
- operatorcommand = "@sbindir@/smtp -h @smtp_host@ -f \"\(Bacula\) %r\" -s \"Bacula: Intervention needed for %j\" %r"
+#
+# 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 = "@sbindir@/bsmtp -h @smtp_host@ -f \"\(Bacula\) \<%r\>\" -s \"Bacula: %t %e of %c %l\" %r"
+ operatorcommand = "@sbindir@/bsmtp -h @smtp_host@ -f \"\(Bacula\) \<%r\>\" -s \"Bacula: Intervention needed for %j\" %r"
mail = @job_email@ = all, !skipped
operator = @job_email@ = 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 the scroll off the console.
+# also keep all your messages if they scroll off the console.
#
append = "@working_dir@/log" = all, !skipped
}
+
+
+#
+# Message delivery for daemon messages (no job).
+Messages {
+ Name = Daemon
+ mailcommand = "@sbindir@/bsmtp -h @smtp_host@ -f \"\(Bacula\) \<%r\>\" -s \"Bacula daemon message\" %r"
+ mail = @job_email@ = all, !skipped
+ console = all, !skipped, !saved
+ append = "@working_dir@/log" = all, !skipped
+}
+
+
+
# Default pool definition
Pool {
Pool Type = Backup
Recycle = yes # Bacula can automatically recycle Volumes
AutoPrune = yes # Prune expired volumes
- Volume Retention = 365d # one year
- Accept Any Volume = yes # write on any volume in the pool
+ Volume Retention = 365 days # one year
+}
+
+# Scratch pool definition
+Pool {
+ Name = Scratch
+ Pool Type = Backup
+}
+
+#
+# Restricted console used by tray-monitor to get the status of the director
+#
+Console {
+ Name = @hostname@-mon
+ Password = "@mon_dir_password@"
+ CommandACL = status, .status
}