Hi guys -

I'm new to bacula, but I've been reading the docs and trying different things to accomplish my goal here, and I'm stumped. Maybe you can help me. I have 6 machines on my home network that I want to backup, all to a large drive mounted at /mnt/lacie on my storage daemon. I want to have a separate subdirectory for each machine (/mnt/lacie/libby, /mnt/lacie/jazz, etc), and below that a separate subdirectory for each level (/mnt/lacie/libby/Full, /mnt/lacie/libby/Incremental). I am doing Fulls and Incrementals only, no Differentials. I do monthly full backups and weekly incremental backups, and I want to keep about 2 months worth of stuff on there at all times (a little slop one way or the other is fine).

In a perfect world, my directories would look something like this after being completely filled by bacula over the course of 2-3 months:

/mnt/lacie/
....libby/
........Full/
............Monthly0001
............Monthly0002
........Incremental/
............Weekly0001
............Weekly0002, 0003, etc up to 0008
....jazz/
........(just like libby's tree)
....(other machines just like libby and jazz)

The latest Monthly file, I expect, will flip-flop back and forth between 0001 and 0002; and the latest Weekly file will probably cycle from 0001-0008 and then repeat.

I have a completely different scheme that is running right now but I find it difficult to maintain, and I believe the layout above will be invaluable when I move to the next stage, which is offsite delivery of periodic monthly full backups to my friend's house across town (and he will do the same, once I solve all the config issues for him).

I've attached the config files I crafted to try to do this, but they don't work because I am trying to use AutoLabeling for a purpose other than which it was intended. So my question is this: how should I configure my pools, devices, etc to make my vision above a reality? Any help would be MUCH appreciated.

Thanks in advance....

- Mark

====== bacula-sd.conf =======
Storage {
 Name = mythtv-sd
 SDPort = 9103
 WorkingDirectory = "/var/bacula/working"
 Pid Directory = "/var/run"
 Maximum Concurrent Jobs = 20
}

Director {
 Name = mythtv-dir
 Password = "..."
}

Device
{
 Name = LaCie
 Media Type = File
 Archive Device = /mnt/lacie
 Label Media = yes;
 Random Access = yes;
 AutomaticMount = yes;
 RemovableMedia = no;
 AlwaysOpen = no;
}

Messages {
 Name = Standard
 director = mythtv-dir = all
}

===== bacula-dir.conf =====

Director {
 Name = mythtv-dir
 DIRport = 9101
 QueryFile = "/etc/bacula/query.sql"
 WorkingDirectory = "/var/bacula/working"
 PidDirectory = "/var/run"
 Maximum Concurrent Jobs = 1
 Password = "..."
 Messages = Daemon
}

JobDefs {
 Name = "LinuxDefault"
 Type = Backup
 Level = Incremental
 Schedule = "MonthlyCycleLinux"
 Messages = Standard
 Priority = 10
 Storage = LaCie
 Pool = Failover  # Hopefully never used, but required
}

JobDefs {
 Name = "WindowsDefault"
 Type = Backup
 Level = Incremental
 Schedule = "MonthlyCycleWindows"
 Messages = Standard
 Priority = 10
 # backup the registry to C:\SystemState.bkf
 Client Run Before Job = "c:/systemstate.bat"
 Client Run After Job = "c:/deletesystemstate.bat"
 Reschedule On Error = yes
 Reschedule Interval = 1 hour
 Storage = LaCie
 Pool = Failover
}

Job {
 Name = "MythBase"
 JobDefs = "LinuxDefault"
 Client = mythtv-fd
 WriteBootstrap = "/var/bacula/working/Myth.bsr"
 FileSet = "MythFullNoVideos"
 Full Backup Pool = MythFull
 Incremental Backup Pool = MythIncr
}

Job {
 Name = "FidoBase"
 JobDefs = "LinuxDefault"
 Client = fido-fd
 WriteBootstrap = "/var/bacula/working/Fido.bsr"
 FileSet = "FidoFullNoMP3"
 Full Backup Pool = FidoFull
 Incremental Backup Pool = FidoIncr
}

Job {
 Name = "LibbyBase"
 JobDefs = "WindowsDefault"
 Client = libby-fd
 Write Bootstrap = "/var/bacula/working/Libby.bsr"
 FileSet = "LibbyFull"
 Priority = 9 # have it execute before Jazz
 Full Backup Pool = LibbyFull
 Incremental Backup Pool = LibbyIncr
}

Job {
 Name = "JazzBase"
 JobDefs = "WindowsDefault"
 Client = jazz-fd
 Write Bootstrap = "/var/bacula/working/Jazz.bsr"
 FileSet = "JazzFull"
 Full Backup Pool = JazzFull
 Incremental Backup Pool = JazzIncr
}

Job {
 Name = "MortBase"
 JobDefs = "WindowsDefault"
 Schedule = "MonthlyCycleLaptops"
 Client = mort-fd
 Write Bootstrap = "/var/bacula/working/Mort.bsr"
 FileSet = "MortFull"
 Priority = 9 # have it execute before fido and myth
 Full Backup Pool = MortFull
 Incremental Backup Pool = MortIncr
}

Job {
 Name = "TweetyBase"
 JobDefs = "WindowsDefault"
 Schedule = "MonthlyCycleLaptops"
 Client = tweety-fd
 Write Bootstrap = "/var/bacula/working/Tweety.bsr"
 FileSet = "TweetyFull"
 Priority = 8 # have it execute before Mort
 Full Backup Pool = TweetyFull
 Incremental Backup Pool = TweetyIncr
}

Job {
 Name = "BackupCatalog"
 JobDefs = "LinuxDefault"
 Level = Full
 Client = mythtv-fd
 FileSet="Catalog"
 Schedule = "MonthlyCycleAfterBackup"
 # This creates an ASCII copy of the catalog
 RunBeforeJob = "/etc/bacula/make_catalog_backup bacula bacula"
 # This deletes the copy of the catalog
 RunAfterJob  = "/etc/bacula/delete_catalog_backup"
 Write Bootstrap = "/var/bacula/working/BackupCatalog.bsr"
 Priority = 11                   # run after main backup
 Pool = MythCatalog
}

#
# 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=mythtv-fd
 FileSet="MythFullNoVideos"
 Storage = LaCie
 Pool = MythFull
 Messages = Standard
 Where = /tmp/bacula-restores
}

