########################################################################
Director {
- Name = <%= bacula_director_name %>
- Description = <%= hostname %> - <%= domain %> Bacula Director
+ Name = <%= @bacula_director_name %>
+ Description = <%= @hostname %> - <%= @domain %> Bacula Director
QueryFile = "/etc/bacula/scripts/query.sql"
WorkingDirectory = "/var/lib/bacula"
- PidDirectory = "/var/run/bacula"
+ PidDirectory = "/run/bacula"
Maximum Concurrent Jobs = 20
- Password = "<%= bacula_director_secret %>"
+ Password = "<%= @bacula_director_secret %>"
Messages = Daemon
DirAddresses = {
# Always have localhost in, then the configured IP
ip = { addr = 127.0.0.1; port = 9101 }
- ip = { addr = <%=bacula_director_address%>; port = <%=bacula_director_port%> }
+ ip = { addr = <%=@bacula_director_address%>; port = <%=@bacula_director_port%> }
}
TLS Enable = yes
TLS Require = yes
TLS Verify Peer = yes
- TLS Allowed CN = "clientcerts/<%= bacula_director_address %>"
- TLS CA Certificate File = "<%= bacula_ca_path %>"
+ TLS Allowed CN = "clientcerts/<%= @bacula_director_address %>"
+ TLS CA Certificate File = "<%= @bacula_ca_path %>"
# This is a server certificate, used for incoming console connections.
- TLS Certificate = "<%= bacula_ssl_server_cert %>"
- TLS Key = "<%= bacula_ssl_server_key %>"
+ TLS Certificate = "<%= @bacula_ssl_server_cert %>"
+ TLS Key = "<%= @bacula_ssl_server_key %>"
+
+ Heartbeat Interval = 60
}
########################################################################
########################################################################
FileSet {
Name = "Standard Set"
+ Ignore FileSet Changes = yes
Include {
Options {
signature = SHA1
compression = GZIP9
+ aclsupport = yes
+ xattrsupport = yes
+ }
+ Options {
+ wild = "/swapfile*"
+ exclude = yes
}
- File = "\\|bash -c \"df -Pkl -x tmpfs -x iso9660 | tail -n +2 | awk '{print \$NF}' \""
+ File = "\\|/usr/local/sbin/bacula-backup-dirs"
# Dont backup directories that contain .nobackup files
Exclude Dir Containing = .nobackup
}
Exclude {
- File = /var/lib/bacula
- File = /var/cache/apt/
+ File = /.fsck
+ File = /.journal
+ File = /dev
+ File = /home/buildd/build-trees
+ File = /lib/init/rw
File = /nonexistant
File = /proc
- File = /tmp
- File = /.journal
- File = /.fsck
+ File = /srv/chroot
File = /sys
- File = /lib/init/rw
- File = /var/run
+ File = /tmp
+ File = /srv/apache-cache/mod_cache_disk
+ File = /var/cache/apache2/mod_cache_disk
+ File = /var/cache/apt
+ File = /var/lib/apt
+ File = /var/lib/bacula
+ File = /var/lib/munin-async
File = /var/lock
- File = /dev
- File = /srv/chroot
- File = /home/buildd/build-trees
+ File = /var/log/samhain
+ File = /var/run
+ File = "\\|bash -c 'grep -s -v ^# /etc/bacula/local-exclude || true'"
}
}
Include {
Options {
signature = SHA1
- compression = GZIP9
+ #compression = GZIP9
}
- File = "/var/lib/bacula/bacula.sql"
+ File = "/var/lib/bacula/bacula.sql.gz"
}
}
# and incremental backups other days
Schedule {
Name = "WeeklyCycle"
- Run = Full 1st sat at 00:35
- Run = Differential 2nd-5th sat at 00:35
+ # fulls are automatically run if the last full backup was 40 days ago
+ # for the current value of 40 look for "Max Full Interval" in this file.
+ # Run = Full 1st sat at 00:35
+ Run = Differential sat at 00:35
Run = Incremental sun-fri at 00:35
}
########################################################################
Catalog {
Name = MyCatalog
- dbname = "service = bacula";
- #DB Address = "<%= bacula_db_address %>";
- #DB Port = <%= bacula_db_port %>;
+ dbname = bacula;
+ dbport = <%= @bacula_db_port %>;
+ dbaddress = <%= @bacula_db_address %>;
+ dbsslmode = verify-ca;
+ dbsslca = /etc/ssl/debian/certs/ca.crt;
dbuser = "bacula";
- dbpassword = "<%= bacula_db_secret %>"
+ dbpassword = "<%= @bacula_db_secret %>"
}
########################################################################
Name = Standard
mailcommand = "/usr/lib/bacula/bsmtp -h localhost -f \"\(Bacula\) %r\" -s \"Bacula: %t %e of %c %l\" %r"
operatorcommand = "/usr/lib/bacula/bsmtp -h localhost -f \"\(Bacula\) %r\" -s \"Bacula: Intervention needed for %j\" %r"
- mail on error = <%= bacula_operator_email %> = all, !skipped
- operator = <%= bacula_operator_email %> = mount
+ #mail on error = <%= @bacula_operator_email %> = all, !skipped
+ mail = <%= @bacula_operator_email %> = all
+ operator = <%= @bacula_operator_email %> = mount
console = all, !skipped, !saved
- append = "/var/lib/bacula/log" = all, !skipped
+ syslog = all
+ append = "/var/lib/bacula/log" = all
catalog = all
}
Messages {
Name = Daemon
mailcommand = "/usr/lib/bacula/bsmtp -h localhost -f \"\(Bacula\) %r\" -s \"Bacula daemon message\" %r"
- mail = <%= bacula_operator_email %> = all, !skipped
+ mail = <%= @bacula_operator_email %> = all
console = all, !skipped, !saved
- append = "/var/lib/bacula/log" = all, !skipped
+ syslog = all
+ append = "/var/lib/bacula/log" = all
}
########################################################################
# Console, limited #
########################################################################
Console {
- Name = <%= bacula_monitor_name %>
- Password = "<%= bacula_monitor_secret %>"
+ Name = <%= @bacula_monitor_name %>
+ Password = "<%= @bacula_monitor_secret %>"
CommandACL = status, .status
}
Type = Backup
Level = Incremental
FileSet = "Standard Set"
- Schedule = "WeeklyCycle"
+ Accurate = yes
+ # Schedule = "WeeklyCycle"
Messages = Standard
- Max Full Interval = 1 month
+ Max Full Interval = 50 days
Priority = 10
Write Bootstrap = "/var/lib/bacula/%c.bsr"
Maximum Concurrent Jobs = 20
- Client Run After Job = "/usr/local/sbin/postbaculajob -c \"%c\" -d \"%d\" -i \"%i\" -l \"%l\" -n \"%n\" -o /var/log/bacula-main.log"
+ Client Run After Job = "/usr/local/sbin/postbaculajob -c \"%c\" -d \"%d\" -i \"%i\" -l \"%l\" -n \"%n\" -o /var/log/bacula/client-after.state"
}
########################################################################
Job {
Name = "RestoreFiles"
Type = Restore
- Client = <%=bacula_director_address%>-fd
+ Client = <%=@bacula_director_address%>-fd
FileSet = "Standard Set"
- Pool = poolfull-<%=bacula_pool_name%>-<%=bacula_director_address%>
+ Pool = poolfull-<%=@bacula_pool_name%>-<%=@bacula_director_address%>
Messages = Standard
Where = /var/tmp/bacula-restores
}
# Generic jobs #
########################################################################
# Backup the catalog database (after the nightly save)
-#Job {
-# Name = "BackupCatalog"
-# JobDefs = "Standardbackup"
-# Level = Full
-# FileSet="Catalog"
-# Schedule = "WeeklyCycleAfterBackup"
+Storage {
+ Name = "<%= @bacula_filestor_name %>-catalog"
+ Address = <%= @bacula_storage_address %>
+ SDPort = <%= @bacula_storage_port %>
+ Password = "<%= @bacula_storage_secret %>"
+ Device = "<%= @bacula_filestor_device %>-catalog"
+ Media Type = "<%= @bacula_filestor_name %>-catalog"
+ Maximum Concurrent Jobs = 10
+
+ TLS Enable = yes
+ TLS Require = yes
+ TLS CA Certificate File = "<%= @bacula_ca_path %>"
+ # This is a client certificate, used by the director to connect to the storage daemon
+ TLS Certificate = "<%= @bacula_ssl_client_cert %>"
+ TLS Key = "<%= @bacula_ssl_client_key %>"
+}
+Pool {
+ Name = "poolcatalog-<%=@bacula_pool_name%>"
+ Pool Type = Backup
+ Storage = "<%=@bacula_filestor_name%>-catalog"
+ AutoPrune = yes
+ Volume Retention = 2 months
+ Label Format = "<%= @bacula_pool_name %>-catalog.${Year}-${Month:p/2/0/r}-${Day:p/2/0/r}_${Hour:p/2/0/r}:${Minute:p/2/0/r}"
+ Volume Use Duration = 23h
+ Maximum Volume Jobs = 1
+ Maximum Volume Bytes = 500G
+ Action On Purge = Truncate
+ Recycle = yes
+ RecyclePool = "poolcataloggraveyard-<%=@bacula_pool_name%>"
+}
+Pool {
+ Name = "poolcataloggraveyard-<%=@bacula_pool_name%>"
+ Pool Type = Backup
+ Storage = "<%=@bacula_filestor_name%>-catalog"
+ Recycle = yes
+ RecyclePool = "poolcataloggraveyard-<%=@bacula_pool_name%>"
+}
+
+Job {
+ Name = "BackupCatalog"
+ JobDefs = "Standardbackup"
+ Client = <%=@bacula_director_address%>-fd
+ 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 = "/etc/bacula/scripts/make_catalog_backup.pl MyCatalog"
+ RunBeforeJob = "/etc/bacula/scripts/make_catalog_backup.pl MyCatalog"
# # This deletes the copy of the catalog
-# RunAfterJob = "/etc/bacula/scripts/delete_catalog_backup"
-# Write Bootstrap = "/var/lib/bacula/%n.bsr"
-# Priority = 15 # run after main backup
-# RunScript {
-# RunsWhen=After
-# RunsOnClient=No
-# Console = "purge volume action=all allpools storage=File"
-# }
-#}
+ RunAfterJob = "/etc/bacula/scripts/delete_catalog_backup"
+ Write Bootstrap = "/var/lib/bacula/%n.bsr"
+ Priority = 15 # run after main backup
+ Pool = "poolcatalog-<%=@bacula_pool_name%>"
+}
########################################################################
# And now include all the generated configs #