Director { Name = bacula-tux64-dir Description = "Main Bacula Director" DIRport = 9101 DirAddress = tux64.home.lan QueryFile = /etc/bacula/query.sql WorkingDirectory = /var/spool/bacula #PidDirectory = "/var/run/bacula" PidDirectory = /var/run Maximum Concurrent Jobs = 1 # 1 because there is 1 storage devices. See pools.conf, devices.conf Password = "DIR_PASSWORD" # BConsole password Messages = Daemon } Console { Name = bacula-tux64-mon Password = "MON_DIR_PASSWORD" CommandACL = status, .status } Catalog { Name = MyCatalog dbname = "bacula" dbuser = "bacula" dbpassword = "" } Client { Name = tux32-fd Address = tux32.home.lan FDPort = 9102 Catalog = MyCatalog Password = "FD_PASSWORD_2" # password for FileDaemon 2 File Retention = 30 days # 30 days Job Retention = 6 months # 6 months AutoPrune = yes # Prune expired Jobs/Files } Client { Name = bacula-tux64-fd Address = tux64.home.lan FDPort = 9102 Catalog = MyCatalog Password = "FD_PASSWORD" # password for FileDaemon File Retention = 30 days # 30 days Job Retention = 6 months # 6 months AutoPrune = yes # Prune expired Jobs/Files } FileSet { Name = "Full Set" Include { Options { signature = SHA1 compression = gzip onefs = yes } File = /usr/bin } Exclude { File = /var/spool/bacula File = /proc File = /tmp File = /.journal File = /.fsck File = /sys File = /dev } } FileSet { Name = "Home Set" Include { Options { Exclude = yes RegexDir = "[cC]ache" RegexDir = "\.gvfs/*" WildDir = "*.thumbnails/*" WildDir = "*.wine/*" WildDir = "*/CEWE/*" } Options { # no compression signature = SHA1 ignore case = yes WildFile = *.pdf WildFile = *.odt WildFile = *.ods WildFile = *.jpg WildFile = *.jpeg WildFile = *.png WildFile = *.gif WildFile = *.mp3 WildFile = *.ogg WildFile = *.avi WildFile = *.mpg WildFile = *.mpeg WildFile = *.mp4 WildFile = *.mts WildFile = *.flv WildFile = *.swf WildFile = *.mov WildFile = *.gz WildFile = *.tgz WildFile = *.bz2 WildFile = *.tbz2 WildFile = *.z WildFile = *.zip WildFile = *.rar } Options { # compression signature = SHA1 compression = gzip } File = /home File = /storage/home ExcludeDirContaining = .no_backup } # exclude some dot files # http://askubuntu.com/questions/40992/what-files-and-directories-can-be-excluded-from-a-backup-of-the-home-directory Exclude { File = "*/.gvfs/*" File = "*/.local/share/gvfs-metadata/*" File = "*/.dbus/*" File = "*/.cache/*" File = "*/.cddb/*" File = "*/.fontconfig/*" # Flash-specific File = "*/.adobe/*" File = "*/.macromedia/*" # other files File = "*/.xsession-errors" File = "*/.Xauthority" # session-specific File = "*/.ICEauthority" File = "*/.gksu.lock" File = "*/.pulse/*" File = "*/.pulse-cookie" File = "*/.esd_auth" File = "*/lost+found/*" # firefox specific File = "*/.mozilla/firefox/*/Cache/*" File = "*/.mozilla/firefox/*/minidumps/*" # in case Fx crashes dumps will be stored in this File = "*/.mozilla/firefox/*/.parentlock" # session-specific File = "*/.mozilla/firefox/*/urlclassifier3.sqlite" # phishing database, recreated File = "*/.mozilla/firefox/*/blocklist.xml" # blacklisted extensions File = "*/.mozilla/firefox/*/extensions.sqlite" File = "*/.mozilla/firefox/*/extensions.sqlite-journal" File = "*/.mozilla/firefox/*/extensions.rdf" File = "*/.mozilla/firefox/*/extensions.ini" File = "*/.mozilla/firefox/*/extensions.cache" File = "*/.mozilla/firefox/*/XUL.mfasl" # cached UI data, recreated File = "*/.mozilla/firefox/*/XPC.mfasl" File = "*/.mozilla/firefox/*/xpti.dat" File = "*/.mozilla/firefox/*/compreg.dat" File = "*/.mozilla/firefox/Crash Reports/*" # Google Chrome File = "*/.config/google-chrome/Default/Local Storage/*" File = "*/.config/google-chrome/Default/Session Storage/*" File = "*/.config/google-chrome/Default/Application Cache/*" File = "*/.config/google-chrome/Default/History Index*" # GnuPGP File = "*/.gnupg/rnd" File = "*/.gnupg/random_seed" File = "*/.gnupg/.#*" File = "*/.gnupg/*.lock" File = "*/.gnupg/gpg-agent-info-*" # DropBox File = "*/.dropbox/*" # don't try to restore and reinitialize either of File = "*/.dropbox-dist/*" # these DIRs; very messy results can happen # other File = "*/.java/deployment/cache/*" # Cached applets File = "*/.gnome2/epiphany/favicon_cache/*" } # exclude specific user dirs Exclude { File = "*/Trash/*" File = "*/Downloads/*" File = "*/Dokumente/AudioBooks/*" File = "*/Dropbox/" File = "*/Ubuntu One/*" File = "*/VirtualBox VMs/*" File = "*/vm/*" File = "*/MP3z/*" File = "*/Downloads/*" } } FileSet { Name = "System Set" Include { Options { signature = SHA1 compression = gzip } File = /etc } } FileSet { Name = "Catalog" Include { Options { signature = SHA1 compression = gzip } File = "/var/spool/bacula/bacula.sql" } } JobDefs { Name = "DefaultJob" Type = Backup Level = Incremental Schedule = "WeeklyCycle" Storage = File Messages = Standard Pool = Default Priority = 10 Write Bootstrap = "/var/spool/bacula/%c.bsr" } Job { Name = "tux64 Home" JobDefs = "DefaultJob" Client = bacula-tux64-fd FileSet = "Home Set" } Job { Name = "tux64 System" JobDefs = "DefaultJob" Client = bacula-tux64-fd FileSet = "System Set" RunAfterJob = "rsync -AarL --exclude-from=/etc/bacula/bacula-conf-rsync-exclude.txt /etc/bacula/ /var/spool/bacula/volumes/recovery" } Job { Name = "BackupCatalog" JobDefs = "DefaultJob" Client = bacula-tux64-fd Level = Full FileSet = "Catalog" Schedule = "WeeklyCycleAfterBackup" # This creates an ASCII copy of the catalog # Arguments to make_catalog_backup.pl are: # make_catalog_backup.pl 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 } Job { Name = "RestoreFiles" Type = Restore Client = bacula-tux64-fd FileSet = "Full Set" Storage = File Pool = Default Messages = Standard Where = /tmp/bacula-restores } Messages { Name = Standard 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 = olaf@localhost = all, !skipped operator = olaf@localhost = mount console = all, !skipped, !saved append = "/var/spool/bacula/log" = all, !skipped catalog = all } Messages { Name = Daemon mailcommand = "/usr/sbin/bsmtp -h localhost -f \"\(Bacula\) \<%r\>\" -s \"Bacula daemon message\" %r" mail = olaf@localhost = all, !skipped console = all, !skipped, !saved append = "/var/log/bacula/bacula.log" = all, !skipped } Pool { Name = Default Pool Type = Backup Recycle = yes # Bacula can automatically recycle Volumes AutoPrune = yes # Prune expired volumes Volume Retention = 90 days # 3 month Label Format = "file-" Maximum Volume Bytes = 4096M # Limit Volume size to something reasonable, SAMSUNG HD502HI free 459GB -> 94x5G Maximum Volumes = 110 # Limit number of Volumes in Pool } Pool { Name = File-new Pool Type = Backup Recycle = yes # Bacula can automatically recycle Volumes AutoPrune = yes # Prune expired volumes Volume Retention = 120 days # 4 month Label Format = "file-" Maximum Volume Bytes = 5G # Limit Volume size to something reasonable Maximum Volumes = 174 # Limit number of Volumes in Pool, about 871G } Pool { Name = Scratch Pool Type = Backup } Schedule { Name = "WeeklyCycle" Run = Full 1st sun at 18:30 Run = Differential 2nd-5th sun at 18:30 Run = Incremental mon-sat at 18:30 } Schedule { Name = "WeeklyCycleAfterBackup" Run = Full sun-sat at 18:35 } Storage { Name = File Address = tux64.home.lan # N.B. Use a fully qualified name here SDPort = 9103 Password = "SD_PASSWORD" Device = LocalFileStorage Media Type = File Maximum Concurrent Jobs = 10 # run up to 10 jobs a the same time }