# List of files to be backed up
# NOTE: FileSets work fine, and have been truncated for brevity
FileSet {
 Name = "FidoFullNoMP3"
=== snip ===
}

FileSet {
 Name = "MythFullNoVideos"

=== snip ===
}

FileSet {
 Name = "FidoMP3"

=== snip ===
}

FileSet
{
 Name = "LibbyFull"

=== snip ===
}

FileSet
{
 Name = "JazzFull"

=== snip ===
}

FileSet
{
 Name = "TweetyFull"

=== snip ===
}

FileSet
{
 Name = "MortFull"

=== snip ===
}

Schedule {
 Name = "MonthlyCycleLinux"
 Run = Full 1st sat at 0:05
 Run = Incremental 2nd-5th sat at 0:05
}

Schedule {
 Name = "MonthlyCycleWindows"
 Run = Full 1st wed at 8:35
 Run = Incremental 2nd-5th wed at 8:35
}

Schedule {
 Name = "MonthlyCycleLaptops"
 Run = Full 1st fri at 20:05
 Run = Incremental 2nd-5th fri at 20:05
}

# This schedule does the catalog. It starts after the MonthlyCycle
# Yes, I know this actually happens weekly.... on the list for sanity checks later.
Schedule {
 Name = "MonthlyCycleAfterBackup"
 Run = Full sun at 0:15
}

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

# Client (File Services) to backup
Client {
 Name = mythtv-fd
 Address = mythtv
 FDPort = 9102
 Catalog = MyCatalog
 Password = "..."          # password for Fido's FileDaemon
 File Retention = 62 days
 Job Retention = 6 months
 AutoPrune = yes
}

Client {
 Name = mort-fd
 Address = mort
 FDPort = 9102
 Catalog = MyCatalog
 Password = "..."         # password for Mort's FileDaemon
 File Retention = 62 days
 Job Retention = 6 months
 AutoPrune = yes
}

