#
# Default Bacula Director Configuration file
#
#  The only thing that MUST be changed is to add one or more
#   file or directory names in the Include directive of the
#   FileSet resource.
#
#  For Bacula release 2.2.8 (26 January 2008) -- debian lenny/sid
#
#  You might also want to change the default email address
#   from root to your address.  See the "mail" and "operator"
#   directives in the Messages resource.
#

Director {                            # define myself
  Name = 2060I-R-BCK1-dir
  DIRport = 9101                # where we listen for UA connections
  QueryFile = "/etc/bacula/scripts/query.sql"
  WorkingDirectory = "/var/lib/bacula"
  PidDirectory = "/var/run/bacula"
  Maximum Concurrent Jobs = 1
  Password = "Cv70F6pf1t6pBopT4vQOnigDrR0v3L"         # Console password
  Messages = Daemon
#  DirAddress = 127.0.0.1
}

#
# Restricted console used by tray-monitor to get the status of the director
#
Console {
  Name = falcon-mon
  Password = "Cv70F6pf1t6pBopT4vQOnigDrR0v3L"
  CommandACL = status, .status
}

# Client (File Services) to backup
Client {
  Name = 2060I-R-BCK1-fd
  Address = 2060I-R-BCK1
  FDPort = 9102
  Catalog = MyCatalog
  Password = Cv70F6pf1t6pBopT4vQOnigDrR0v3LT3Cg
  File Retention = 60 days
  Job Retention = 2 months
  AutoPrune = yes
}

# Definition of file storage device
Storage {
  Name = File
  Address = 2060I-R-BCK1.tvnet.pri                # N.B. Use a fully qualified name here
  SDPort = 9103
  Password = "Cv70F6pf1t6pBopT4vQOnigDrR0v3LT3Cgkiyj"
  Device = FileStorage
  Media Type = File
}

# Generic catalog service
Catalog {
  Name = MyCatalog
  dbname = bacula; DB Address = "localhost"; user = bacula; password = "bacula"
}

JobDefs {
  Name = "DefaultJob"
  Type = Backup
  Client = 2060I-R-BCK1-fd 
  FileSet = "Full Set"
  Schedule = "WeeklyCycle"
  Storage = File
  Messages = Standard
  Pool = Default
  Full Backup Pool = Full-Pool
  Incremental Backup Pool = Inc-Pool
  Differential Backup Pool = Diff-Pool
  Write Bootstrap = "/var/lib/bacula/client.bsr"
  Priority = 10
}

Job {
  Name = "Teachers"
  JobDefs = "DefaultJob"
  FileSet = "Teachers"
  Write Bootstrap = "/var/lib/bacula/Teachers.bsr"
}

Job {
  Name = "Students"
  JobDefs = "DefaultJob"
  FileSet = "Students"
  Write Bootstrap = "/var/lib/bacula/Students.bsr"
}

Job {
  Name = "OfficeShare"
  JobDefs = "DefaultJob"
  FileSet = "OfficeShare"
  Write Bootstrap = "/var/lib/bacula/OfficeShare.bsr"
}

Job {
  Name = "Custodians"
  JobDefs = "DefaultJob"
  FileSet = "Custodians"
  Write Bootstrap = "/var/lib/bacula/Custodians.bsr"
}

Job {
  Name = etc
#  JobDefs = DefaultJob
  FileSet = etc
  Schedule = etc
  Pool = Cat_Backup
  Type = Backup
  Client = 2060I-R-BCK1-fd 
  Storage = File
  Messages = Standard
  Write Bootstrap = "/var/lib/bacula/client.bsr"
  Priority = 10
}

# Backup the catalog database (after the nightly save)
Job {
  Name = BackupCatalog
  #JobDefs = DefaultJob
  FileSet = Catalog
  Schedule = WeeklyCycleAfterBackup
  # This creates an ASCII copy of the catalog
  # WARNING!
  # Ubuntu uses make_catalog_backup_awk script for
  # security reasons
  # Replace <CatalogName> with the real Catalog name
  RunBeforeJob = "/usr/bin/awk -f /etc/bacula/scripts/make_catalog_backup_awk -v cat1=MyCatalog /etc/bacula/bacula-dir.conf"
  # This deletes the copy of the catalog
  RunAfterJob  = "/etc/bacula/scripts/delete_catalog_backup"
  Write Bootstrap = "/var/lib/bacula/BackupCatalog.bsr"
  Priority = 11
  Pool = Cat_Backup
  Level = Full
  Type = Backup
  Client = 2060I-R-BCK1-fd 
  Storage = File
  Messages = Standard
}

