Bacula-users

[Bacula-users] Problem with schedule/pool

2010-01-12 14:22:23
Subject: [Bacula-users] Problem with schedule/pool
From: "Ariel Wainer" <ariel AT cafelug.org DOT ar>
To: bacula-users AT lists.sourceforge DOT net
Date: Tue, 12 Jan 2010 16:59:34 -0200 (ARST)
Hello people, please excuse my bad english.
I'm having some issues with my schedules/pool configuration, my idea is
to run a full backup every 3 days, doing incremental in the middle.
At some point, I keep no full backup, as it seems like the volume that
contains the full backup is being recycled to do the Incremental,  so I
can't restore certain files, which is very serious.

What am I missing?

Thanks in advange, here is my config (passwords removed):

Director {                            # define myself
  Name = beastman-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 = 3
  Messages = Daemon
  DirAddress = beastman.contenta
}

JobDefs {
  Name = "DefaultJob"
  Type = Backup
  Level = Differential
  Client = beastman-fd
  FileSet = "appl"
  Schedule = "WeeklyCycle"
  Storage = File
  Messages = Standard
  Pool = Default
  Priority = 10
  Write Bootstrap = "/backups/bootstrap.bsr"
}


################################################################
## JOBS
Job {
  Name = "Manatarms-diario"
  Client = manatarms-fd
  JobDefs = "DefaultJob"
  FileSet = "appl"
  Schedule = "Diarios"
  Storage = "beastman-storage"
  Pool = Manatarms-diario
}

Job {
  Name = "Battlecat-diario"
  Client = battlecat-fd
  JobDefs = "DefaultJob"
  FileSet = "appl"
  Schedule = "Diarios"
  Storage = "beastman-storage"
  Pool = Battlecat-diario
}


Job {
  Name = "Randor-diario"
  Client = randor-fd
  JobDefs = "DefaultJob"
  FileSet = "appl"
  Schedule = "Diarios"
  Storage = "beastman-storage"
  Pool = Randor-diario
}

#Job {
#  Name = "Heman-diario"
#  Client = heman-fd
#  JobDefs = "DefaultJob"
#  FileSet = "appl"
#  Schedule = "Diarios"
#  Storage = "beastman-storage"
#  Pool = "Heman-diario"
#}

Job {
  Name = "Teela-diario"
  Client = teela-fd
  JobDefs = "DefaultJob"
  FileSet = "appl"
  Schedule = "Diarios"
  Storage = "beastman-storage"
  Pool = Teela-diario
}

Job {
  Name = "Sorceress-diario"
  Client = sorceress-fd
  JobDefs = "DefaultJob"
  FileSet = "appl"
  Schedule = "Diarios"
  Storage = "beastman-storage"
  Pool = Sorceress-diario
}

Job {
  Name = "Orco-diario"
  Client = orco-fd
  JobDefs = "DefaultJob"
  FileSet = "appl"
  Schedule = "Diarios"
  Storage = "beastman-storage"
  Pool = Orco-diario
}


Job {
  Name = "Panthor-diario"
  Client = panthor-fd
  JobDefs = "DefaultJob"
  FileSet = "appl"
  Schedule = "Diarios"
  Storage = "beastman-storage"
  Pool = Panthor-diario
}

Job {
  Name = "Marlena-diario"
  Client = marlena-fd
  JobDefs = "DefaultJob"
  FileSet = "appl"
  Schedule = "Diarios"
  Storage = "beastman-storage"
  Pool = Marlena-diario
}

Job {
  Name = "BackupCatalog"
  JobDefs = "DefaultJob"
  Level = Full
  FileSet="Catalog"
  Schedule = "WeeklyCycleAfterBackup"
  # This creates an ASCII copy of the catalog
  # WARNING!!! Passing the password via the command line is insecure.
  # see comments in make_catalog_backup for details.
  # Arguments to make_catalog_backup are:
  #  make_catalog_backup <database-name> <user-name> <password> <host>
  RunBeforeJob = "/etc/bacula/scripts/make_catalog_backup bacula baculin
bacapdetodo localhost"
  # This deletes the copy of the catalog
  RunAfterJob  = "/etc/bacula/scripts/delete_catalog_backup"
  Write Bootstrap = "/backups/BackupCatalog.bsr"
  Storage = "beastman-storage"
  Pool = Catalog-diario
  Priority = 11                   # run after main backup
}

#
# 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=beastman-fd
  FileSet="appl"
  Storage = File
  Pool = Default
  Messages = Standard
  Where = /tmp/
}