Client {
 Name = libby-fd
 Address = libby
 FDPort = 9102
 Catalog = MyCatalog
 # password for Libby's FileDaemon
 Password = "..."
 File Retention = 62 days
 Job Retention = 6 months
 AutoPrune = yes
}

Client {
 Name = jazz-fd
 Address = jazz
 FDPort = 9102
 Catalog = MyCatalog
 # password for Jazz's FileDaemon
 Password = "..."
 File Retention = 62 days
 Job Retention = 6 months
 AutoPrune = yes
}

Client {
 Name = fido-fd
 Address = fido
 FDPort = 9102
 Catalog = MyCatalog
 # password for fido's FileDaemon
 Password = "..."
 File Retention = 62 days
 Job Retention = 6 months
 AutoPrune = yes
}

Client {
 Name = tweety-fd
 Address = tweety
 FDPort = 9102
 Catalog = MyCatalog
 # password for Tweety's FileDaemon
 Password = "..."
 File Retention = 62 days
 Job Retention = 6 months
 AutoPrune = yes
}


Storage {
 Name = LaCie
# Do not use "localhost" here
 Address = 192.168.1.57 # mythtv
 SDPort = 9103
 Password = "..."
 Device = LaCie
 Media Type = File
}

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

# Reasonable message delivery -- send most everything to email address
#  and to the console
Messages {
 Name = Standard
mailcommand = "/sbin/bsmtp -h fido -f \"\(Bacula\) %r\" -s \"Bacula: %t %e of %c %l\" %r" operatorcommand = "/sbin/bsmtp -h fido -f \"\(Bacula\) %r\" -s \"Bacula: Intervention needed for %j\" %r"
 mail = (truncated)= all, !skipped
 operator = (truncated) = mount
 console = all, !skipped, !saved
 append = "/var/bacula/working/log" = all, !skipped
}


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



Pool {
 Name = LibbyFull
 Pool Type = Backup
 Maximum Volume Jobs = 1             # New file for each backup
Recycle = yes # Bacula can automatically recycle Volumes
 AutoPrune = yes                     # Prune expired volumes
 Volume Retention = 2 months
Maximum Volumes = 2 # Keep 2 months of full backups, no more
 Accept Any Volume = yes

# This doesn't work because the label command doesn't like the / character
 Label Format = "libby/Full/Monthly"
# Intention was for this result: /mnt/lacie/libby/Full/Monthly0001, 0002, etc
}

Pool {
 Name = LibbyIncr
 Pool Type = Backup
 Maximum Volume Jobs = 1             # New file for each backup
Recycle = yes # Bacula can automatically recycle Volumes
 AutoPrune = yes                     # Prune expired volumes
 Volume Retention = 2 months
Maximum Volumes = 8 # Keep 2 months of incremental backups, no more
 Accept Any Volume = yes

# See LibbyFull
 Label Format = "libby/Incremental/Weekly"
}


Pool {
 Name = JazzFull
 Pool Type = Backup
 Maximum Volume Jobs = 1             # New file for each backup
Recycle = yes # Bacula can automatically recycle Volumes
 AutoPrune = yes                     # Prune expired volumes
 Volume Retention = 2 months
Maximum Volumes = 2 # Keep 2 months of full backups, no more
 Accept Any Volume = yes


# See LibbyFull
 Label Format = "jazz/Full/Monthly"
}

Pool {
 Name = JazzIncr
 Pool Type = Backup
 Maximum Volume Jobs = 1             # New file for each backup
Recycle = yes # Bacula can automatically recycle Volumes
 AutoPrune = yes                     # Prune expired volumes
 Volume Retention = 2 months
Maximum Volumes = 8 # Keep 2 months of incremental backups, no more
 Accept Any Volume = yes


# See LibbyFull
 Label Format = "jazz/Incremental/Weekly"
}


Pool {
 Name = MythCatalog
 Pool Type = Backup
 Maximum Volume Jobs = 1             # New file for each backup
Recycle = yes # Bacula can automatically recycle Volumes
 AutoPrune = yes                     # Prune expired volumes
 Volume Retention = 2 months
Maximum Volumes = 2 # Keep 2 months of full backups, no more
 Accept Any Volume = yes


# See LibbyFull
 Label Format = "myth/Catalog/Monthly"
}