#
# 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=2060I-R-BCK1-fd                 
  FileSet="Full Set"                  
  Storage = File                      
  Pool = Default
  Messages = Standard
  Where = /bacula-restores
}

# List of files to be backed up
FileSet {
  Name = "Full Set"
  Include {
    Options {
      signature = MD5
    }
	File = /etc
    File = /mnt/auto/2060users
    File = /mnt/auto/2060officeshare
    File = /mnt/auto/2060control
  }
Exclude {
  }
}

FileSet {
  Name = etc
  Include {
    File = /etc
    Options {
      signature = MD5
    }
  }
}

FileSet {
  Name = OfficeShare
  Include {
    File = /mnt/auto/2060officeshare/
    Options {
      signature = MD5
    }
  }
}

FileSet {
  Name = Teachers
  Include {
    File = /mnt/auto/2060control/Common/TeachersOnly/
    File = /mnt/auto/2060users/Teacher/
    File = /mnt/auto/2060control/HandOut/
    Options {
      signature = MD5
    }
  }
  Exclude {
    File = "/mnt/auto/2060users/Teacher/ManuelS/100/ movies/"
  }
}

FileSet {
  Name = Students
  Include {
    File = /mnt/auto/2060users/Student/
    File = /mnt/auto/2060control/HandIn/
    Options {
      signature = MD5
    }
  }
}

FileSet {
  Name = Custodians
  Include {
    File = /mnt/auto/2060users/Custodian/
    Options {
      signature = MD5
    }
  }
}

# This is the backup of the catalog
FileSet {
  Name = "Catalog"
  Include {
    Options {
      signature = MD5
    }
    File = /var/lib/bacula/bacula.sql
  }
}

#
# 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 = Level=Full 1st sat at 23:05
  Run = Level=Differential 2nd-5th sat at 23:05
  Run = Level=Incremental mon-fri at 23:05
}

Schedule {
  Name = etc
  Run = Level=Full 1st sun at 22:00
  Run = Level=Full 3rd sun at 22:00
}

# This schedule does the catalog. It starts after the WeeklyCycle
Schedule {
  Name = WeeklyCycleAfterBackup
  Run = Level=Full mon-fri at 23:10
}


# Reasonable message delivery -- send most everything to email address
#  and to the console
Messages {
  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 = root@localhost = all, !skipped
  mail = m.coolen@tvdsb.on.ca = all, !skipped
  operator = root@localhost = mount
  console = all, !skipped, !saved
  append = "/var/lib/bacula/log" = all, !skipped
}

#
# Message delivery for daemon messages (no job).
Messages {
  Name = Daemon
  mailcommand = "/usr/lib/bacula/bsmtp -h localhost -f \"\(Bacula\) \<%r\>\" -s \"Bacula daemon message\" %r"
  #mail = root@localhost = all, !skipped
  mail = m.coolen@tvdsb.on.ca = all, !skipped
  console = all, !skipped, !saved
  append = "/var/lib/bacula/log" = all, !skipped
}
    
# Default pool definition
Pool {
  Name = Default
  Pool Type = Backup
  Recycle = yes
  AutoPrune = yes
  Volume Retention = 30 days
#  Maximum Volume Bytes = 5G
}

Pool {
  Name = Full-Pool
  Pool Type = Backup
  Recycle = yes
  AutoPrune = yes
  Volume Retention = 3 months
  Maximum Volume Jobs = 1
  Label Format = CECI-Full-
  Maximum Volumes = 20
  LabelFormat = CECI-Full-
}		

Pool {
  Name = Diff-Pool
  Pool Type = Backup
  Maximum Volume Jobs = 4
  Volume Retention = 23 days
  Recycle = yes
  AutoPrune = yes
  LabelFormat = CECI-Diff-
  Maximum Volumes = 7
}

Pool {
  Name = Inc-Pool
  Pool Type = Backup
  Maximum Volume Jobs = 8
  Volume Retention = 16 days
  Recycle = yes
  AutoPrune = yes
  LabelFormat = CECI-Inc-
  Maximum Volumes = 12
}

Pool {
  Name = Cat_Backup
  Pool Type = Backup
  Maximum Volume Jobs = 6
  Volume Retention = 14 days
  Recycle = yes
  AutoPrune = yes
  LabelFormat = CECI-Cat-
  Maximum Volumes = 3
}

# Scratch pool definition
Pool {
  Name = Scratch
  Pool Type = Backup
}

