\contentsline {chapter}{\numberline {1}What is Bacula?}{1}{chapter.1}
\contentsline {section}{\numberline {1.1}Who Needs Bacula?}{1}{section.1.1}
\contentsline {section}{\numberline {1.2}Bacula Components or Services}{1}{section.1.2}
\contentsline {section}{\numberline {1.3}Bacula Configuration}{4}{section.1.3}
\contentsline {section}{\numberline {1.4}Conventions Used in this Document}{4}{section.1.4}
\contentsline {section}{\numberline {1.5}Quick Start}{5}{section.1.5}
\contentsline {section}{\numberline {1.6}Terminology}{5}{section.1.6}
\contentsline {section}{\numberline {1.7}What Bacula is Not}{7}{section.1.7}
\contentsline {section}{\numberline {1.8}Interactions Between the Bacula Services}{7}{section.1.8}
\contentsline {chapter}{\numberline {2}New Features in 5.0.1}{9}{chapter.2}
\contentsline {section}{\numberline {2.1}Truncate Volume after Purge}{9}{section.2.1}
\contentsline {section}{\numberline {2.2}Allow Higher Duplicates}{10}{section.2.2}
\contentsline {section}{\numberline {2.3}Cancel Lower Level Duplicates}{10}{section.2.3}
\contentsline {chapter}{\numberline {3}New Features in 5.0.0}{11}{chapter.3}
\contentsline {section}{\numberline {3.1}Maximum Concurent Jobs for Devices}{11}{section.3.1}
\contentsline {section}{\numberline {3.2}Restore from Multiple Storage Daemons}{11}{section.3.2}
\contentsline {section}{\numberline {3.3}File Deduplication using Base Jobs}{11}{section.3.3}
\contentsline {section}{\numberline {3.4}AllowCompression = $<${}yes$|${}no$>${}}{12}{section.3.4}
\contentsline {section}{\numberline {3.5}Accurate Fileset Options}{13}{section.3.5}
\contentsline {section}{\numberline {3.6}Tab-completion for Bconsole}{13}{section.3.6}
\contentsline {section}{\numberline {3.7}Pool File and Job retention}{14}{section.3.7}
\contentsline {section}{\numberline {3.8}Read-only File Daemon using capabilities}{14}{section.3.8}
\contentsline {section}{\numberline {3.9}Bvfs API}{14}{section.3.9}
\contentsline {section}{\numberline {3.10}Testing your Tape Drive}{15}{section.3.10}
\contentsline {section}{\numberline {3.11}New {\bf Block Checksum} Device Directive}{15}{section.3.11}
\contentsline {section}{\numberline {3.12}New Bat Features}{16}{section.3.12}
\contentsline {subsection}{\numberline {3.12.1}Media List View}{16}{subsection.3.12.1}
\contentsline {subsection}{\numberline {3.12.2}Media Information View}{16}{subsection.3.12.2}
\contentsline {subsection}{\numberline {3.12.3}Job Information View}{16}{subsection.3.12.3}
\contentsline {subsection}{\numberline {3.12.4}Autochanger Content View}{16}{subsection.3.12.4}
\contentsline {section}{\numberline {3.13}Bat on Windows}{18}{section.3.13}
\contentsline {section}{\numberline {3.14}New Win32 Installer}{18}{section.3.14}
\contentsline {section}{\numberline {3.15}Win64 Installer}{19}{section.3.15}
\contentsline {section}{\numberline {3.16}Linux Bare Metal Recovery USB Key}{19}{section.3.16}
\contentsline {section}{\numberline {3.17}bconsole Timeout Option}{19}{section.3.17}
\contentsline {section}{\numberline {3.18}Important Changes}{19}{section.3.18}
\contentsline {subsection}{\numberline {3.18.1}Custom Catalog queries}{19}{subsection.3.18.1}
\contentsline {subsection}{\numberline {3.18.2}Deprecated parts}{20}{subsection.3.18.2}
\contentsline {section}{\numberline {3.19}Misc Changes}{20}{section.3.19}
\contentsline {chapter}{\numberline {4}Released Version 3.0.3 and 3.0.3a}{21}{chapter.4}
\contentsline {chapter}{\numberline {5}New Features in Released Version 3.0.2}{23}{chapter.5}
\contentsline {section}{\numberline {5.1}Full Restore from a Given JobId}{23}{section.5.1}
\contentsline {section}{\numberline {5.2}Source Address}{24}{section.5.2}
\contentsline {section}{\numberline {5.3}Show volume availability when doing restore}{24}{section.5.3}
\contentsline {section}{\numberline {5.4}Accurate estimate command}{24}{section.5.4}
\contentsline {chapter}{\numberline {6}New Features in 3.0.0}{27}{chapter.6}
\contentsline {section}{\numberline {6.1}Accurate Backup}{27}{section.6.1}
\contentsline {subsection}{\numberline {6.1.1}Accurate = $<${}yes$|${}no$>${}}{27}{subsection.6.1.1}
\contentsline {section}{\numberline {6.2}Copy Jobs}{27}{section.6.2}
\contentsline {section}{\numberline {6.3}ACL Updates}{30}{section.6.3}
\contentsline {section}{\numberline {6.4}Extended Attributes}{31}{section.6.4}
\contentsline {section}{\numberline {6.5}Shared objects}{32}{section.6.5}
\contentsline {section}{\numberline {6.6}Building Static versions of Bacula}{32}{section.6.6}
\contentsline {section}{\numberline {6.7}Virtual Backup (Vbackup)}{32}{section.6.7}
\contentsline {section}{\numberline {6.8}Catalog Format}{34}{section.6.8}
\contentsline {section}{\numberline {6.9}64 bit Windows Client}{34}{section.6.9}
\contentsline {section}{\numberline {6.10}Duplicate Job Control}{35}{section.6.10}
\contentsline {subsection}{\numberline {6.10.1}Allow Duplicate Jobs = $<${}yes$|${}no$>${}}{35}{subsection.6.10.1}
\contentsline {subsection}{\numberline {6.10.2}Allow Higher Duplicates = $<${}yes$|${}no$>${}}{35}{subsection.6.10.2}
\contentsline {subsection}{\numberline {6.10.3}Cancel Running Duplicates = $<${}yes$|${}no$>${}}{35}{subsection.6.10.3}
\contentsline {subsection}{\numberline {6.10.4}Cancel Queued Duplicates = $<${}yes$|${}no$>${}}{36}{subsection.6.10.4}
\contentsline {section}{\numberline {6.11}TLS Authentication}{36}{section.6.11}
\contentsline {subsection}{\numberline {6.11.1}TLS Authenticate = yes}{36}{subsection.6.11.1}
\contentsline {section}{\numberline {6.12}bextract non-portable Win32 data}{36}{section.6.12}
\contentsline {section}{\numberline {6.13}State File updated at Job Termination}{36}{section.6.13}
\contentsline {section}{\numberline {6.14}MaxFullInterval = $<${}time-interval$>${}}{36}{section.6.14}
\contentsline {section}{\numberline {6.15}MaxDiffInterval = $<${}time-interval$>${}}{37}{section.6.15}
\contentsline {section}{\numberline {6.16}Honor No Dump Flag = $<${}yes$|${}no$>${}}{37}{section.6.16}
\contentsline {section}{\numberline {6.17}Exclude Dir Containing = $<${}filename-string$>${}}{37}{section.6.17}
\contentsline {section}{\numberline {6.18}Bacula Plugins}{38}{section.6.18}
\contentsline {subsection}{\numberline {6.18.1}Plugin Directory}{38}{subsection.6.18.1}
\contentsline {subsection}{\numberline {6.18.2}Plugin Options}{38}{subsection.6.18.2}
\contentsline {subsection}{\numberline {6.18.3}Plugin Options ACL}{38}{subsection.6.18.3}
\contentsline {subsection}{\numberline {6.18.4}Plugin = $<${}plugin-command-string$>${}}{38}{subsection.6.18.4}
\contentsline {section}{\numberline {6.19}The bpipe Plugin}{39}{section.6.19}
\contentsline {section}{\numberline {6.20}Microsoft Exchange Server 2003/2007 Plugin}{40}{section.6.20}
\contentsline {subsection}{\numberline {6.20.1}Background}{40}{subsection.6.20.1}
\contentsline {subsection}{\numberline {6.20.2}Concepts}{40}{subsection.6.20.2}
\contentsline {subsection}{\numberline {6.20.3}Installing}{40}{subsection.6.20.3}
\contentsline {subsection}{\numberline {6.20.4}Backing Up}{40}{subsection.6.20.4}
\contentsline {subsection}{\numberline {6.20.5}Restoring}{41}{subsection.6.20.5}
\contentsline {subsection}{\numberline {6.20.6}Restoring to the Recovery Storage Group}{41}{subsection.6.20.6}
\contentsline {subsection}{\numberline {6.20.7}Restoring on Microsoft Server 2007}{42}{subsection.6.20.7}
\contentsline {subsection}{\numberline {6.20.8}Caveats}{42}{subsection.6.20.8}
\contentsline {section}{\numberline {6.21}libdbi Framework}{42}{section.6.21}
\contentsline {section}{\numberline {6.22}Console Command Additions and Enhancements}{44}{section.6.22}
\contentsline {subsection}{\numberline {6.22.1}Display Autochanger Content}{44}{subsection.6.22.1}
\contentsline {subsection}{\numberline {6.22.2}list joblog job=xxx or jobid=nnn}{44}{subsection.6.22.2}
\contentsline {subsection}{\numberline {6.22.3}Use separator for multiple commands}{44}{subsection.6.22.3}
\contentsline {subsection}{\numberline {6.22.4}Deleting Volumes}{44}{subsection.6.22.4}
\contentsline {section}{\numberline {6.23}Bare Metal Recovery}{44}{section.6.23}
\contentsline {section}{\numberline {6.24}Miscellaneous}{45}{section.6.24}
\contentsline {subsection}{\numberline {6.24.1}Allow Mixed Priority = $<${}yes$|${}no$>${}}{45}{subsection.6.24.1}
\contentsline {subsection}{\numberline {6.24.2}Bootstrap File Directive -- FileRegex}{45}{subsection.6.24.2}
\contentsline {subsection}{\numberline {6.24.3}Bootstrap File Optimization Changes}{46}{subsection.6.24.3}
\contentsline {subsection}{\numberline {6.24.4}Solaris ZFS/NFSv4 ACLs}{46}{subsection.6.24.4}
\contentsline {subsection}{\numberline {6.24.5}Virtual Tape Emulation}{46}{subsection.6.24.5}
\contentsline {subsection}{\numberline {6.24.6}Bat Enhancements}{46}{subsection.6.24.6}
\contentsline {subsection}{\numberline {6.24.7}RunScript Enhancements}{46}{subsection.6.24.7}
\contentsline {subsection}{\numberline {6.24.8}Status Enhancements}{47}{subsection.6.24.8}
\contentsline {subsection}{\numberline {6.24.9}Connect Timeout}{47}{subsection.6.24.9}
\contentsline {subsection}{\numberline {6.24.10}ftruncate for NFS Volumes}{47}{subsection.6.24.10}
\contentsline {subsection}{\numberline {6.24.11}Support for Ubuntu}{47}{subsection.6.24.11}
\contentsline {subsection}{\numberline {6.24.12}Recycle Pool = $<${}pool-name$>${}}{47}{subsection.6.24.12}
\contentsline {subsection}{\numberline {6.24.13}FD Version}{47}{subsection.6.24.13}
\contentsline {subsection}{\numberline {6.24.14}Max Run Sched Time = $<${}time-period-in-seconds$>${}}{48}{subsection.6.24.14}
\contentsline {subsection}{\numberline {6.24.15}Max Wait Time = $<${}time-period-in-seconds$>${}}{48}{subsection.6.24.15}
\contentsline {subsection}{\numberline {6.24.16}Incremental|Differential Max Wait Time = $<${}time-period-in-seconds$>${}}{48}{subsection.6.24.16}
\contentsline {subsection}{\numberline {6.24.17}Max Run Time directives}{48}{subsection.6.24.17}
\contentsline {subsection}{\numberline {6.24.18}Statistics Enhancements}{49}{subsection.6.24.18}
\contentsline {subsection}{\numberline {6.24.19}ScratchPool = $<${}pool-resource-name$>${}}{50}{subsection.6.24.19}
\contentsline {subsection}{\numberline {6.24.20}Enhanced Attribute Despooling}{50}{subsection.6.24.20}
\contentsline {subsection}{\numberline {6.24.21}SpoolSize = $<${}size-specification-in-bytes$>${}}{50}{subsection.6.24.21}
\contentsline {subsection}{\numberline {6.24.22}MaxConsoleConnections = $<${}number$>${}}{50}{subsection.6.24.22}
\contentsline {subsection}{\numberline {6.24.23}VerId = $<${}string$>${}}{51}{subsection.6.24.23}
\contentsline {subsection}{\numberline {6.24.24}dbcheck enhancements}{51}{subsection.6.24.24}
\contentsline {subsection}{\numberline {6.24.25}{-}{-}docdir configure option}{51}{subsection.6.24.25}
\contentsline {subsection}{\numberline {6.24.26}{-}{-}htmldir configure option}{51}{subsection.6.24.26}
\contentsline {subsection}{\numberline {6.24.27}{-}{-}with-plugindir configure option}{51}{subsection.6.24.27}
\contentsline {chapter}{\numberline {7}The Current State of Bacula}{53}{chapter.7}
\contentsline {section}{\numberline {7.1}What is Implemented}{53}{section.7.1}
\contentsline {section}{\numberline {7.2}Advantages Over Other Backup Programs}{55}{section.7.2}
\contentsline {section}{\numberline {7.3}Current Implementation Restrictions}{55}{section.7.3}
\contentsline {section}{\numberline {7.4}Design Limitations or Restrictions}{56}{section.7.4}
\contentsline {section}{\numberline {7.5}Items to Note}{56}{section.7.5}
\contentsline {chapter}{\numberline {8}System Requirements}{57}{chapter.8}
\contentsline {chapter}{\numberline {9}Supported Operating Systems}{59}{chapter.9}
\contentsline {chapter}{\numberline {10}Supported Tape Drives}{61}{chapter.10}
\contentsline {section}{\numberline {10.1}Unsupported Tape Drives}{62}{section.10.1}
\contentsline {section}{\numberline {10.2}FreeBSD Users Be Aware!!!}{62}{section.10.2}
\contentsline {section}{\numberline {10.3}Supported Autochangers}{62}{section.10.3}
\contentsline {section}{\numberline {10.4}Tape Specifications}{62}{section.10.4}
\contentsline {chapter}{\numberline {11}Getting Started with Bacula}{65}{chapter.11}
\contentsline {section}{\numberline {11.1}Understanding Jobs and Schedules}{65}{section.11.1}
\contentsline {section}{\numberline {11.2}Understanding Pools, Volumes and Labels}{65}{section.11.2}
\contentsline {section}{\numberline {11.3}Setting Up Bacula Configuration Files}{66}{section.11.3}
\contentsline {subsection}{\numberline {11.3.1}Configuring the Console Program}{66}{subsection.11.3.1}
\contentsline {subsection}{\numberline {11.3.2}Configuring the Monitor Program}{67}{subsection.11.3.2}
\contentsline {subsection}{\numberline {11.3.3}Configuring the File daemon}{67}{subsection.11.3.3}
\contentsline {subsection}{\numberline {11.3.4}Configuring the Director}{68}{subsection.11.3.4}
\contentsline {subsection}{\numberline {11.3.5}Configuring the Storage daemon}{68}{subsection.11.3.5}
\contentsline {section}{\numberline {11.4}Testing your Configuration Files}{69}{section.11.4}
\contentsline {section}{\numberline {11.5}Testing Compatibility with Your Tape Drive}{69}{section.11.5}
\contentsline {section}{\numberline {11.6}Get Rid of the /lib/tls Directory}{69}{section.11.6}
\contentsline {section}{\numberline {11.7}Running Bacula}{69}{section.11.7}
\contentsline {section}{\numberline {11.8}Log Rotation}{70}{section.11.8}
\contentsline {section}{\numberline {11.9}Log Watch}{70}{section.11.9}
\contentsline {section}{\numberline {11.10}Disaster Recovery}{70}{section.11.10}
\contentsline {chapter}{\numberline {12}Installing Bacula}{71}{chapter.12}
\contentsline {section}{\numberline {12.1}Source Release Files}{71}{section.12.1}
\contentsline {section}{\numberline {12.2}Upgrading Bacula}{72}{section.12.2}
\contentsline {section}{\numberline {12.3}Releases Numbering}{73}{section.12.3}
\contentsline {section}{\numberline {12.4}Dependency Packages}{74}{section.12.4}
\contentsline {section}{\numberline {12.5}Supported Operating Systems}{75}{section.12.5}
\contentsline {section}{\numberline {12.6}Building Bacula from Source}{75}{section.12.6}
\contentsline {section}{\numberline {12.7}What Database to Use?}{78}{section.12.7}
\contentsline {section}{\numberline {12.8}Quick Start}{78}{section.12.8}
\contentsline {section}{\numberline {12.9}Configure Options}{79}{section.12.9}
\contentsline {section}{\numberline {12.10}Recommended Options for Most Systems}{84}{section.12.10}
\contentsline {section}{\numberline {12.11}Red Hat}{84}{section.12.11}
\contentsline {section}{\numberline {12.12}Solaris}{85}{section.12.12}
\contentsline {section}{\numberline {12.13}FreeBSD}{86}{section.12.13}
\contentsline {section}{\numberline {12.14}Win32}{86}{section.12.14}
\contentsline {section}{\numberline {12.15}One File Configure Script}{86}{section.12.15}
\contentsline {section}{\numberline {12.16}Installing Bacula}{87}{section.12.16}
\contentsline {section}{\numberline {12.17}Building a File Daemon or Client}{87}{section.12.17}
\contentsline {section}{\numberline {12.18}Auto Starting the Daemons}{87}{section.12.18}
\contentsline {section}{\numberline {12.19}Other Make Notes}{88}{section.12.19}
\contentsline {section}{\numberline {12.20}Installing Tray Monitor}{89}{section.12.20}
\contentsline {subsection}{\numberline {12.20.1}GNOME}{89}{subsection.12.20.1}
\contentsline {subsection}{\numberline {12.20.2}KDE}{90}{subsection.12.20.2}
\contentsline {subsection}{\numberline {12.20.3}Other window managers}{90}{subsection.12.20.3}
\contentsline {section}{\numberline {12.21}Modifying the Bacula Configuration Files}{90}{section.12.21}
\contentsline {chapter}{\numberline {13}Critical Items to Implement Before Production}{91}{chapter.13}
\contentsline {section}{\numberline {13.1}Critical Items}{91}{section.13.1}
\contentsline {section}{\numberline {13.2}Recommended Items}{92}{section.13.2}
\contentsline {chapter}{\numberline {14}A Brief Tutorial}{93}{chapter.14}
\contentsline {section}{\numberline {14.1}Before Running Bacula}{93}{section.14.1}
\contentsline {section}{\numberline {14.2}Starting the Database}{94}{section.14.2}
\contentsline {section}{\numberline {14.3}Starting the Daemons}{94}{section.14.3}
\contentsline {section}{\numberline {14.4}Using the Director to Query and Start Jobs}{94}{section.14.4}
\contentsline {section}{\numberline {14.5}Running a Job}{96}{section.14.5}
\contentsline {section}{\numberline {14.6}Restoring Your Files}{100}{section.14.6}
\contentsline {section}{\numberline {14.7}Quitting the Console Program}{102}{section.14.7}
\contentsline {section}{\numberline {14.8}Adding a Second Client}{102}{section.14.8}
\contentsline {section}{\numberline {14.9}When The Tape Fills}{103}{section.14.9}
\contentsline {section}{\numberline {14.10}Other Useful Console Commands}{105}{section.14.10}
\contentsline {section}{\numberline {14.11}Debug Daemon Output}{105}{section.14.11}
\contentsline {section}{\numberline {14.12}Patience When Starting Daemons or Mounting Blank Tapes}{106}{section.14.12}
\contentsline {section}{\numberline {14.13}Difficulties Connecting from the FD to the SD}{106}{section.14.13}
\contentsline {section}{\numberline {14.14}Daemon Command Line Options}{106}{section.14.14}
\contentsline {section}{\numberline {14.15}Creating a Pool}{107}{section.14.15}
\contentsline {section}{\numberline {14.16}Labeling Your Volumes}{107}{section.14.16}
\contentsline {section}{\numberline {14.17}Labeling Volumes with the Console Program}{108}{section.14.17}
\contentsline {chapter}{\numberline {15}Customizing the Configuration Files}{111}{chapter.15}
\contentsline {section}{\numberline {15.1}Character Sets}{112}{section.15.1}
\contentsline {section}{\numberline {15.2}Resource Directive Format}{113}{section.15.2}
\contentsline {subsection}{\numberline {15.2.1}Comments}{113}{subsection.15.2.1}
\contentsline {subsection}{\numberline {15.2.2}Upper and Lower Case and Spaces}{113}{subsection.15.2.2}
\contentsline {subsection}{\numberline {15.2.3}Including other Configuration Files}{113}{subsection.15.2.3}
\contentsline {subsection}{\numberline {15.2.4}Recognized Primitive Data Types}{114}{subsection.15.2.4}
\contentsline {section}{\numberline {15.3}Resource Types}{115}{section.15.3}
\contentsline {section}{\numberline {15.4}Names, Passwords and Authorization}{115}{section.15.4}
\contentsline {section}{\numberline {15.5}Detailed Information for each Daemon}{116}{section.15.5}
\contentsline {chapter}{\numberline {16}Configuring the Director}{117}{chapter.16}
\contentsline {section}{\numberline {16.1}Director Resource Types}{117}{section.16.1}
\contentsline {section}{\numberline {16.2}The Director Resource}{118}{section.16.2}
\contentsline {section}{\numberline {16.3}The Job Resource}{120}{section.16.3}
\contentsline {section}{\numberline {16.4}The JobDefs Resource}{135}{section.16.4}
\contentsline {section}{\numberline {16.5}The Schedule Resource}{135}{section.16.5}
\contentsline {section}{\numberline {16.6}Technical Notes on Schedules}{138}{section.16.6}
\contentsline {section}{\numberline {16.7}The FileSet Resource}{138}{section.16.7}
\contentsline {section}{\numberline {16.8}FileSet Examples}{149}{section.16.8}
\contentsline {section}{\numberline {16.9}Backing up Raw Partitions}{154}{section.16.9}
\contentsline {section}{\numberline {16.10}Excluding Files and Directories}{154}{section.16.10}
\contentsline {section}{\numberline {16.11}Windows FileSets}{154}{section.16.11}
\contentsline {section}{\numberline {16.12}Testing Your FileSet}{156}{section.16.12}
\contentsline {section}{\numberline {16.13}The Client Resource}{157}{section.16.13}
\contentsline {section}{\numberline {16.14}The Storage Resource}{158}{section.16.14}
\contentsline {section}{\numberline {16.15}The Pool Resource}{160}{section.16.15}
\contentsline {subsection}{\numberline {16.15.1}The Scratch Pool}{166}{subsection.16.15.1}
\contentsline {section}{\numberline {16.16}The Catalog Resource}{166}{section.16.16}
\contentsline {section}{\numberline {16.17}The Messages Resource}{167}{section.16.17}
\contentsline {section}{\numberline {16.18}The Console Resource}{168}{section.16.18}
\contentsline {section}{\numberline {16.19}The Counter Resource}{169}{section.16.19}
\contentsline {section}{\numberline {16.20}Example Director Configuration File}{170}{section.16.20}
\contentsline {chapter}{\numberline {17}Client/File daemon Configuration}{173}{chapter.17}
\contentsline {section}{\numberline {17.1}The Client Resource}{173}{section.17.1}
\contentsline {section}{\numberline {17.2}The Director Resource}{175}{section.17.2}
\contentsline {section}{\numberline {17.3}The Message Resource}{176}{section.17.3}
\contentsline {section}{\numberline {17.4}Example Client Configuration File}{176}{section.17.4}
\contentsline {chapter}{\numberline {18}Storage Daemon Configuration}{177}{chapter.18}
\contentsline {section}{\numberline {18.1}Storage Resource}{177}{section.18.1}
\contentsline {section}{\numberline {18.2}Director Resource}{179}{section.18.2}
\contentsline {section}{\numberline {18.3}Device Resource}{179}{section.18.3}
\contentsline {section}{\numberline {18.4}Edit Codes for Mount and Unmount Directives}{187}{section.18.4}
\contentsline {section}{\numberline {18.5}Devices that require a mount (DVD)}{187}{section.18.5}
\contentsline {chapter}{\numberline {19}Autochanger Resource}{189}{chapter.19}
\contentsline {section}{\numberline {19.1}Capabilities}{190}{section.19.1}
\contentsline {section}{\numberline {19.2}Messages Resource}{190}{section.19.2}
\contentsline {section}{\numberline {19.3}Sample Storage Daemon Configuration File}{190}{section.19.3}
\contentsline {chapter}{\numberline {20}Messages Resource}{193}{chapter.20}
\contentsline {chapter}{\numberline {21}Console Configuration}{197}{chapter.21}
\contentsline {section}{\numberline {21.1}General}{197}{section.21.1}
\contentsline {section}{\numberline {21.2}The Director Resource}{197}{section.21.2}
\contentsline {section}{\numberline {21.3}The ConsoleFont Resource}{198}{section.21.3}
\contentsline {section}{\numberline {21.4}The Console Resource}{198}{section.21.4}
\contentsline {section}{\numberline {21.5}Console Commands}{200}{section.21.5}
\contentsline {section}{\numberline {21.6}Sample Console Configuration File}{200}{section.21.6}
\contentsline {chapter}{\numberline {22}Monitor Configuration}{201}{chapter.22}
\contentsline {section}{\numberline {22.1}The Monitor Resource}{201}{section.22.1}
\contentsline {section}{\numberline {22.2}The Director Resource}{201}{section.22.2}
\contentsline {section}{\numberline {22.3}The Client Resource}{202}{section.22.3}
\contentsline {section}{\numberline {22.4}The Storage Resource}{202}{section.22.4}
\contentsline {section}{\numberline {22.5}Tray Monitor Security}{203}{section.22.5}
\contentsline {section}{\numberline {22.6}Sample Tray Monitor configuration}{203}{section.22.6}
\contentsline {subsection}{\numberline {22.6.1}Sample File daemon's Director record.}{204}{subsection.22.6.1}
\contentsline {subsection}{\numberline {22.6.2}Sample Storage daemon's Director record.}{204}{subsection.22.6.2}
\contentsline {subsection}{\numberline {22.6.3}Sample Director's Console record.}{204}{subsection.22.6.3}
\contentsline {chapter}{\numberline {23}The Restore Command}{205}{chapter.23}
\contentsline {section}{\numberline {23.1}General}{205}{section.23.1}
\contentsline {section}{\numberline {23.2}The Restore Command}{205}{section.23.2}
\contentsline {subsection}{\numberline {23.2.1}Restore a pruned job using a pattern}{210}{subsection.23.2.1}
\contentsline {section}{\numberline {23.3}Selecting Files by Filename}{210}{section.23.3}
\contentsline {section}{\numberline {23.4}Replace Options}{211}{section.23.4}
\contentsline {section}{\numberline {23.5}Command Line Arguments}{212}{section.23.5}
\contentsline {section}{\numberline {23.6}Using File Relocation}{213}{section.23.6}
\contentsline {subsection}{\numberline {23.6.1}Introduction}{213}{subsection.23.6.1}
\contentsline {subsection}{\numberline {23.6.2}RegexWhere Format}{213}{subsection.23.6.2}
\contentsline {section}{\numberline {23.7}Restoring Directory Attributes}{214}{section.23.7}
\contentsline {section}{\numberline {23.8}Restoring on Windows}{214}{section.23.8}
\contentsline {section}{\numberline {23.9}Restoring Files Can Be Slow}{215}{section.23.9}
\contentsline {section}{\numberline {23.10}Problems Restoring Files}{215}{section.23.10}
\contentsline {section}{\numberline {23.11}Restore Errors}{216}{section.23.11}
\contentsline {section}{\numberline {23.12}Example Restore Job Resource}{216}{section.23.12}
\contentsline {section}{\numberline {23.13}File Selection Commands}{216}{section.23.13}
\contentsline {section}{\numberline {23.14}Restoring When Things Go Wrong}{218}{section.23.14}
\contentsline {chapter}{\numberline {24}Automatic Volume Recycling}{223}{chapter.24}
\contentsline {section}{\numberline {24.1}Automatic Pruning}{224}{section.24.1}
\contentsline {section}{\numberline {24.2}Pruning Directives}{224}{section.24.2}
\contentsline {section}{\numberline {24.3}Recycling Algorithm}{226}{section.24.3}
\contentsline {section}{\numberline {24.4}Recycle Status}{227}{section.24.4}
\contentsline {section}{\numberline {24.5}Making Bacula Use a Single Tape}{228}{section.24.5}
\contentsline {section}{\numberline {24.6}Daily, Weekly, Monthly Tape Usage Example}{228}{section.24.6}
\contentsline {section}{\numberline {24.7} Automatic Pruning and Recycling Example}{230}{section.24.7}
\contentsline {section}{\numberline {24.8}Manually Recycling Volumes}{231}{section.24.8}
\contentsline {chapter}{\numberline {25}Basic Volume Management}{233}{chapter.25}
\contentsline {section}{\numberline {25.1}Key Concepts and Resource Records}{233}{section.25.1}
\contentsline {subsection}{\numberline {25.1.1}Pool Options to Limit the Volume Usage}{234}{subsection.25.1.1}
\contentsline {subsection}{\numberline {25.1.2}Automatic Volume Labeling}{235}{subsection.25.1.2}
\contentsline {subsection}{\numberline {25.1.3}Restricting the Number of Volumes and Recycling}{235}{subsection.25.1.3}
\contentsline {section}{\numberline {25.2}Concurrent Disk Jobs}{236}{section.25.2}
\contentsline {section}{\numberline {25.3}An Example}{237}{section.25.3}
\contentsline {section}{\numberline {25.4}Backing up to Multiple Disks}{239}{section.25.4}
\contentsline {section}{\numberline {25.5}Considerations for Multiple Clients}{240}{section.25.5}
\contentsline {chapter}{\numberline {26}Automated Disk Backup}{245}{chapter.26}
\contentsline {section}{\numberline {26.1}The Problem}{245}{section.26.1}
\contentsline {section}{\numberline {26.2}The Solution}{245}{section.26.2}
\contentsline {section}{\numberline {26.3}Overall Design}{246}{section.26.3}
\contentsline {subsection}{\numberline {26.3.1}Full Pool}{246}{subsection.26.3.1}
\contentsline {subsection}{\numberline {26.3.2}Differential Pool}{247}{subsection.26.3.2}
\contentsline {subsection}{\numberline {26.3.3}Incremental Pool}{247}{subsection.26.3.3}
\contentsline {section}{\numberline {26.4}The Actual Conf Files}{247}{section.26.4}
\contentsline {chapter}{\numberline {27}Migration and Copy}{251}{chapter.27}
\contentsline {section}{\numberline {27.1}Migration and Copy Job Resource Directives}{252}{section.27.1}
\contentsline {section}{\numberline {27.2}Migration Pool Resource Directives}{254}{section.27.2}
\contentsline {section}{\numberline {27.3}Important Migration Considerations}{254}{section.27.3}
\contentsline {section}{\numberline {27.4}Example Migration Jobs}{255}{section.27.4}
\contentsline {chapter}{\numberline {28}Backup Strategies}{257}{chapter.28}
\contentsline {section}{\numberline {28.1}Simple One Tape Backup}{257}{section.28.1}
\contentsline {subsection}{\numberline {28.1.1}Advantages}{257}{subsection.28.1.1}
\contentsline {subsection}{\numberline {28.1.2}Disadvantages}{257}{subsection.28.1.2}
\contentsline {subsection}{\numberline {28.1.3}Practical Details}{257}{subsection.28.1.3}
\contentsline {section}{\numberline {28.2}Manually Changing Tapes}{258}{section.28.2}
\contentsline {section}{\numberline {28.3}Daily Tape Rotation}{258}{section.28.3}
\contentsline {subsection}{\numberline {28.3.1}Advantages}{258}{subsection.28.3.1}
\contentsline {subsection}{\numberline {28.3.2}Disadvantages}{259}{subsection.28.3.2}
\contentsline {subsection}{\numberline {28.3.3}Practical Details}{259}{subsection.28.3.3}
\contentsline {chapter}{\numberline {29}Autochanger Support}{263}{chapter.29}
\contentsline {section}{\numberline {29.1}Knowing What SCSI Devices You Have}{264}{section.29.1}
\contentsline {section}{\numberline {29.2}Example Scripts}{265}{section.29.2}
\contentsline {section}{\numberline {29.3}Slots}{265}{section.29.3}
\contentsline {section}{\numberline {29.4}Multiple Devices}{265}{section.29.4}
\contentsline {section}{\numberline {29.5}Device Configuration Records}{266}{section.29.5}
\contentsline {chapter}{\numberline {30}Autochanger Resource}{269}{chapter.30}
\contentsline {section}{\numberline {30.1}An Example Configuration File}{270}{section.30.1}
\contentsline {section}{\numberline {30.2}A Multi-drive Example Configuration File}{270}{section.30.2}
\contentsline {section}{\numberline {30.3}Specifying Slots When Labeling}{271}{section.30.3}
\contentsline {section}{\numberline {30.4}Changing Cartridges}{272}{section.30.4}
\contentsline {section}{\numberline {30.5}Dealing with Multiple Magazines}{272}{section.30.5}
\contentsline {section}{\numberline {30.6}Simulating Barcodes in your Autochanger}{273}{section.30.6}
\contentsline {section}{\numberline {30.7}The Full Form of the Update Slots Command}{273}{section.30.7}
\contentsline {section}{\numberline {30.8}FreeBSD Issues}{274}{section.30.8}
\contentsline {section}{\numberline {30.9}Testing Autochanger and Adapting mtx-changer script}{274}{section.30.9}
\contentsline {section}{\numberline {30.10}Using the Autochanger}{275}{section.30.10}
\contentsline {section}{\numberline {30.11}Barcode Support}{276}{section.30.11}
\contentsline {section}{\numberline {30.12}Use bconsole to display Autochanger content}{277}{section.30.12}
\contentsline {section}{\numberline {30.13}Bacula Autochanger Interface}{277}{section.30.13}
\contentsline {chapter}{\numberline {31}Supported Autochangers}{279}{chapter.31}
\contentsline {chapter}{\numberline {32}Data Spooling}{283}{chapter.32}
\contentsline {section}{\numberline {32.1}Data Spooling Directives}{283}{section.32.1}
\contentsline {section}{\numberline {32.2}!!! MAJOR WARNING !!!}{284}{section.32.2}
\contentsline {section}{\numberline {32.3}Other Points}{284}{section.32.3}
\contentsline {chapter}{\numberline {33}Using Bacula catalog to grab information}{285}{chapter.33}
\contentsline {section}{\numberline {33.1}Job statistics}{285}{section.33.1}
\contentsline {chapter}{\numberline {34}ANSI and IBM Tape Labels}{287}{chapter.34}
\contentsline {section}{\numberline {34.1}Director Pool Directive}{287}{section.34.1}
\contentsline {section}{\numberline {34.2}Storage Daemon Device Directives}{287}{section.34.2}
\contentsline {chapter}{\numberline {35}The Windows Version of Bacula}{289}{chapter.35}
\contentsline {section}{\numberline {35.1}Win32 Installation}{289}{section.35.1}
\contentsline {section}{\numberline {35.2}Post Win32 Installation}{293}{section.35.2}
\contentsline {section}{\numberline {35.3}Uninstalling Bacula on Win32}{293}{section.35.3}
\contentsline {section}{\numberline {35.4}Dealing with Win32 Problems}{293}{section.35.4}
\contentsline {section}{\numberline {35.5}Windows Compatibility Considerations}{295}{section.35.5}
\contentsline {section}{\numberline {35.6}Volume Shadow Copy Service}{296}{section.35.6}
\contentsline {section}{\numberline {35.7}VSS Problems}{297}{section.35.7}
\contentsline {section}{\numberline {35.8}Windows Firewalls}{298}{section.35.8}
\contentsline {section}{\numberline {35.9}Windows Port Usage}{298}{section.35.9}
\contentsline {section}{\numberline {35.10}Windows Disaster Recovery}{298}{section.35.10}
\contentsline {section}{\numberline {35.11}Windows Restore Problems}{298}{section.35.11}
\contentsline {section}{\numberline {35.12}Windows Ownership and Permissions Problems}{299}{section.35.12}
\contentsline {section}{\numberline {35.13}Manually resetting the Permissions}{299}{section.35.13}
\contentsline {section}{\numberline {35.14}Backing Up the WinNT/XP/2K System State}{301}{section.35.14}
\contentsline {section}{\numberline {35.15}Considerations for Filename Specifications}{302}{section.35.15}
\contentsline {section}{\numberline {35.16}Win32 Specific File daemon Command Line}{302}{section.35.16}
\contentsline {section}{\numberline {35.17}Shutting down Windows Systems}{303}{section.35.17}
\contentsline {chapter}{\numberline {36}Disaster Recovery Using Bacula}{305}{chapter.36}
\contentsline {section}{\numberline {36.1}General}{305}{section.36.1}
\contentsline {section}{\numberline {36.2}Important Considerations}{305}{section.36.2}
\contentsline {section}{\numberline {36.3}Steps to Take Before Disaster Strikes}{305}{section.36.3}
\contentsline {section}{\numberline {36.4}Bare Metal Recovery on Linux with a Rescue CD}{306}{section.36.4}
\contentsline {section}{\numberline {36.5}Requirements}{306}{section.36.5}
\contentsline {section}{\numberline {36.6}Restoring a Client System}{306}{section.36.6}
\contentsline {section}{\numberline {36.7}Boot with your Rescue CDROM}{307}{section.36.7}
\contentsline {section}{\numberline {36.8}Restoring a Server}{309}{section.36.8}
\contentsline {section}{\numberline {36.9}Linux Problems or Bugs}{310}{section.36.9}
\contentsline {section}{\numberline {36.10}Bare Metal Recovery using a LiveCD}{310}{section.36.10}
\contentsline {section}{\numberline {36.11}FreeBSD Bare Metal Recovery}{311}{section.36.11}
\contentsline {section}{\numberline {36.12}Solaris Bare Metal Recovery}{312}{section.36.12}
\contentsline {section}{\numberline {36.13}Preparing Solaris Before a Disaster}{312}{section.36.13}
\contentsline {section}{\numberline {36.14}Bugs and Other Considerations}{313}{section.36.14}
\contentsline {section}{\numberline {36.15}Disaster Recovery of Win32 Systems}{313}{section.36.15}
\contentsline {section}{\numberline {36.16}Ownership and Permissions on Win32 Systems}{313}{section.36.16}
\contentsline {section}{\numberline {36.17}Alternate Disaster Recovery Suggestion for Win32 Systems}{314}{section.36.17}
\contentsline {section}{\numberline {36.18}Restoring to a Running System}{314}{section.36.18}
\contentsline {section}{\numberline {36.19}Additional Resources}{315}{section.36.19}
\contentsline {chapter}{\numberline {37}Bacula TLS -- Communications Encryption}{317}{chapter.37}
\contentsline {section}{\numberline {37.1}TLS Configuration Directives}{317}{section.37.1}
\contentsline {section}{\numberline {37.2}Creating a Self-signed Certificate}{318}{section.37.2}
\contentsline {section}{\numberline {37.3}Getting a CA Signed Certificate}{319}{section.37.3}
\contentsline {section}{\numberline {37.4}Example TLS Configuration Files}{319}{section.37.4}
\contentsline {chapter}{\numberline {38}Data Encryption}{323}{chapter.38}
\contentsline {section}{\numberline {38.1}Building Bacula with Encryption Support}{324}{section.38.1}
\contentsline {section}{\numberline {38.2}Encryption Technical Details}{324}{section.38.2}
\contentsline {section}{\numberline {38.3}Decrypting with a Master Key}{324}{section.38.3}
\contentsline {section}{\numberline {38.4}Generating Private/Public Encryption Keys}{325}{section.38.4}
\contentsline {section}{\numberline {38.5}Example Data Encryption Configuration}{325}{section.38.5}
\contentsline {chapter}{\numberline {39}Using Bacula to Improve Computer Security}{327}{chapter.39}
\contentsline {section}{\numberline {39.1}The Details}{327}{section.39.1}
\contentsline {section}{\numberline {39.2}Running the Verify}{328}{section.39.2}
\contentsline {section}{\numberline {39.3}What To Do When Differences Are Found}{329}{section.39.3}
\contentsline {section}{\numberline {39.4}A Verify Configuration Example}{330}{section.39.4}
\contentsline {chapter}{\numberline {40}Installing and Configuring MySQL}{333}{chapter.40}
\contentsline {section}{\numberline {40.1}Installing and Configuring MySQL -- Phase I}{333}{section.40.1}
\contentsline {section}{\numberline {40.2}Installing and Configuring MySQL -- Phase II}{334}{section.40.2}
\contentsline {section}{\numberline {40.3}Re-initializing the Catalog Database}{335}{section.40.3}
\contentsline {section}{\numberline {40.4}Linking Bacula with MySQL}{335}{section.40.4}
\contentsline {section}{\numberline {40.5}Installing MySQL from RPMs}{336}{section.40.5}
\contentsline {section}{\numberline {40.6}Upgrading MySQL}{336}{section.40.6}
\contentsline {chapter}{\numberline {41}Installing and Configuring PostgreSQL}{337}{chapter.41}
\contentsline {section}{\numberline {41.1}Installing PostgreSQL}{337}{section.41.1}
\contentsline {section}{\numberline {41.2}Configuring PostgreSQL}{338}{section.41.2}
\contentsline {section}{\numberline {41.3}Re-initializing the Catalog Database}{340}{section.41.3}
\contentsline {section}{\numberline {41.4}Installing PostgreSQL from RPMs}{340}{section.41.4}
\contentsline {section}{\numberline {41.5}Converting from MySQL to PostgreSQL}{341}{section.41.5}
\contentsline {section}{\numberline {41.6}Upgrading PostgreSQL}{342}{section.41.6}
\contentsline {section}{\numberline {41.7}Tuning PostgreSQL}{342}{section.41.7}
\contentsline {section}{\numberline {41.8}Credits}{343}{section.41.8}
\contentsline {chapter}{\numberline {42}Installing and Configuring SQLite}{345}{chapter.42}
\contentsline {section}{\numberline {42.1}Installing and Configuring SQLite -- Phase I}{345}{section.42.1}
\contentsline {section}{\numberline {42.2}Installing and Configuring SQLite -- Phase II}{346}{section.42.2}
\contentsline {section}{\numberline {42.3}Linking Bacula with SQLite}{346}{section.42.3}
\contentsline {section}{\numberline {42.4}Testing SQLite}{346}{section.42.4}
\contentsline {section}{\numberline {42.5}Re-initializing the Catalog Database}{347}{section.42.5}
\contentsline {chapter}{\numberline {43}Catalog Maintenance}{349}{chapter.43}
\contentsline {section}{\numberline {43.1}Setting Retention Periods}{349}{section.43.1}
\contentsline {section}{\numberline {43.2}Compacting Your MySQL Database}{350}{section.43.2}
\contentsline {section}{\numberline {43.3}Repairing Your MySQL Database}{351}{section.43.3}
\contentsline {section}{\numberline {43.4}MySQL Table is Full}{351}{section.43.4}
\contentsline {section}{\numberline {43.5}MySQL Server Has Gone Away}{352}{section.43.5}
\contentsline {section}{\numberline {43.6}MySQL Temporary Tables}{352}{section.43.6}
\contentsline {section}{\numberline {43.7}Repairing Your PostgreSQL Database}{352}{section.43.7}
\contentsline {section}{\numberline {43.8}Database Performance Issues}{352}{section.43.8}
\contentsline {section}{\numberline {43.9}Performance Issues Indexes}{353}{section.43.9}
\contentsline {subsection}{\numberline {43.9.1}PostgreSQL Indexes}{353}{subsection.43.9.1}
\contentsline {subsection}{\numberline {43.9.2}MySQL Indexes}{353}{subsection.43.9.2}
\contentsline {subsection}{\numberline {43.9.3}SQLite Indexes}{354}{subsection.43.9.3}
\contentsline {section}{\numberline {43.10}Compacting Your PostgreSQL Database}{354}{section.43.10}
\contentsline {section}{\numberline {43.11}Compacting Your SQLite Database}{355}{section.43.11}
\contentsline {section}{\numberline {43.12}Migrating from SQLite to MySQL or PostgreSQL}{355}{section.43.12}
\contentsline {section}{\numberline {43.13}Backing Up Your Bacula Database}{355}{section.43.13}
\contentsline {section}{\numberline {43.14}Security considerations}{356}{section.43.14}
\contentsline {section}{\numberline {43.15}Backing Up Third Party Databases}{357}{section.43.15}
\contentsline {section}{\numberline {43.16}Database Size}{357}{section.43.16}
\contentsline {chapter}{\numberline {44}Bacula Security Issues}{359}{chapter.44}
\contentsline {section}{\numberline {44.1}Backward Compatibility}{360}{section.44.1}
\contentsline {section}{\numberline {44.2}Configuring and Testing TCP Wrappers}{360}{section.44.2}
\contentsline {section}{\numberline {44.3}Running as non-root}{362}{section.44.3}
\contentsline {chapter}{\numberline {45}The Bootstrap File}{363}{chapter.45}
\contentsline {section}{\numberline {45.1}Bootstrap File Format}{363}{section.45.1}
\contentsline {section}{\numberline {45.2}Automatic Generation of Bootstrap Files}{366}{section.45.2}
\contentsline {section}{\numberline {45.3}Bootstrap for bscan}{367}{section.45.3}
\contentsline {section}{\numberline {45.4}A Final Bootstrap Example}{367}{section.45.4}
\contentsline {chapter}{\numberline {46}Bacula Copyright, Trademark, and Licenses}{369}{chapter.46}
\contentsline {section}{\numberline {46.1}FDL}{369}{section.46.1}
\contentsline {section}{\numberline {46.2}GPL}{369}{section.46.2}
\contentsline {section}{\numberline {46.3}LGPL}{369}{section.46.3}
\contentsline {section}{\numberline {46.4}Public Domain}{369}{section.46.4}
\contentsline {section}{\numberline {46.5}Trademark}{370}{section.46.5}
\contentsline {section}{\numberline {46.6}Fiduciary License Agreement}{370}{section.46.6}
\contentsline {section}{\numberline {46.7}Disclaimer}{370}{section.46.7}
\contentsline {chapter}{\numberline {47}GNU Free Documentation License}{371}{chapter.47}
\contentsline {section}{\numberline {47.1}Table of Contents}{377}{section.47.1}
\contentsline {section}{\numberline {47.2}GNU GENERAL PUBLIC LICENSE}{377}{section.47.2}
\contentsline {section}{\numberline {47.3}Preamble}{377}{section.47.3}
\contentsline {section}{\numberline {47.4}TERMS AND CONDITIONS}{378}{section.47.4}
\contentsline {section}{\numberline {47.5}How to Apply These Terms to Your New Programs}{381}{section.47.5}
\contentsline {section}{\numberline {47.6}Table of Contents}{382}{section.47.6}
\contentsline {section}{\numberline {47.7}GNU LESSER GENERAL PUBLIC LICENSE}{382}{section.47.7}
\contentsline {section}{\numberline {47.8}Preamble}{382}{section.47.8}
\contentsline {section}{\numberline {47.9}TERMS AND CONDITIONS}{383}{section.47.9}
\contentsline {section}{\numberline {47.10}How to Apply These Terms to Your New Libraries}{388}{section.47.10}
\contentsline {chapter}{\numberline {48}Thanks}{389}{chapter.48}
\contentsline {section}{\numberline {48.1}Bacula Bugs}{391}{section.48.1}
