#
# 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 5.0.0 (26 January 2010) -- redhat (Final)
#
#  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 = bacula-dir
  DIRport = 9101                # where we listen for UA connections
  QueryFile = "/usr/libexec/bacula/query.sql"
  WorkingDirectory = "/var/spool/bacula"
  PidDirectory = "/var/run"
  Maximum Concurrent Jobs = 1
  Password = "xxxxx"         # Console password
  Messages = Daemon
}

# ------------------------------------------------------------------------------------------
# Backup do Catalogo e Servidor de Backup
# ------------------------------------------------------------------------------------------

# Backup the catalog database (after the nightly save)
Job {
  Name = "BackupCatalog"
  Type = Backup
  Level = Full
  FileSet="Catalog"
  Pool = Backup
  Storage = Fita 
  Client = bacula-fd
  Schedule = "WeeklyCycleAfterBackup"
  # This creates an ASCII copy of the catalog
  # Arguments to make_catalog_backup.pl are:
  #  make_catalog_backup.pl <catalog-name>
  RunBeforeJob = "/usr/libexec/bacula/make_catalog_backup.pl MyCatalog"
  # This deletes the copy of the catalog
  RunAfterJob  = "/usr/libexec/bacula/delete_catalog_backup"
  Write Bootstrap = "/var/spool/bacula/%n.bsr"
  Priority = 11                   # run after main backup
  Messages = Standard
}

FileSet {
  Name = "Catalog"
  Include {
    Options {
      signature = MD5
    }
    File = "/var/spool/bacula/bacula.sql"
  }
}

Pool {
  Name = Backup
  Pool Type = Backup
  Recycle = yes                       # Bacula can automatically recycle Volumes
  AutoPrune = yes                     # Prune expired volumes
  Volume Retention = 365 days         # one year
  Maximum Volume Bytes = 800G 
}

Client {
  Name = bacula-fd
  Address = 192.168.164.50
  FDPort = 9102
  Catalog = MyCatalog
  Password = "xxxxx"          # password for FileDaemon
  File Retention = 30 days            # 30 days
  Job Retention = 12 months            # six months
  AutoPrune = yes                     # Prune expired Jobs/Files
}


Schedule {
  Name = "WeeklyCycleAfterBackup"
  Run = Full sun-sat at 12:00 
}

Job {
  Name = "Backup do servidor de Backup"
  Type = Backup
  Pool = Backup 
  Client = bacula-fd
  FileSet = "variosBackup"
  Schedule = "SegundaSextaInc"
  Storage = Fita 
  Priority = 10
  Messages = Standard
}

FileSet {
  Name = "variosBackup"
  Include {
    Options {
      signature = MD5
    }
    File = /etc
    File = /var/lib/pgsql
  }
}

# Backup incremental segunda a sexta 
Schedule {
  Name = "SegundaSextaInc"
  Run = Full sun at 12:00
  Run = Incremental mon-fri at 17:11
}

# ---------------------------------------------------------------------------------------


# ---------------------------------------------------------------------------------------
# Backup da Macuco
# ---------------------------------------------------------------------------------------

Client {
  Name = macuco-fd
  Address = 192.168.164.4
  FDPort = 9102
  Catalog = MyCatalog
  Password = "xxxxx"          
  File Retention = 183 days   
  Job Retention = 12 months  
  AutoPrune = yes           
}

Pool {
  Name = Macuco
  Pool Type = Backup
  Recycle = yes                       # Bacula can automatically recycle Volumes
  AutoPrune = yes                     # Prune expired volumes
  Volume Retention = 365 days         # one year
  Maximum Volume Bytes = 800G
}

Schedule {
  Name = "SegundaSextaIncMacuco"
  Run = Full sun at 02:00
  Run = Incremental mon-fri at 10:41
}

FileSet {
  Name = "sistemaMacuco"
  Include {
    Options {
      signature = MD5
    }
    File = /etc
    File = /usr/local/etc
    File = /usr/local/www
    File = /usr/local/pgsql/
    File = /backup/bacula/macuco
  }
}

Job {
  Name = "Backup do sistema do servidor Macuco"
  Type = Backup
  # Level = Incremental
  Pool = Macuco 
  Client = macuco-fd
  FileSet = "sistemaMacuco"
  Schedule = "SegundaSextaIncMacuco"
  Storage = Fita
  Priority = 10
  Messages = Standard
}

# --------------------------------------------------------------------------------------- 



# ---------------------------------------------------------------------------------------
# Backup da Landrace 
# ---------------------------------------------------------------------------------------

Client {
  Name = landrace-fd
  Address = 192.168.164.10
  FDPort = 9102
  Catalog = MyCatalog
  Password = "xxxxx"          # password for FileDaemon
  File Retention = 183 days            # 30 days
  Job Retention = 12 months            # six months
  AutoPrune = yes                     # Prune expired Jobs/Files
}

Pool {
  Name = Landrace 
  Pool Type = Backup
  Recycle = yes                       # Bacula can automatically recycle Volumes
  AutoPrune = yes                     # Prune expired volumes
  Volume Retention = 365 days         # one year
  Maximum Volume Bytes = 800G
}

Schedule {
  Name = "SegundaSextaIncLandrace"
  Run = Full sun at 07:00
  Run = Incremental mon-fri at 04:00 
}