Pool {
 Name = MythFull
 Pool Type = Backup
 Maximum Volume Jobs = 1             # New file for each backup
Recycle = yes # Bacula can automatically recycle Volumes
 AutoPrune = yes                     # Prune expired volumes
 Volume Retention = 2 months
Maximum Volumes = 2 # Keep 2 months of full backups, no more
 Accept Any Volume = yes


# See LibbyFull
 Label Format = "myth/Full/Monthly"
}

Pool {
 Name = MythIncr
 Pool Type = Backup
 Maximum Volume Jobs = 1             # New file for each backup
Recycle = yes # Bacula can automatically recycle Volumes
 AutoPrune = yes                     # Prune expired volumes
 Volume Retention = 2 months
Maximum Volumes = 8 # Keep 2 months of incremental backups, no more
 Accept Any Volume = yes


# See LibbyFull
 Label Format = "myth/Incremental/Weekly"
}


Pool {
 Name = MortFull
 Pool Type = Backup
 Maximum Volume Jobs = 1             # New file for each backup
Recycle = yes # Bacula can automatically recycle Volumes
 AutoPrune = yes                     # Prune expired volumes
 Volume Retention = 2 months
Maximum Volumes = 2 # Keep 2 months of full backups, no more
 Accept Any Volume = yes


# See LibbyFull
 Label Format = "mort/Full/Monthly"
}

Pool {
 Name = MortIncr
 Pool Type = Backup
 Maximum Volume Jobs = 1             # New file for each backup
Recycle = yes # Bacula can automatically recycle Volumes
 AutoPrune = yes                     # Prune expired volumes
 Volume Retention = 2 months
Maximum Volumes = 8 # Keep 2 months of incremental backups, no more
 Accept Any Volume = yes


# See LibbyFull
 Label Format = "mort/Incremental/Weekly"
}


Pool {
 Name = TweetyFull
 Pool Type = Backup
 Maximum Volume Jobs = 1             # New file for each backup
Recycle = yes # Bacula can automatically recycle Volumes
 AutoPrune = yes                     # Prune expired volumes
 Volume Retention = 2 months
Maximum Volumes = 2 # Keep 2 months of full backups, no more
 Accept Any Volume = yes


# See LibbyFull
 Label Format = "tweety/Full/Monthly"
}

Pool {
 Name = TweetyIncr
 Pool Type = Backup
 Maximum Volume Jobs = 1             # New file for each backup
Recycle = yes # Bacula can automatically recycle Volumes
 AutoPrune = yes                     # Prune expired volumes
 Volume Retention = 2 months
Maximum Volumes = 8 # Keep 2 months of incremental backups, no more
 Accept Any Volume = yes


# See LibbyFull
 Label Format = "tweety/Incremental/Weekly"
}


Pool {
 Name = FidoFull
 Pool Type = Backup
 Maximum Volume Jobs = 1             # New file for each backup
Recycle = yes # Bacula can automatically recycle Volumes
 AutoPrune = yes                     # Prune expired volumes
 Volume Retention = 2 months
Maximum Volumes = 2 # Keep 2 months of full backups, no more
 Accept Any Volume = yes


# See LibbyFull
 Label Format = "fido/Full/Monthly"
}

Pool {
 Name = FidoIncr
 Pool Type = Backup
 Maximum Volume Jobs = 1             # New file for each backup
Recycle = yes # Bacula can automatically recycle Volumes
 AutoPrune = yes                     # Prune expired volumes
 Volume Retention = 2 months
Maximum Volumes = 8 # Keep 2 months of incremental backups, no more
 Accept Any Volume = yes


# See LibbyFull
 Label Format = "fido/Incremental/Weekly"
}

Pool {
 Name = Failover
 Pool Type = Backup
 Maximum Volume Jobs = 1
 Recycle = yes
 AutoPrune = yes
 Volume Retention = 2 months
 Maximum Volumes = 8
 Accept Any Volume = no


# See LibbyFull
 Label Format = "FailoverPool_${Client}_${Level}.backup"
}




-------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
_______________________________________________
Bacula-users mailing list
Bacula-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bacula-users

Reply via email to