This scheme is similar to the Daily Tape Rotation scheme, except it comprises a separate pool of tapes for each week of the month and has a weekly Full backup, and nightly incrementals.
From the bacula-dir.conf:
# /etc/bacula/bacula-dir.conf # Director { # define myself Name = servername-dir DIRport = 9101 # where we listen for UA connections QueryFile = "/usr/lib64/bacula/query.sql" WorkingDirectory = "/data/BACULA" PidDirectory = "/var/run" Maximum Concurrent Jobs = 12 Password = "console-pass" # Console password Messages = Daemon } # Standard Job Definition JobDefs { Name = "DefaultJob" Type = Backup Level = Incremental Client = client1-fd FileSet = "Full Set" Schedule = "WeeklyCycle" Storage = Tape Messages = Standard Priority = 10 Prefer Mounted Volumes = no Pool = Default } # Basic job Job { Name = "BackupClient1" JobDefs = "DefaultJob" Write Bootstrap = "/var/lib/bacula/Client1.bsr" } # Default FileSet: FileSet { Name = "Full Set" Include { Options { signature = MD5 } File = /usr/sbin File = /etc } Exclude { File = /var/lib/bacula File = /tmp File = /proc File = /tmp File = /.journal File = /.fsck } } #Define the weekly schedule to use a different pool for each week Schedule { Name = "WeeklyCycle" Run = Level=Full Pool=Week1 1st sun at 23:05 Run = Level=Full Pool=Week2 2nd sun at 23:05 Run = Level=Full Pool=Week3 3rd sun at 23:05 Run = Level=Full Pool=Week4 4th sun at 23:05 Run = Level=Full Pool=Week5 5th sun at 23:05 Run = Incremental Pool=Week1 1st mon-sat at 23:05 Run = Incremental Pool=Week2 2nd mon-sat at 23:05 Run = Incremental Pool=Week3 3rd mon-sat at 23:05 Run = Incremental Pool=Week4 4th mon-sat at 23:05 Run = Incremental Pool=Week5 5th mon-sat at 23:05 } Client { Name = client1-fd Address = client1name.domain.name FDPort = 9102 Catalog = MyCatalog Password = "client-pass" # password for FileDaemon File Retention = 30 days # 30 days Job Retention = 6 months # six months AutoPrune = yes # Prune expired Jobs/Files } #Define a pool for each week, and a scratch pool to put new/blank tapes into. Pool { Name = Week1 Pool Type = Backup Recycle = yes AutoPrune = yes Volume Retention = 28 days Cleaning Prefix = "CLN" Volume Use Duration = 5 days } Pool { Name = Week2 Pool Type = Backup Recycle = yes AutoPrune = yes Volume Retention = 28 days Cleaning Prefix = "CLN" Volume Use Duration = 5 days } Pool { Name = Week3 Pool Type = Backup Recycle = yes AutoPrune = yes Volume Retention = 28 days Cleaning Prefix = "CLN" Volume Use Duration = 5 days } Pool { Name = Week4 Pool Type = Backup Recycle = yes AutoPrune = yes Volume Retention = 28 days Cleaning Prefix = "CLN" Volume Use Duration = 5 days } Pool { Name = Week5 Pool Type = Backup Recycle = yes AutoPrune = yes Volume Retention = 28 days Cleaning Prefix = "CLN" Volume Use Duration = 5 days } # Scratch pool definition Pool { Name = Scratch Pool Type = Backup } # Generic catalog service Catalog { Name = MyCatalog # Uncomment the following line if you want the dbi driver dbdriver = "dbi:mysql"; dbaddress = 127.0.0.1; dbname = "bacula"; dbuser = "bacula"; } #Define storage (mines a Dell autoloader) Storage { Name = Dell-ML6000 Address = storagehostname.domain.name SDPort = 9103 Password = "storage-pass" Device = Dell-ML6000 MediaType = "LTO4" Autochanger = yes Maximum Concurrent Jobs = 12 }