FileSet {
  Name = "sistemaLandrace"
  Include {
    Options {
      signature = MD5
    }
    File = /etc
    File = /usr/local/etc
    File = /home/bacula
  }
}

Job {
  Name = "Backup do sistema do servidor Landrace"
  Type = Backup
  # Level = Incremental
  Pool = Landrace 
  Client = landrace-fd
  FileSet = "sistemaLandrace"
  Schedule = "SegundaSextaIncLandrace"
  Storage = Fita
  Priority = 10
  Messages = Standard
}

# ---------------------------------------------------------------------------------------


# ---------------------------------------------------------------------------------------
# Backup da NS 
# ---------------------------------------------------------------------------------------

Client {
  Name = ns-fd
  Address = 200.135.28.2 
  FDPort = 9102
  Catalog = MyCatalog
  Password = "xxxxx"          # password for FileDaemon
  File Retention = 183 days            # 30 days
  Job Retention = 12 months            # six months
  AutoPrune = yes                     # Prune expired Jobs/Files
}

Pool {
  Name = NS 
  Pool Type = Backup
  Recycle = yes                       # Bacula can automatically recycle Volumes
  AutoPrune = yes                     # Prune expired volumes
  Volume Retention = 365 days         # one year
  Maximum Volume Bytes = 800G
}

Schedule {
  Name = "CalendarioNS"
  Run = Full sun at 07:00
  Run = Incremental mon-fri at 06:00 
}

FileSet {
  Name = "sistemaNS"
  Include {
    Options {
      signature = MD5
    }
    File = /etc
    File = /usr/local/etc
    File = /usr/local/www
    File = /usr/local/pgsql
    File = /home/bacula
  }
}

Job {
  Name = "Backup do sistema do servidor NS"
  Type = Backup
  Pool = NS
  Client = ns-fd
  FileSet = "sistemaNS"
  Schedule = "CalendarioNS"
  Storage = Fita
  Priority = 10
  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=bacula-fd                 
  FileSet="Full Set"                  
  Storage = File                      
  Pool = Default
  Messages = Standard
  Where = /tmp/bacula-restores
}


# List of files to be backed up
FileSet {
  Name = "Full Set"
  Include {
    Options {
      signature = MD5
    }
#    
#  Put your list of files here, preceded by 'File =', one per line
#    or include an external list with:
#
#    File = <file-name
#
#  Note: / backs up everything on the root partition.
#    if you have other partitions such as /usr or /home
#    you will probably want to add them too.
#
#  By default this is defined to point to the Bacula binary
#    directory to give a reasonable FileSet to backup to
#    disk storage during initial testing.
#
    File = /usr/sbin
  }

#
# If you backup the root directory, the following two excluded
#   files can be useful
#
  Exclude {
    File = /var/spool/bacula
    File = /tmp
    File = /proc
    File = /tmp
    File = /.journal
    File = /.fsck
  }
}

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


# ------------------------------------------------------------------------------------------
# Unidade de Armazenamento e Recuperacao 
# ------------------------------------------------------------------------------------------

Storage {
  Name = Fita 
  # Do not use "localhost" here
  Address = 192.168.164.50                # N.B. Use a fully qualified name here
  SDPort = 9103
  Password = "xxxxx"
  Device = LTO-4 
  Media Type = LTO-4
  Autochanger = yes
}


Storage {
  Name = File
  Address = 192.168.164.50                # N.B. Use a fully qualified name here
  SDPort = 9103
  Password = "xxxxx"
  Device = FileStorage
  Media Type = File
}


# ------------------------------------------------------------------------------------------



# ------------------------------------------------------------------------------------------
# Catalogo
# ------------------------------------------------------------------------------------------

# Generic catalog service
Catalog {
  Name = MyCatalog
# Uncomment the following line if you want the dbi driver
# dbdriver = "dbi:sqlite3"; dbaddress = 127.0.0.1; dbport =  
  dbname = "bacula"; dbuser = "bacula"; dbpassword = "bacula"
}

# ------------------------------------------------------------------------------------------

# Reasonable message delivery -- send most everything to email address
#  and to the console
Messages {
  Name = Standard
#
# 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 = "/usr/sbin/bsmtp -h localhost -f \"\(Bacula\) \<%r\>\" -s \"Bacula: %t %e of %c %l\" %r"
  operatorcommand = "/usr/sbin/bsmtp -h localhost -f \"\(Bacula\) \<%r\>\" -s \"Bacula: Intervention needed for %j\" %r"
  mail = root@localhost = all, !skipped            
  operator = root@localhost = 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 = "/var/spool/bacula/log" = all, !skipped
  catalog = all
}


#
# Message delivery for daemon messages (no job).
Messages {
  Name = Daemon
  mailcommand = "/usr/sbin/bsmtp -h localhost -f \"\(Bacula\) \<%r\>\" -s \"Bacula daemon message\" %r"
  mail = root@localhost = all, !skipped            
  console = all, !skipped, !saved
  append = "/var/log/bacula.log" = all, !skipped
}

# Default pool definition
Pool {
  Name = Default
  Pool Type = Backup
  Recycle = yes                       # Bacula can automatically recycle Volumes
  AutoPrune = yes                     # Prune expired volumes
  Volume Retention = 365 days         # one year
  Maximum Volume Bytes = 800G
}

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

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