# Filesets
FileSet {
  Name = "appl"
  Include {
    Options { signature = SHA1
              compression = GZIP9
        }

#  File = "/backups/"
  File = "/etc"
  File = "/appl"
  File = "/home"
  File = "/root"
  File = "/var/www"
  File = "/usr/local"
  File = "/var/spool/cron"
  File = "/usr/lib/nagios/plugins"
  File = "/backups"
  }

   Exclude {
    File = "/appl/logs/*"
#    File = "/appl/backup"
    File = "/appl/backups/*.1.gz"
    File = "/appl/produccion/*/logs/"
    File = "/appl/pgsql/data/base"
    File = "/appl/pgsql/data/pg_xlog/*"
    File = "/appl/pgsql/data/pg_clog/*"
    File = "/appl/restores/*"

   }
}


#
# 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 = Differential mon-sat at 23:05
}

Schedule {
  Name = "Diarios"
  Run = Level=Full        on sunday at 3:05
  Run = Level=Incremental on mon-sat at 3:05
}
# This schedule does the catalog. It starts after the WeeklyCycle
Schedule {
  Name = "WeeklyCycleAfterBackup"
  Run = Full sun-sat at 23:10
}

# This is the backup of the catalog
FileSet {
  Name = "Catalog"
  Include {
    Options {
      signature = MD5
    }
    File = /var/lib/bacula/bacula.sql
  }
}
#########################################################################
# Clientes
Client {
  Name = beastman-fd
  Address = beastman.contenta
  FDPort = 9102
  Catalog = MyCatalog
  File Retention = 30 days            # 30 days
  Job Retention = 1 days            # six months
  AutoPrune = yes                     # Prune expired Jobs/Files
}

Client {
  Name = manatarms-fd
  Address = manatarms.contenta
  FDPort = 9102
  Catalog = MyCatalog
  File Retention = 30 days            # 30 days
  Job Retention = 1 days            # six months
  AutoPrune = yes                     # Prune expired Jobs/Files
}

Client {
  Name = battlecat-fd
  Address = battlecat.contenta
  FDPort = 9102
  Catalog = MyCatalog
  File Retention = 30 days            # 30 days
  Job Retention = 1 days            # six months
  AutoPrune = yes                     # Prune expired Jobs/Files
}

Client {
  Name = randor-fd
  Address = randor.contenta
  FDPort = 9102
  Catalog = MyCatalog
  File Retention = 30 days            # 30 days
  Job Retention = 1 days            # six months
  AutoPrune = yes                     # Prune expired Jobs/Files
}

Client {
  Name = heman-fd
  Address = heman.contenta
  FDPort = 9102
  Catalog = MyCatalog
  File Retention = 30 days            # 30 days
  Job Retention = 1 days            # six months
  AutoPrune = yes                     # Prune expired Jobs/Files
}

Client {
  Name = teela-fd
  Address = teela.contenta
  FDPort = 9102
  Catalog = MyCatalog
  File Retention = 30 days            # 30 days
  Job Retention = 1 days            # six months
  AutoPrune = yes                     # Prune expired Jobs/Files
}

Client {
  Name = sorceress-fd
  Address = sorceress.contenta
  FDPort = 9102
  Catalog = MyCatalog
  File Retention = 30 days            # 30 days
  Job Retention = 1 days            # six months
  AutoPrune = yes                     # Prune expired Jobs/Files
}

Client {
  Name = orco-fd
  Address = orco.contenta
  FDPort = 9102
  Catalog = MyCatalog
  File Retention = 30 days            # 30 days
  Job Retention = 1 days            # six months
  AutoPrune = yes                     # Prune expired Jobs/Files
}

Client {
  Name = panthor-fd
  Address = panthor.contenta
  FDPort = 9102
  Catalog = MyCatalog
  File Retention = 30 days            # 30 days
  Job Retention = 1 days            # six months
  AutoPrune = yes                     # Prune expired Jobs/Files
}

Client {
  Name = marlena-fd
  Address = marlena.contenta
  FDPort = 9102
  Catalog = MyCatalog
  File Retention = 30 days            # 30 days
  Job Retention = 1 days            # six months
  AutoPrune = yes                     # Prune expired Jobs/Files
}


###############################################################


###############################################################


###############################################################

# Definition of file storage device

###############################################################

# Definition of file storage device
Storage {
  Name = File
# Do not use "localhost" here
  #Address = localhost.localdomain                # N.B. Use a fully
qualified name here
  Address = 192.168.1.6                # N.B. Use a fully qualified name
here
  SDPort = 9103
  Device = FileStorage
  Media Type = File
}

Storage {
  Name = beastman-storage
# Do not use "localhost" here
  Address = beastman.contenta                # N.B. Use a fully
qualified name here
  SDPort = 9103
  Device = BackUps
  Media Type = File
}

###############################################################

