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