#
# Kerns Production Bacula Director Daemon Configuration file
#

Director {
  Name = HeadMan
  DIRport = 9101                # where we listen for UA connections
  QueryFile = "/home/bacula/bin/query.sql"
  WorkingDirectory = "/home/bacula/bin/working"
  PidDirectory =     "/home/bacula/bin/working"
  SubSysDirectory =  "/home/bacula/bin/working"
  Maximum Concurrent Jobs = 1
  Password = 
}

Schedule {
  Name = "PolyMatouWeeklyCycle"
  Run = Level=Full sun at 1:05
  Run = Level=Incremental mon-sat at 1:05
}

Schedule {
  Name = "MatouWeeklyCycle"
  Run = Level=Full 1st sat at 1:05
  Run = Level=Differential 2nd-5th sat at 1:05
  Run = Level=Incremental sun-fri at 1:05
}

Schedule {
  Name = "VerifyCycle"
  Run = Level=Catalog sun-sat at 5:05
}


Schedule {
  Name = "MinimatouWeeklyCycle"
  Run = Level=Full fri at 1:05
  Run = Level=Incremental sat-thu at 1:05
}

Schedule {
  Name = "MinouWeeklyCycle"
  Run = Level=Full thu at 1:05
  Run = Level=Incremental fri-wed at 1:05
}

Schedule {
  Name = "RufusWeeklyCycle"
  Run = Level=Full 1st mon at 1:05
  Run = Level=Differential 2nd-5th mon at 1:05
  Run = Level=Incremental tue-sun at 1:05
}

Schedule {
  Name = "CatalogSched"
  Run = Level=Full sun-sat at 1:10
}

Schedule {
  Name = "Watchdog"
  Run = Level=Full sun-sat at 6:05
}


Job {
  Name = "Matou"
  Type = Backup
  Level = Incremental
  Client=Matou 
  FileSet="Matou Set"
  Messages = Standard
  Storage = DLTDrive
  Pool = Default
  Schedule = "MatouWeeklyCycle"
  Write Bootstrap = "/mnt/deuter/files/backup/matou.bsr"
  Priority = 10
}

Job {
  Name = "Polymatou"
  Type = Backup
  Level = Incremental
  Client=Polymatou
  FileSet="Full Set"
  Messages = Standard
  Storage = DLTDrive
  Pool = Default
  Schedule = "PolyMatouWeeklyCycle"
  Write Bootstrap = "/mnt/deuter/files/backup/pmatou.bsr"
  Priority = 10
}

Job {
  Name = "Rufus"
  Type = Backup
  Level = Incremental
  Client=Rufus 
  FileSet="RufusAll"
  Messages = Standard
  Storage = DLTDrive
  Pool = Default
  Schedule = "RufusWeeklyCycle"
  Write Bootstrap = "/mnt/deuter/files/backup/rufus.bsr"
  Priority = 10
}

Job {
  Name = "Minimatou"
  Type = Backup
  Level = Incremental
  Client=Minimatou 
  FileSet="Win32 Full Set"
  Messages = Standard
  Storage = DLTDrive
  Pool = Default
  Schedule = "MinimatouWeeklyCycle"
  Write Bootstrap = "/mnt/deuter/files/backup/mmatou.bsr"
  Priority = 11
}

Job {
  Name = "Minou"
  Type = Backup
  Level = Incremental
  Client=Minou 
  FileSet="Minou Full Set"
  Messages = Standard
  Storage = DLTDrive
  Pool = Default
  Schedule = "MinouWeeklyCycle"
  Write Bootstrap = "/mnt/deuter/files/backup/minou.bsr"
  Priority = 11
}

Job {
  Name = "PmatouVerify"
  Type = Verify
  Level = Catalog
  Client=PmatouVerify 
  FileSet="Verify Set"
  Messages = Standard
  Storage = DLTDrive
  Pool = Default
  Schedule = "VerifyCycle"
  Priority = 20                       # run after backups
}

Job {
  Name = "MatouVerify"
  Type = Verify
  Level = Catalog
  Client=MatouVerify 
  FileSet="Verify Set"
  Messages = Standard
  Storage = DLTDrive
  Pool = Default
  Schedule = "VerifyCycle"
  Priority = 20 
}

Job {
  Name = "RufusVerify"
  Type = Verify
  Level = Catalog
  Client=RufusVerify 
  FileSet="Verify Set"
  Messages = Standard
  Storage = DLTDrive
  Pool = Default
  Schedule = "VerifyCycle"
  Priority = 20
}

Job {
  Name = "CatalogBackup"
  Type = Backup
  Level = Full
  Client = Polymatou
  FileSet = "CatalogFile"
  Messages = Standard
  Storage = DLTDrive
  Pool = Default
  Schedule = "CatalogSched"
  RunBeforeJob = "/home/bacula/bin/make_catalog_backup"
  RunAfterJob  = "/home/bacula/bin/delete_catalog_backup"
  Write Bootstrap = "/mnt/deuter/files/backup/catalog.bsr"
  Priority = 15      # run after backups, but before Verifies
}

Job {
  Name = "Watchdog"
  Type = Admin
  Client=Watchdog
  FileSet="Verify Set"
  Messages = Standard
  Storage = DLTDrive
  Pool = Default
  Schedule = "Watchdog"
  RunAfterJob = "/home/bacula/bin/watchdog"
  Priority = 99                       # last job to run
}