# Generic catalog service
Catalog {
  Name = MyCatalog
  dbname = "bacula"; user = "baculin"; dbpassword = "bacapdetodo";
dbaddress="127.0.0.1"; dbport="5432"
}

# 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 AT mydomain DOT com', is better since that tends to
#  tell (most) people that its coming from an automated source.

#
  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
  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/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
  console = all, !skipped, !saved
  append = "/var/lib/bacula/log" = all, !skipped
}




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

Pool {
  Name = Catalog-diario
  Pool Type = Backup
  Recycle = yes                       # Bacula can automatically recycle
Volumes
  AutoPrune = yes                     # Prune expired volumes
  Volume Retention = 1 days         # one year
  Maximum Volumes = 3
  Use Volume Once = yes
  Label Format = "Catalog-"
}

Pool {
  Name = Manatarms-diario
  Pool Type = Backup
  Recycle = yes                       # Bacula can automatically recycle
Volumes
  AutoPrune = yes                     # Prune expired volumes
  Volume Retention = 1 days         # one year
  Maximum Volumes = 3
  Use Volume Once = yes
  Label Format = "Manatarms-diario-"
}

Pool {
  Name = Battlecat-diario
  Pool Type = Backup
  Recycle = yes                       # Bacula can automatically recycle
Volumes
  AutoPrune = yes                     # Prune expired volumes
  Volume Retention = 1 days         # one year
  Maximum Volumes = 3
  Use Volume Once = yes
  Label Format = "Battlecat-diario-"
}

Pool {
  Name = Randor-diario
  Pool Type = Backup
  Recycle = yes                       # Bacula can automatically recycle
Volumes
  AutoPrune = yes                     # Prune expired volumes
  Volume Retention = 1 days         # one year
  Maximum Volumes = 2
  Use Volume Once = yes
  Label Format = "Randor-diario-"
}

Pool {
  Name = Heman-diario
  Pool Type = Backup
  Recycle = yes                       # Bacula can automatically recycle
Volumes
  AutoPrune = yes                     # Prune expired volumes
  Volume Retention = 1 days         # one year
  Maximum Volumes = 3
  Use Volume Once = yes
  Label Format = "Heman-diario-"
}

Pool {
  Name = Teela-diario
  Pool Type = Backup
  Recycle = yes                       # Bacula can automatically recycle
Volumes
  AutoPrune = yes                     # Prune expired volumes
  Volume Retention = 1 days         # one year
  Maximum Volumes = 3
  Use Volume Once = yes
  Label Format = "Teela-diario-"
}

Pool {
  Name = Sorceress-diario
  Pool Type = Backup
  Recycle = yes                       # Bacula can automatically recycle
Volumes
  AutoPrune = yes                     # Prune expired volumes
  Volume Retention = 1 days         # one year
  Maximum Volumes = 3
  Use Volume Once = yes
  Label Format = "Sorceress-diario-"
}

Pool {
  Name = Orco-diario
  Pool Type = Backup
  Recycle = yes                       # Bacula can automatically recycle
Volumes
  AutoPrune = yes                     # Prune expired volumes
  Volume Retention = 1 days         # one year
  Maximum Volumes = 3
  Use Volume Once = yes
  Label Format = "Orco-diario-"
}

Pool {
  Name = Panthor-diario
  Pool Type = Backup
  Recycle = yes                       # Bacula can automatically recycle
Volumes
  AutoPrune = yes                     # Prune expired volumes
  Volume Retention = 1 days         # one year
  Maximum Volumes = 3
  Use Volume Once = yes
  Label Format = "Panthor-diario-"
}

Pool {
  Name = Marlena-diario
  Pool Type = Backup
  Recycle = yes                       # Bacula can automatically recycle
Volumes
  AutoPrune = yes                     # Prune expired volumes
  Volume Retention = 1 days         # one year
  Maximum Volumes = 3
  Use Volume Once = yes
  Label Format = "Marlena-diario-"
}
# Scratch pool definition
Pool {
  Name = Scratch
  Pool Type = Backup
}

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


-- 
Ariel Wainer
Grupo de Usuarios de Software Libre de Capital Federal
www.cafelug.org.ar


------------------------------------------------------------------------------
This SF.Net email is sponsored by the Verizon Developer Community
Take advantage of Verizon's best-in-class app development support
A streamlined, 14 day to market process makes app distribution fast and easy
Join now and get one step closer to millions of Verizon customers
http://p.sf.net/sfu/verizon-dev2dev 
_______________________________________________
Bacula-users mailing list
Bacula-users AT lists.sourceforge DOT net
https://lists.sourceforge.net/lists/listinfo/bacula-users

<Prev in Thread] Current Thread [Next in Thread>