Director { # define myself
Name = @hostname@-dir
DIRport = @dir_port@ # where we listen for UA connections
- QueryFile = "@sysconfdir@/query.sql"
+ QueryFile = "@scriptdir@/query.sql"
WorkingDirectory = "@working_dir@"
PidDirectory = "@piddir@"
- SubSysDirectory = "@subsysdir@"
Maximum Concurrent Jobs = 1
Password = "@dir_password@" # Console password
- Messages = Standard
+ Messages = Daemon
}
-# Define the backup Job
-Job {
- Name = "NightlySave"
+JobDefs {
+ Name = "DefaultJob"
Type = Backup
- Client=@hostname@-fd
- FileSet="Full Set"
+ Level = Incremental
+ Client = @hostname@-fd
+ FileSet = "Full Set"
Schedule = "WeeklyCycle"
- Storage = DLTDrive
+ 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 /tmp
+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"
+ JobDefs = "DefaultJob"
+ Level = Full
+ FileSet="Catalog"
+ Schedule = "WeeklyCycleAfterBackup"
+ # This creates an ASCII copy of the catalog
+ RunBeforeJob = "@scriptdir@/make_catalog_backup bacula bacula"
+ # 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
+ Name = "RestoreFiles"
Type = Restore
- Client=@hostname@-fd
- FileSet="Full Set"
- Storage = DLTDrive
- Messages = Standard
+ Client=@hostname@-fd
+ FileSet="Full Set"
+ Storage = File
Pool = Default
- Where = /tmp
+ Messages = Standard
+ Where = /tmp/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
-
- /
+# Note: / backs up everything on the root partition.
+# if you have other partitons such as /usr or /home
+# you will probably want to add them too.
+#
+# By default this is defined to point to the Bacula build
+# directory to give a reasonable FileSet to backup to
+# disk storage during initial testing.
+#
+ File = @BUILD_DIR@
+ }
+#
+# If you backup the root directory, the following two excluded
+# files can be useful
+#
+ Exclude {
+ File = /proc
+ File = /tmp
+ File = /.journal
+ File = /.fsck
}
- Exclude = { }
}
-# When to do the backups
+#
+# 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 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 23:10
+}
+
+# This is the backup of the catalog
+FileSet {
+ Name = "Catalog"
+ Include {
+ Options {
+ signature = MD5
+ }
+ File = @working_dir@/bacula.sql
+ }
}
# Client (File Services) to backup
FDPort = @fd_port@
Catalog = MyCatalog
Password = "@fd_password@" # password for FileDaemon
- File Retention = 180d # six months
- Job Retention = 365d # one year
+ 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 = @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 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
- 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
- Media Type = DDS-4 # must be same as MediaType in Storage daemon
-}
-
-# Definition of 8mm tape storage device
-Storage {
- Name = "8mmDrive"
- Address = @hostname@ # N.B. Use a fully qualified name here
- SDPort = @sd_port@
- Password = "@sd_password@"
- Device = "Exabyte 8mm"
- MediaType = "8mm"
-}
-# Definiton of file storage device
+# 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@"
}
+
+# Definition of DDS tape storage device
+#Storage {
+# 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 = 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@"
+# Device = "Exabyte 8mm"
+# 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
# 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 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
+ 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
}