# Standard Restore template, to be changed by Console program
Job {
  Name = "RestoreFiles"
  Type = Restore
  Client=Rufus
  FileSet="Full Set"
  Storage = DLTDrive
  Messages = Standard
  Pool = Default
  Where = /tmp/bacula-restores
}

 
FileSet {
  Name = "Matou Set"
  Include = signature=MD5 { 
     /
     /home
     /usr
     /files
  }
  Exclude = { /tmp/* }
}


FileSet {
  Name = "Full Set"
  Include = signature=MD5 { 
     @/etc/backup.list
  }
  Exclude = { }
}

FileSet {
  Name = "RufusAll"
  Include = signature=MD5 { 
     /
     /boot
     /home
     /usr
  }
  Exclude = { }
}

# Backup the copy of the catalog
FileSet {
  Name = "CatalogFile"
  Include = signature=MD5 { 
     /home/bacula/bin/working/bacula.sql
  }
}


FileSet {
  Name = "Verify Set"
  Include = verify=pins5 signature=MD5 { 
     /boot
     /bin
     /sbin
     /usr/bin
     /lib
     /root/.ssh
     /home/kern/.ssh
     /var/named
     /etc/sysconfig
     /etc/ssh
     /etc/security
     /etc/exports
     /etc/rc.d/init.d
     /etc/sendmail.cf
     /etc/sysctl.conf
     /etc/services
     /etc/xinetd.d
     /etc/hosts.allow
     /etc/hosts.deny
     /etc/hosts
     /etc/modules.conf
     /etc/named.conf
     /etc/pam.d
     /etc/resolv.conf
  }
  Exclude = { }
}


FileSet {
  Name = "Win32 Full Set"
  Include = signature=MD5 { 
     "c:/My Documents"
  }
  Exclude = { }
}

FileSet {
  Name = "Minou Full Set"
  Include = signature=MD5 { 
     "d:/My Documents"
  }
  Exclude = { }
}

# Definition of tape storage device
Storage {
  Name = DLTDrive
  Address = lpmatou
  SDPort = 9103
  Password =
  Device = "HP DLT 80"                # must be same as Device in Storage daemon
  Media Type = DLT8000                # must be same as MediaType in Storage daemon
}

#Storage {
#  Name = "8mmDrive"
#  Address = lpmatou
#  SDPort = 9103
#  Password =
#  Device = "Exabyte 8mm"
#  MediaType = "8mm"
#}

Client {
  Name = Matou
  Address = lmatou
  FDPort = 9102
  Catalog = BackupDB
  Password = 
  File Retention = 30d                 # 80 days
  Job Retention = 1y                  # one year
  AutoPrune = yes                     # Prune expired Jobs/Files
}

Client {
  Name = Polymatou
  Address = lpmatou
  FDPort = 9102
  Catalog = BackupDB
  Password =
  File Retention = 30d                 # 80 days
  Job Retention = 1y                  # one year
  AutoPrune = yes                     # Prune expired Jobs/Files
}

Client {
  Name = Rufus
  Address = rufus
  FDPort = 9102
  Catalog = BackupDB
  Password =
  File Retention = 30d                 # 80 days
  Job Retention = 1y                  # one year
  AutoPrune = yes                     # Prune expired Jobs/Files
}

Client {
  Name = Minimatou
  Address = minimatou
  FDPort = 9102
  Catalog = BackupDB
  Password =
  File Retention = 30d                 # 80 days
  Job Retention = 1y                  # one year
  AutoPrune = yes                     # Prune expired Jobs/Files
}

Client {
  Name = Minou
  Address = minou
  FDPort = 9102
  Catalog = BackupDB
  Password =
  File Retention = 30d                 # 80 days
  Job Retention = 1y                  # one year
  AutoPrune = yes                     # Prune expired Jobs/Files
}

Client {
  Name = MatouVerify
  Address = lmatou
  FDPort = 9102
  Catalog = Verify
  Password =
  File Retention = 30d                # 30 days
  Job Retention = 30d                 # 30 days
  AutoPrune = yes                     # Prune expired Jobs/Files
}

Client {
  Name = PmatouVerify
  Address = lpmatou
  FDPort = 9102
  Catalog = Verify
  Password =
  File Retention = 30d                # 30 days
  Job Retention = 30d                 # 30 days
  AutoPrune = yes                     # Prune expired Jobs/Files
}

Client {
  Name = RufusVerify
  Address = rufus
  FDPort = 9102
  Catalog = Verify
  Password =
  File Retention = 30d                # 30 days
  Job Retention = 30d                 # 30 days
  AutoPrune = yes                     # Prune expired Jobs/Files
}

Client {
  Name = Watchdog
  Address = rufus
  FDPort = 9102
  Catalog = Verify
  Password =
  File Retention = 1d                 # 1 days
  Job Retention = 1m                  # 1 month
  AutoPrune = yes                     # Prune expired Jobs/Files
}

Catalog {
  Name = BackupDB
  dbname = bacula; user = bacula; password = ""
}

Catalog {
  Name = Verify
  dbname = verify; user = bacula; password = ""
}

Messages {
  Name = Standard
  mailcommand = "/home/bacula/bin/smtp -h mail.sibbald.com -f \"\(Bacula\) %r\" -s \"Bacula: %t %e of %c %l\" %r"
  operatorcommand = "/home/bacula/bin/smtp -h YOUR-SMTP_SERVER.com -f \"\(Bacula\) %r\" -s \"Bacula: Intervention needed for %j\" %r"
  MailOnError = YOUR-EMAIL@YOU.com = all
  append = "/home/bacula/bin/log" = all
  operator = YOUR-EMAIL@YOU.com = mount
  console = all
}
    

Pool {
  Name = Default
  Pool Type = Backup
  Recycle = yes                       # Bacula can automatically recycle Volumes
  AutoPrune = yes                     # Prune expired volumes
  Volume Retention = 1y               # one year
}
