\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}Release Version 5.0.2}{9}{chapter.2}
\contentsline {chapter}{\numberline {3}New Features in 5.0.1}{11}{chapter.3}
\contentsline {section}{\numberline {3.1}Truncate Volume after Purge}{11}{section.3.1}
\contentsline {section}{\numberline {3.2}Allow Higher Duplicates}{12}{section.3.2}
\contentsline {section}{\numberline {3.3}Cancel Lower Level Duplicates}{12}{section.3.3}
\contentsline {chapter}{\numberline {4}New Features in 5.0.0}{13}{chapter.4}
\contentsline {section}{\numberline {4.1}Maximum Concurent Jobs for Devices}{13}{section.4.1}
\contentsline {section}{\numberline {4.2}Restore from Multiple Storage Daemons}{13}{section.4.2}
\contentsline {section}{\numberline {4.3}File Deduplication using Base Jobs}{13}{section.4.3}
\contentsline {section}{\numberline {4.4}AllowCompression = $<${}yes$|${}no$>${}}{14}{section.4.4}
\contentsline {section}{\numberline {4.5}Accurate Fileset Options}{15}{section.4.5}
\contentsline {section}{\numberline {4.6}Tab-completion for Bconsole}{15}{section.4.6}
\contentsline {section}{\numberline {4.7}Pool File and Job retention}{16}{section.4.7}
\contentsline {section}{\numberline {4.8}Read-only File Daemon using capabilities}{16}{section.4.8}
\contentsline {section}{\numberline {4.9}Bvfs API}{16}{section.4.9}
\contentsline {section}{\numberline {4.10}Testing your Tape Drive}{17}{section.4.10}
\contentsline {section}{\numberline {4.11}New {\bf Block Checksum} Device Directive}{17}{section.4.11}
\contentsline {section}{\numberline {4.12}New Bat Features}{18}{section.4.12}
\contentsline {subsection}{\numberline {4.12.1}Media List View}{18}{subsection.4.12.1}
\contentsline {subsection}{\numberline {4.12.2}Media Information View}{18}{subsection.4.12.2}
\contentsline {subsection}{\numberline {4.12.3}Job Information View}{18}{subsection.4.12.3}
\contentsline {subsection}{\numberline {4.12.4}Autochanger Content View}{18}{subsection.4.12.4}
\contentsline {section}{\numberline {4.13}Bat on Windows}{20}{section.4.13}
\contentsline {section}{\numberline {4.14}New Win32 Installer}{20}{section.4.14}
\contentsline {section}{\numberline {4.15}Win64 Installer}{21}{section.4.15}
\contentsline {section}{\numberline {4.16}Linux Bare Metal Recovery USB Key}{21}{section.4.16}
\contentsline {section}{\numberline {4.17}bconsole Timeout Option}{21}{section.4.17}
\contentsline {section}{\numberline {4.18}Important Changes}{21}{section.4.18}
\contentsline {subsection}{\numberline {4.18.1}Custom Catalog queries}{21}{subsection.4.18.1}
\contentsline {subsection}{\numberline {4.18.2}Deprecated parts}{22}{subsection.4.18.2}
\contentsline {section}{\numberline {4.19}Misc Changes}{22}{section.4.19}
\contentsline {chapter}{\numberline {5}Released Version 3.0.3 and 3.0.3a}{23}{chapter.5}
\contentsline {chapter}{\numberline {6}New Features in Released Version 3.0.2}{25}{chapter.6}
\contentsline {section}{\numberline {6.1}Full Restore from a Given JobId}{25}{section.6.1}
\contentsline {section}{\numberline {6.2}Source Address}{26}{section.6.2}
\contentsline {section}{\numberline {6.3}Show volume availability when doing restore}{26}{section.6.3}
\contentsline {section}{\numberline {6.4}Accurate estimate command}{26}{section.6.4}
\contentsline {chapter}{\numberline {7}New Features in 3.0.0}{29}{chapter.7}
\contentsline {section}{\numberline {7.1}Accurate Backup}{29}{section.7.1}
\contentsline {subsection}{\numberline {7.1.1}Accurate = $<${}yes$|${}no$>${}}{29}{subsection.7.1.1}
\contentsline {section}{\numberline {7.2}Copy Jobs}{29}{section.7.2}
\contentsline {section}{\numberline {7.3}ACL Updates}{32}{section.7.3}
\contentsline {section}{\numberline {7.4}Extended Attributes}{33}{section.7.4}
\contentsline {section}{\numberline {7.5}Shared objects}{34}{section.7.5}
\contentsline {section}{\numberline {7.6}Building Static versions of Bacula}{34}{section.7.6}
\contentsline {section}{\numberline {7.7}Virtual Backup (Vbackup)}{34}{section.7.7}
\contentsline {section}{\numberline {7.8}Catalog Format}{36}{section.7.8}
\contentsline {section}{\numberline {7.9}64 bit Windows Client}{36}{section.7.9}
\contentsline {section}{\numberline {7.10}Duplicate Job Control}{37}{section.7.10}
\contentsline {subsection}{\numberline {7.10.1}Allow Duplicate Jobs = $<${}yes$|${}no$>${}}{37}{subsection.7.10.1}
\contentsline {subsection}{\numberline {7.10.2}Allow Higher Duplicates = $<${}yes$|${}no$>${}}{37}{subsection.7.10.2}
\contentsline {subsection}{\numberline {7.10.3}Cancel Running Duplicates = $<${}yes$|${}no$>${}}{37}{subsection.7.10.3}
\contentsline {subsection}{\numberline {7.10.4}Cancel Queued Duplicates = $<${}yes$|${}no$>${}}{38}{subsection.7.10.4}
\contentsline {section}{\numberline {7.11}TLS Authentication}{38}{section.7.11}
\contentsline {subsection}{\numberline {7.11.1}TLS Authenticate = yes}{38}{subsection.7.11.1}
\contentsline {section}{\numberline {7.12}bextract non-portable Win32 data}{38}{section.7.12}
\contentsline {section}{\numberline {7.13}State File updated at Job Termination}{38}{section.7.13}
\contentsline {section}{\numberline {7.14}MaxFullInterval = $<${}time-interval$>${}}{38}{section.7.14}
\contentsline {section}{\numberline {7.15}MaxDiffInterval = $<${}time-interval$>${}}{39}{section.7.15}
\contentsline {section}{\numberline {7.16}Honor No Dump Flag = $<${}yes$|${}no$>${}}{39}{section.7.16}
\contentsline {section}{\numberline {7.17}Exclude Dir Containing = $<${}filename-string$>${}}{39}{section.7.17}
\contentsline {section}{\numberline {7.18}Bacula Plugins}{40}{section.7.18}
\contentsline {subsection}{\numberline {7.18.1}Plugin Directory}{40}{subsection.7.18.1}
\contentsline {subsection}{\numberline {7.18.2}Plugin Options}{40}{subsection.7.18.2}
\contentsline {subsection}{\numberline {7.18.3}Plugin Options ACL}{40}{subsection.7.18.3}
\contentsline {subsection}{\numberline {7.18.4}Plugin = $<${}plugin-command-string$>${}}{40}{subsection.7.18.4}
\contentsline {section}{\numberline {7.19}The bpipe Plugin}{41}{section.7.19}
\contentsline {section}{\numberline {7.20}Microsoft Exchange Server 2003/2007 Plugin}{42}{section.7.20}
\contentsline {subsection}{\numberline {7.20.1}Background}{42}{subsection.7.20.1}
\contentsline {subsection}{\numberline {7.20.2}Concepts}{42}{subsection.7.20.2}
\contentsline {subsection}{\numberline {7.20.3}Installing}{42}{subsection.7.20.3}
\contentsline {subsection}{\numberline {7.20.4}Backing Up}{42}{subsection.7.20.4}
\contentsline {subsection}{\numberline {7.20.5}Restoring}{43}{subsection.7.20.5}
\contentsline {subsection}{\numberline {7.20.6}Restoring to the Recovery Storage Group}{43}{subsection.7.20.6}
\contentsline {subsection}{\numberline {7.20.7}Restoring on Microsoft Server 2007}{44}{subsection.7.20.7}
\contentsline {subsection}{\numberline {7.20.8}Caveats}{44}{subsection.7.20.8}
\contentsline {section}{\numberline {7.21}libdbi Framework}{44}{section.7.21}
\contentsline {section}{\numberline {7.22}Console Command Additions and Enhancements}{46}{section.7.22}
\contentsline {subsection}{\numberline {7.22.1}Display Autochanger Content}{46}{subsection.7.22.1}
\contentsline {subsection}{\numberline {7.22.2}list joblog job=xxx or jobid=nnn}{46}{subsection.7.22.2}
\contentsline {subsection}{\numberline {7.22.3}Use separator for multiple commands}{46}{subsection.7.22.3}
\contentsline {subsection}{\numberline {7.22.4}Deleting Volumes}{46}{subsection.7.22.4}
\contentsline {section}{\numberline {7.23}Bare Metal Recovery}{46}{section.7.23}
\contentsline {section}{\numberline {7.24}Miscellaneous}{47}{section.7.24}
\contentsline {subsection}{\numberline {7.24.1}Allow Mixed Priority = $<${}yes$|${}no$>${}}{47}{subsection.7.24.1}
\contentsline {subsection}{\numberline {7.24.2}Bootstrap File Directive -- FileRegex}{47}{subsection.7.24.2}
\contentsline {subsection}{\numberline {7.24.3}Bootstrap File Optimization Changes}{48}{subsection.7.24.3}
\contentsline {subsection}{\numberline {7.24.4}Solaris ZFS/NFSv4 ACLs}{48}{subsection.7.24.4}
\contentsline {subsection}{\numberline {7.24.5}Virtual Tape Emulation}{48}{subsection.7.24.5}
\contentsline {subsection}{\numberline {7.24.6}Bat Enhancements}{48}{subsection.7.24.6}
\contentsline {subsection}{\numberline {7.24.7}RunScript Enhancements}{48}{subsection.7.24.7}
\contentsline {subsection}{\numberline {7.24.8}Status Enhancements}{49}{subsection.7.24.8}
\contentsline {subsection}{\numberline {7.24.9}Connect Timeout}{49}{subsection.7.24.9}
\contentsline {subsection}{\numberline {7.24.10}ftruncate for NFS Volumes}{49}{subsection.7.24.10}
\contentsline {subsection}{\numberline {7.24.11}Support for Ubuntu}{49}{subsection.7.24.11}
\contentsline {subsection}{\numberline {7.24.12}Recycle Pool = $<${}pool-name$>${}}{49}{subsection.7.24.12}
\contentsline {subsection}{\numberline {7.24.13}FD Version}{49}{subsection.7.24.13}
\contentsline {subsection}{\numberline {7.24.14}Max Run Sched Time = $<${}time-period-in-seconds$>${}}{50}{subsection.7.24.14}
\contentsline {subsection}{\numberline {7.24.15}Max Wait Time = $<${}time-period-in-seconds$>${}}{50}{subsection.7.24.15}
\contentsline {subsection}{\numberline {7.24.16}Incremental|Differential Max Wait Time = $<${}time-period-in-seconds$>${}}{50}{subsection.7.24.16}
\contentsline {subsection}{\numberline {7.24.17}Max Run Time directives}{50}{subsection.7.24.17}
\contentsline {subsection}{\numberline {7.24.18}Statistics Enhancements}{50}{subsection.7.24.18}
\contentsline {subsection}{\numberline {7.24.19}ScratchPool = $<${}pool-resource-name$>${}}{51}{subsection.7.24.19}
\contentsline {subsection}{\numberline {7.24.20}Enhanced Attribute Despooling}{51}{subsection.7.24.20}
\contentsline {subsection}{\numberline {7.24.21}SpoolSize = $<${}size-specification-in-bytes$>${}}{51}{subsection.7.24.21}
\contentsline {subsection}{\numberline {7.24.22}MaximumConsoleConnections = $<${}number$>${}}{51}{subsection.7.24.22}
\contentsline {subsection}{\numberline {7.24.23}VerId = $<${}string$>${}}{52}{subsection.7.24.23}
\contentsline {subsection}{\numberline {7.24.24}dbcheck enhancements}{52}{subsection.7.24.24}
\contentsline {subsection}{\numberline {7.24.25}{-}{-}docdir configure option}{52}{subsection.7.24.25}
\contentsline {subsection}{\numberline {7.24.26}{-}{-}htmldir configure option}{52}{subsection.7.24.26}
\contentsline {subsection}{\numberline {7.24.27}{-}{-}with-plugindir configure option}{52}{subsection.7.24.27}
\contentsline {chapter}{\numberline {8}The Current State of Bacula}{53}{chapter.8}
\contentsline {section}{\numberline {8.1}What is Implemented}{53}{section.8.1}
\contentsline {section}{\numberline {8.2}Advantages Over Other Backup Programs}{55}{section.8.2}
\contentsline {section}{\numberline {8.3}Current Implementation Restrictions}{55}{section.8.3}
\contentsline {section}{\numberline {8.4}Design Limitations or Restrictions}{56}{section.8.4}
\contentsline {section}{\numberline {8.5}Items to Note}{56}{section.8.5}
\contentsline {chapter}{\numberline {9}System Requirements}{57}{chapter.9}
\contentsline {chapter}{\numberline {10}Supported Operating Systems}{59}{chapter.10}
\contentsline {chapter}{\numberline {11}Supported Tape Drives}{61}{chapter.11}
\contentsline {section}{\numberline {11.1}Unsupported Tape Drives}{62}{section.11.1}
\contentsline {section}{\numberline {11.2}FreeBSD Users Be Aware!!!}{62}{section.11.2}
\contentsline {section}{\numberline {11.3}Supported Autochangers}{62}{section.11.3}
\contentsline {section}{\numberline {11.4}Tape Specifications}{62}{section.11.4}
\contentsline {chapter}{\numberline {12}Getting Started with Bacula}{65}{chapter.12}
\contentsline {section}{\numberline {12.1}Understanding Jobs and Schedules}{65}{section.12.1}
\contentsline {section}{\numberline {12.2}Understanding Pools, Volumes and Labels}{65}{section.12.2}
\contentsline {section}{\numberline {12.3}Setting Up Bacula Configuration Files}{66}{section.12.3}
\contentsline {subsection}{\numberline {12.3.1}Configuring the Console Program}{66}{subsection.12.3.1}
\contentsline {subsection}{\numberline {12.3.2}Configuring the Monitor Program}{67}{subsection.12.3.2}
\contentsline {subsection}{\numberline {12.3.3}Configuring the File daemon}{67}{subsection.12.3.3}
\contentsline {subsection}{\numberline {12.3.4}Configuring the Director}{68}{subsection.12.3.4}
\contentsline {subsection}{\numberline {12.3.5}Configuring the Storage daemon}{68}{subsection.12.3.5}
\contentsline {section}{\numberline {12.4}Testing your Configuration Files}{69}{section.12.4}
\contentsline {section}{\numberline {12.5}Testing Compatibility with Your Tape Drive}{69}{section.12.5}
\contentsline {section}{\numberline {12.6}Get Rid of the /lib/tls Directory}{69}{section.12.6}
\contentsline {section}{\numberline {12.7}Running Bacula}{69}{section.12.7}
\contentsline {section}{\numberline {12.8}Log Rotation}{70}{section.12.8}
\contentsline {section}{\numberline {12.9}Log Watch}{70}{section.12.9}
\contentsline {section}{\numberline {12.10}Disaster Recovery}{70}{section.12.10}
\contentsline {chapter}{\numberline {13}Installing Bacula}{71}{chapter.13}
\contentsline {section}{\numberline {13.1}Source Release Files}{71}{section.13.1}
\contentsline {section}{\numberline {13.2}Upgrading Bacula}{72}{section.13.2}
\contentsline {section}{\numberline {13.3}Releases Numbering}{73}{section.13.3}
\contentsline {section}{\numberline {13.4}Dependency Packages}{74}{section.13.4}
\contentsline {section}{\numberline {13.5}Supported Operating Systems}{75}{section.13.5}
\contentsline {section}{\numberline {13.6}Building Bacula from Source}{75}{section.13.6}
\contentsline {section}{\numberline {13.7}What Database to Use?}{78}{section.13.7}
\contentsline {section}{\numberline {13.8}Quick Start}{78}{section.13.8}
\contentsline {section}{\numberline {13.9}Configure Options}{79}{section.13.9}
\contentsline {section}{\numberline {13.10}Recommended Options for Most Systems}{84}{section.13.10}
\contentsline {section}{\numberline {13.11}Red Hat}{84}{section.13.11}
\contentsline {section}{\numberline {13.12}Solaris}{85}{section.13.12}
\contentsline {section}{\numberline {13.13}FreeBSD}{86}{section.13.13}
\contentsline {section}{\numberline {13.14}Win32}{86}{section.13.14}
\contentsline {section}{\numberline {13.15}One File Configure Script}{86}{section.13.15}
\contentsline {section}{\numberline {13.16}Installing Bacula}{87}{section.13.16}
\contentsline {section}{\numberline {13.17}Building a File Daemon or Client}{87}{section.13.17}
\contentsline {section}{\numberline {13.18}Auto Starting the Daemons}{87}{section.13.18}
\contentsline {section}{\numberline {13.19}Other Make Notes}{88}{section.13.19}
\contentsline {section}{\numberline {13.20}Installing Tray Monitor}{89}{section.13.20}
\contentsline {subsection}{\numberline {13.20.1}GNOME}{89}{subsection.13.20.1}
\contentsline {subsection}{\numberline {13.20.2}KDE}{90}{subsection.13.20.2}
\contentsline {subsection}{\numberline {13.20.3}Other window managers}{90}{subsection.13.20.3}
\contentsline {section}{\numberline {13.21}Modifying the Bacula Configuration Files}{90}{section.13.21}
\contentsline {chapter}{\numberline {14}Critical Items to Implement Before Production}{91}{chapter.14}
\contentsline {section}{\numberline {14.1}Critical Items}{91}{section.14.1}
\contentsline {section}{\numberline {14.2}Recommended Items}{92}{section.14.2}
\contentsline {chapter}{\numberline {15}A Brief Tutorial}{93}{chapter.15}
\contentsline {section}{\numberline {15.1}Before Running Bacula}{93}{section.15.1}
\contentsline {section}{\numberline {15.2}Starting the Database}{94}{section.15.2}
\contentsline {section}{\numberline {15.3}Starting the Daemons}{94}{section.15.3}
\contentsline {section}{\numberline {15.4}Using the Director to Query and Start Jobs}{94}{section.15.4}
\contentsline {section}{\numberline {15.5}Running a Job}{96}{section.15.5}
\contentsline {section}{\numberline {15.6}Restoring Your Files}{100}{section.15.6}
\contentsline {section}{\numberline {15.7}Quitting the Console Program}{102}{section.15.7}
\contentsline {section}{\numberline {15.8}Adding a Second Client}{102}{section.15.8}
\contentsline {section}{\numberline {15.9}When The Tape Fills}{103}{section.15.9}
\contentsline {section}{\numberline {15.10}Other Useful Console Commands}{105}{section.15.10}
\contentsline {section}{\numberline {15.11}Debug Daemon Output}{105}{section.15.11}
\contentsline {section}{\numberline {15.12}Patience When Starting Daemons or Mounting Blank Tapes}{106}{section.15.12}
\contentsline {section}{\numberline {15.13}Difficulties Connecting from the FD to the SD}{106}{section.15.13}
\contentsline {section}{\numberline {15.14}Daemon Command Line Options}{106}{section.15.14}
\contentsline {section}{\numberline {15.15}Creating a Pool}{107}{section.15.15}
\contentsline {section}{\numberline {15.16}Labeling Your Volumes}{107}{section.15.16}
\contentsline {section}{\numberline {15.17}Labeling Volumes with the Console Program}{108}{section.15.17}
\contentsline {chapter}{\numberline {16}Customizing the Configuration Files}{111}{chapter.16}
\contentsline {section}{\numberline {16.1}Character Sets}{112}{section.16.1}
\contentsline {section}{\numberline {16.2}Resource Directive Format}{113}{section.16.2}
\contentsline {subsection}{\numberline {16.2.1}Comments}{113}{subsection.16.2.1}
\contentsline {subsection}{\numberline {16.2.2}Upper and Lower Case and Spaces}{113}{subsection.16.2.2}
\contentsline {subsection}{\numberline {16.2.3}Including other Configuration Files}{113}{subsection.16.2.3}
\contentsline {subsection}{\numberline {16.2.4}Recognized Primitive Data Types}{114}{subsection.16.2.4}
\contentsline {section}{\numberline {16.3}Resource Types}{115}{section.16.3}
\contentsline {section}{\numberline {16.4}Names, Passwords and Authorization}{115}{section.16.4}
\contentsline {section}{\numberline {16.5}Detailed Information for each Daemon}{116}{section.16.5}
\contentsline {chapter}{\numberline {17}Configuring the Director}{117}{chapter.17}
\contentsline {section}{\numberline {17.1}Director Resource Types}{117}{section.17.1}
\contentsline {section}{\numberline {17.2}The Director Resource}{118}{section.17.2}
\contentsline {section}{\numberline {17.3}The Job Resource}{120}{section.17.3}
\contentsline {section}{\numberline {17.4}The JobDefs Resource}{135}{section.17.4}
\contentsline {section}{\numberline {17.5}The Schedule Resource}{135}{section.17.5}
\contentsline {section}{\numberline {17.6}Technical Notes on Schedules}{138}{section.17.6}
\contentsline {section}{\numberline {17.7}The FileSet Resource}{138}{section.17.7}
\contentsline {section}{\numberline {17.8}FileSet Examples}{149}{section.17.8}
\contentsline {section}{\numberline {17.9}Backing up Raw Partitions}{154}{section.17.9}
\contentsline {section}{\numberline {17.10}Excluding Files and Directories}{154}{section.17.10}
\contentsline {section}{\numberline {17.11}Windows FileSets}{154}{section.17.11}
\contentsline {section}{\numberline {17.12}Testing Your FileSet}{156}{section.17.12}
\contentsline {section}{\numberline {17.13}The Client Resource}{157}{section.17.13}
\contentsline {section}{\numberline {17.14}The Storage Resource}{158}{section.17.14}
\contentsline {section}{\numberline {17.15}The Pool Resource}{160}{section.17.15}
\contentsline {subsection}{\numberline {17.15.1}The Scratch Pool}{166}{subsection.17.15.1}
\contentsline {section}{\numberline {17.16}The Catalog Resource}{166}{section.17.16}
\contentsline {section}{\numberline {17.17}The Messages Resource}{167}{section.17.17}
\contentsline {section}{\numberline {17.18}The Console Resource}{168}{section.17.18}
\contentsline {section}{\numberline {17.19}The Counter Resource}{169}{section.17.19}
\contentsline {section}{\numberline {17.20}Example Director Configuration File}{170}{section.17.20}
\contentsline {chapter}{\numberline {18}Client/File daemon Configuration}{173}{chapter.18}
\contentsline {section}{\numberline {18.1}The Client Resource}{173}{section.18.1}
\contentsline {section}{\numberline {18.2}The Director Resource}{175}{section.18.2}
\contentsline {section}{\numberline {18.3}The Message Resource}{176}{section.18.3}
\contentsline {section}{\numberline {18.4}Example Client Configuration File}{176}{section.18.4}
\contentsline {chapter}{\numberline {19}Storage Daemon Configuration}{177}{chapter.19}
\contentsline {section}{\numberline {19.1}Storage Resource}{177}{section.19.1}
\contentsline {section}{\numberline {19.2}Director Resource}{179}{section.19.2}
\contentsline {section}{\numberline {19.3}Device Resource}{179}{section.19.3}
\contentsline {section}{\numberline {19.4}Edit Codes for Mount and Unmount Directives}{187}{section.19.4}
\contentsline {section}{\numberline {19.5}Devices that require a mount (DVD)}{187}{section.19.5}
\contentsline {chapter}{\numberline {20}Autochanger Resource}{189}{chapter.20}
\contentsline {section}{\numberline {20.1}Capabilities}{190}{section.20.1}
\contentsline {section}{\numberline {20.2}Messages Resource}{190}{section.20.2}
\contentsline {section}{\numberline {20.3}Sample Storage Daemon Configuration File}{190}{section.20.3}
\contentsline {chapter}{\numberline {21}Messages Resource}{193}{chapter.21}
\contentsline {chapter}{\numberline {22}Console Configuration}{197}{chapter.22}
\contentsline {section}{\numberline {22.1}General}{197}{section.22.1}
\contentsline {section}{\numberline {22.2}The Director Resource}{197}{section.22.2}
\contentsline {section}{\numberline {22.3}The ConsoleFont Resource}{198}{section.22.3}
\contentsline {section}{\numberline {22.4}The Console Resource}{198}{section.22.4}
\contentsline {section}{\numberline {22.5}Console Commands}{200}{section.22.5}
\contentsline {section}{\numberline {22.6}Sample Console Configuration File}{200}{section.22.6}
\contentsline {chapter}{\numberline {23}Monitor Configuration}{201}{chapter.23}
\contentsline {section}{\numberline {23.1}The Monitor Resource}{201}{section.23.1}
\contentsline {section}{\numberline {23.2}The Director Resource}{201}{section.23.2}
\contentsline {section}{\numberline {23.3}The Client Resource}{202}{section.23.3}
\contentsline {section}{\numberline {23.4}The Storage Resource}{202}{section.23.4}
\contentsline {section}{\numberline {23.5}Tray Monitor Security}{203}{section.23.5}
\contentsline {section}{\numberline {23.6}Sample Tray Monitor configuration}{203}{section.23.6}
\contentsline {subsection}{\numberline {23.6.1}Sample File daemon's Director record.}{204}{subsection.23.6.1}
\contentsline {subsection}{\numberline {23.6.2}Sample Storage daemon's Director record.}{204}{subsection.23.6.2}
\contentsline {subsection}{\numberline {23.6.3}Sample Director's Console record.}{204}{subsection.23.6.3}
\contentsline {chapter}{\numberline {24}The Restore Command}{205}{chapter.24}
\contentsline {section}{\numberline {24.1}General}{205}{section.24.1}
\contentsline {section}{\numberline {24.2}The Restore Command}{205}{section.24.2}
\contentsline {subsection}{\numberline {24.2.1}Restore a pruned job using a pattern}{210}{subsection.24.2.1}
\contentsline {section}{\numberline {24.3}Selecting Files by Filename}{210}{section.24.3}
\contentsline {section}{\numberline {24.4}Replace Options}{211}{section.24.4}
\contentsline {section}{\numberline {24.5}Command Line Arguments}{212}{section.24.5}
\contentsline {section}{\numberline {24.6}Using File Relocation}{213}{section.24.6}
\contentsline {subsection}{\numberline {24.6.1}Introduction}{213}{subsection.24.6.1}
\contentsline {subsection}{\numberline {24.6.2}RegexWhere Format}{213}{subsection.24.6.2}
\contentsline {section}{\numberline {24.7}Restoring Directory Attributes}{214}{section.24.7}
\contentsline {section}{\numberline {24.8}Restoring on Windows}{214}{section.24.8}
\contentsline {section}{\numberline {24.9}Restoring Files Can Be Slow}{215}{section.24.9}
\contentsline {section}{\numberline {24.10}Problems Restoring Files}{215}{section.24.10}
\contentsline {section}{\numberline {24.11}Restore Errors}{216}{section.24.11}
\contentsline {section}{\numberline {24.12}Example Restore Job Resource}{216}{section.24.12}
\contentsline {section}{\numberline {24.13}File Selection Commands}{216}{section.24.13}
\contentsline {section}{\numberline {24.14}Restoring When Things Go Wrong}{218}{section.24.14}
\contentsline {chapter}{\numberline {25}Automatic Volume Recycling}{223}{chapter.25}
\contentsline {section}{\numberline {25.1}Automatic Pruning}{224}{section.25.1}
\contentsline {section}{\numberline {25.2}Pruning Directives}{224}{section.25.2}
\contentsline {section}{\numberline {25.3}Recycling Algorithm}{226}{section.25.3}
\contentsline {section}{\numberline {25.4}Recycle Status}{227}{section.25.4}
\contentsline {section}{\numberline {25.5}Making Bacula Use a Single Tape}{228}{section.25.5}
\contentsline {section}{\numberline {25.6}Daily, Weekly, Monthly Tape Usage Example}{228}{section.25.6}
\contentsline {section}{\numberline {25.7} Automatic Pruning and Recycling Example}{230}{section.25.7}
\contentsline {section}{\numberline {25.8}Manually Recycling Volumes}{231}{section.25.8}
\contentsline {chapter}{\numberline {26}Basic Volume Management}{233}{chapter.26}
\contentsline {section}{\numberline {26.1}Key Concepts and Resource Records}{233}{section.26.1}
\contentsline {subsection}{\numberline {26.1.1}Pool Options to Limit the Volume Usage}{234}{subsection.26.1.1}
\contentsline {subsection}{\numberline {26.1.2}Automatic Volume Labeling}{235}{subsection.26.1.2}
\contentsline {subsection}{\numberline {26.1.3}Restricting the Number of Volumes and Recycling}{235}{subsection.26.1.3}
\contentsline {section}{\numberline {26.2}Concurrent Disk Jobs}{236}{section.26.2}
\contentsline {section}{\numberline {26.3}An Example}{237}{section.26.3}
\contentsline {section}{\numberline {26.4}Backing up to Multiple Disks}{239}{section.26.4}
\contentsline {section}{\numberline {26.5}Considerations for Multiple Clients}{240}{section.26.5}
\contentsline {chapter}{\numberline {27}Automated Disk Backup}{245}{chapter.27}
\contentsline {section}{\numberline {27.1}The Problem}{245}{section.27.1}
\contentsline {section}{\numberline {27.2}The Solution}{245}{section.27.2}
\contentsline {section}{\numberline {27.3}Overall Design}{246}{section.27.3}
\contentsline {subsection}{\numberline {27.3.1}Full Pool}{246}{subsection.27.3.1}
\contentsline {subsection}{\numberline {27.3.2}Differential Pool}{247}{subsection.27.3.2}
\contentsline {subsection}{\numberline {27.3.3}Incremental Pool}{247}{subsection.27.3.3}
\contentsline {section}{\numberline {27.4}The Actual Conf Files}{247}{section.27.4}
\contentsline {chapter}{\numberline {28}Migration and Copy}{251}{chapter.28}
\contentsline {section}{\numberline {28.1}Migration and Copy Job Resource Directives}{252}{section.28.1}
\contentsline {section}{\numberline {28.2}Migration Pool Resource Directives}{254}{section.28.2}
\contentsline {section}{\numberline {28.3}Important Migration Considerations}{254}{section.28.3}
\contentsline {section}{\numberline {28.4}Example Migration Jobs}{255}{section.28.4}
\contentsline {chapter}{\numberline {29}Backup Strategies}{257}{chapter.29}
\contentsline {section}{\numberline {29.1}Simple One Tape Backup}{257}{section.29.1}
\contentsline {subsection}{\numberline {29.1.1}Advantages}{257}{subsection.29.1.1}
\contentsline {subsection}{\numberline {29.1.2}Disadvantages}{257}{subsection.29.1.2}
\contentsline {subsection}{\numberline {29.1.3}Practical Details}{257}{subsection.29.1.3}
\contentsline {section}{\numberline {29.2}Manually Changing Tapes}{258}{section.29.2}
\contentsline {section}{\numberline {29.3}Daily Tape Rotation}{258}{section.29.3}
\contentsline {subsection}{\numberline {29.3.1}Advantages}{258}{subsection.29.3.1}
\contentsline {subsection}{\numberline {29.3.2}Disadvantages}{259}{subsection.29.3.2}
\contentsline {subsection}{\numberline {29.3.3}Practical Details}{259}{subsection.29.3.3}
\contentsline {chapter}{\numberline {30}Autochanger Support}{263}{chapter.30}
\contentsline {section}{\numberline {30.1}Knowing What SCSI Devices You Have}{264}{section.30.1}
\contentsline {section}{\numberline {30.2}Example Scripts}{265}{section.30.2}
\contentsline {section}{\numberline {30.3}Slots}{265}{section.30.3}
\contentsline {section}{\numberline {30.4}Multiple Devices}{265}{section.30.4}
\contentsline {section}{\numberline {30.5}Device Configuration Records}{266}{section.30.5}
\contentsline {chapter}{\numberline {31}Autochanger Resource}{269}{chapter.31}
\contentsline {section}{\numberline {31.1}An Example Configuration File}{270}{section.31.1}
\contentsline {section}{\numberline {31.2}A Multi-drive Example Configuration File}{270}{section.31.2}
\contentsline {section}{\numberline {31.3}Specifying Slots When Labeling}{271}{section.31.3}
\contentsline {section}{\numberline {31.4}Changing Cartridges}{272}{section.31.4}
\contentsline {section}{\numberline {31.5}Dealing with Multiple Magazines}{272}{section.31.5}
\contentsline {section}{\numberline {31.6}Simulating Barcodes in your Autochanger}{273}{section.31.6}
\contentsline {section}{\numberline {31.7}The Full Form of the Update Slots Command}{273}{section.31.7}
\contentsline {section}{\numberline {31.8}FreeBSD Issues}{274}{section.31.8}
\contentsline {section}{\numberline {31.9}Testing Autochanger and Adapting mtx-changer script}{274}{section.31.9}
\contentsline {section}{\numberline {31.10}Using the Autochanger}{275}{section.31.10}
\contentsline {section}{\numberline {31.11}Barcode Support}{276}{section.31.11}
\contentsline {section}{\numberline {31.12}Use bconsole to display Autochanger content}{277}{section.31.12}
\contentsline {section}{\numberline {31.13}Bacula Autochanger Interface}{277}{section.31.13}
\contentsline {chapter}{\numberline {32}Supported Autochangers}{279}{chapter.32}
\contentsline {chapter}{\numberline {33}Data Spooling}{283}{chapter.33}
\contentsline {section}{\numberline {33.1}Data Spooling Directives}{283}{section.33.1}
\contentsline {section}{\numberline {33.2}!!! MAJOR WARNING !!!}{284}{section.33.2}
\contentsline {section}{\numberline {33.3}Other Points}{284}{section.33.3}
\contentsline {chapter}{\numberline {34}Using Bacula catalog to grab information}{285}{chapter.34}
\contentsline {section}{\numberline {34.1}Job statistics}{285}{section.34.1}
\contentsline {chapter}{\numberline {35}ANSI and IBM Tape Labels}{287}{chapter.35}
\contentsline {section}{\numberline {35.1}Director Pool Directive}{287}{section.35.1}
\contentsline {section}{\numberline {35.2}Storage Daemon Device Directives}{287}{section.35.2}
\contentsline {chapter}{\numberline {36}The Windows Version of Bacula}{289}{chapter.36}
\contentsline {section}{\numberline {36.1}Win32 Installation}{289}{section.36.1}
\contentsline {section}{\numberline {36.2}Post Win32 Installation}{293}{section.36.2}
\contentsline {section}{\numberline {36.3}Uninstalling Bacula on Win32}{293}{section.36.3}
\contentsline {section}{\numberline {36.4}Dealing with Win32 Problems}{293}{section.36.4}
\contentsline {section}{\numberline {36.5}Windows Compatibility Considerations}{295}{section.36.5}
\contentsline {section}{\numberline {36.6}Volume Shadow Copy Service}{296}{section.36.6}
\contentsline {section}{\numberline {36.7}VSS Problems}{297}{section.36.7}
\contentsline {section}{\numberline {36.8}Windows Firewalls}{298}{section.36.8}
\contentsline {section}{\numberline {36.9}Windows Port Usage}{298}{section.36.9}
\contentsline {section}{\numberline {36.10}Windows Disaster Recovery}{298}{section.36.10}
\contentsline {section}{\numberline {36.11}Windows Restore Problems}{298}{section.36.11}
\contentsline {section}{\numberline {36.12}Windows Ownership and Permissions Problems}{299}{section.36.12}
\contentsline {section}{\numberline {36.13}Manually resetting the Permissions}{299}{section.36.13}
\contentsline {section}{\numberline {36.14}Backing Up the WinNT/XP/2K System State}{301}{section.36.14}
\contentsline {section}{\numberline {36.15}Considerations for Filename Specifications}{302}{section.36.15}
\contentsline {section}{\numberline {36.16}Win32 Specific File daemon Command Line}{302}{section.36.16}
\contentsline {section}{\numberline {36.17}Shutting down Windows Systems}{303}{section.36.17}
\contentsline {chapter}{\numberline {37}Disaster Recovery Using Bacula}{305}{chapter.37}
\contentsline {section}{\numberline {37.1}General}{305}{section.37.1}
\contentsline {section}{\numberline {37.2}Important Considerations}{305}{section.37.2}
\contentsline {section}{\numberline {37.3}Steps to Take Before Disaster Strikes}{305}{section.37.3}
\contentsline {section}{\numberline {37.4}Bare Metal Recovery on Linux with a Rescue CD}{306}{section.37.4}
\contentsline {section}{\numberline {37.5}Requirements}{306}{section.37.5}
\contentsline {section}{\numberline {37.6}Restoring a Client System}{306}{section.37.6}
\contentsline {section}{\numberline {37.7}Boot with your Rescue CDROM}{307}{section.37.7}
\contentsline {section}{\numberline {37.8}Restoring a Server}{309}{section.37.8}
\contentsline {section}{\numberline {37.9}Linux Problems or Bugs}{310}{section.37.9}
\contentsline {section}{\numberline {37.10}Bare Metal Recovery using a LiveCD}{310}{section.37.10}
\contentsline {section}{\numberline {37.11}FreeBSD Bare Metal Recovery}{311}{section.37.11}
\contentsline {section}{\numberline {37.12}Solaris Bare Metal Recovery}{312}{section.37.12}
\contentsline {section}{\numberline {37.13}Preparing Solaris Before a Disaster}{312}{section.37.13}
\contentsline {section}{\numberline {37.14}Bugs and Other Considerations}{313}{section.37.14}
\contentsline {section}{\numberline {37.15}Disaster Recovery of Win32 Systems}{313}{section.37.15}
\contentsline {section}{\numberline {37.16}Ownership and Permissions on Win32 Systems}{313}{section.37.16}
\contentsline {section}{\numberline {37.17}Alternate Disaster Recovery Suggestion for Win32 Systems}{314}{section.37.17}
\contentsline {section}{\numberline {37.18}Restoring to a Running System}{314}{section.37.18}
\contentsline {section}{\numberline {37.19}Additional Resources}{315}{section.37.19}
\contentsline {chapter}{\numberline {38}Bacula TLS -- Communications Encryption}{317}{chapter.38}
\contentsline {section}{\numberline {38.1}TLS Configuration Directives}{317}{section.38.1}
\contentsline {section}{\numberline {38.2}Creating a Self-signed Certificate}{318}{section.38.2}
\contentsline {section}{\numberline {38.3}Getting a CA Signed Certificate}{319}{section.38.3}
\contentsline {section}{\numberline {38.4}Example TLS Configuration Files}{319}{section.38.4}
\contentsline {chapter}{\numberline {39}Data Encryption}{323}{chapter.39}
\contentsline {section}{\numberline {39.1}Building Bacula with Encryption Support}{324}{section.39.1}
\contentsline {section}{\numberline {39.2}Encryption Technical Details}{324}{section.39.2}
\contentsline {section}{\numberline {39.3}Decrypting with a Master Key}{324}{section.39.3}
\contentsline {section}{\numberline {39.4}Generating Private/Public Encryption Keys}{325}{section.39.4}
\contentsline {section}{\numberline {39.5}Example Data Encryption Configuration}{325}{section.39.5}
\contentsline {chapter}{\numberline {40}Using Bacula to Improve Computer Security}{327}{chapter.40}
\contentsline {section}{\numberline {40.1}The Details}{327}{section.40.1}
\contentsline {section}{\numberline {40.2}Running the Verify}{328}{section.40.2}
\contentsline {section}{\numberline {40.3}What To Do When Differences Are Found}{329}{section.40.3}
\contentsline {section}{\numberline {40.4}A Verify Configuration Example}{330}{section.40.4}
\contentsline {chapter}{\numberline {41}Installing and Configuring MySQL}{333}{chapter.41}
\contentsline {section}{\numberline {41.1}Installing and Configuring MySQL -- Phase I}{333}{section.41.1}
\contentsline {section}{\numberline {41.2}Installing and Configuring MySQL -- Phase II}{334}{section.41.2}
\contentsline {section}{\numberline {41.3}Re-initializing the Catalog Database}{335}{section.41.3}
\contentsline {section}{\numberline {41.4}Linking Bacula with MySQL}{335}{section.41.4}
\contentsline {section}{\numberline {41.5}Installing MySQL from RPMs}{336}{section.41.5}
\contentsline {section}{\numberline {41.6}Upgrading MySQL}{336}{section.41.6}
\contentsline {chapter}{\numberline {42}Installing and Configuring PostgreSQL}{337}{chapter.42}
\contentsline {section}{\numberline {42.1}Installing PostgreSQL}{337}{section.42.1}
\contentsline {section}{\numberline {42.2}Configuring PostgreSQL}{338}{section.42.2}
\contentsline {section}{\numberline {42.3}Re-initializing the Catalog Database}{340}{section.42.3}
\contentsline {section}{\numberline {42.4}Installing PostgreSQL from RPMs}{340}{section.42.4}
\contentsline {section}{\numberline {42.5}Converting from MySQL to PostgreSQL}{341}{section.42.5}
\contentsline {section}{\numberline {42.6}Upgrading PostgreSQL}{342}{section.42.6}
\contentsline {section}{\numberline {42.7}Tuning PostgreSQL}{342}{section.42.7}
\contentsline {section}{\numberline {42.8}Credits}{343}{section.42.8}
\contentsline {chapter}{\numberline {43}Installing and Configuring SQLite}{345}{chapter.43}
\contentsline {section}{\numberline {43.1}Installing and Configuring SQLite -- Phase I}{345}{section.43.1}
\contentsline {section}{\numberline {43.2}Installing and Configuring SQLite -- Phase II}{346}{section.43.2}
\contentsline {section}{\numberline {43.3}Linking Bacula with SQLite}{346}{section.43.3}
\contentsline {section}{\numberline {43.4}Testing SQLite}{346}{section.43.4}
\contentsline {section}{\numberline {43.5}Re-initializing the Catalog Database}{347}{section.43.5}
\contentsline {chapter}{\numberline {44}Catalog Maintenance}{349}{chapter.44}
\contentsline {section}{\numberline {44.1}Setting Retention Periods}{349}{section.44.1}
\contentsline {section}{\numberline {44.2}Compacting Your MySQL Database}{350}{section.44.2}
\contentsline {section}{\numberline {44.3}Repairing Your MySQL Database}{351}{section.44.3}
\contentsline {section}{\numberline {44.4}MySQL Table is Full}{351}{section.44.4}
\contentsline {section}{\numberline {44.5}MySQL Server Has Gone Away}{352}{section.44.5}
\contentsline {section}{\numberline {44.6}MySQL Temporary Tables}{352}{section.44.6}
\contentsline {section}{\numberline {44.7}Repairing Your PostgreSQL Database}{352}{section.44.7}
\contentsline {section}{\numberline {44.8}Database Performance Issues}{352}{section.44.8}
\contentsline {section}{\numberline {44.9}Performance Issues Indexes}{353}{section.44.9}
\contentsline {subsection}{\numberline {44.9.1}PostgreSQL Indexes}{353}{subsection.44.9.1}
\contentsline {subsection}{\numberline {44.9.2}MySQL Indexes}{353}{subsection.44.9.2}
\contentsline {subsection}{\numberline {44.9.3}SQLite Indexes}{354}{subsection.44.9.3}
\contentsline {section}{\numberline {44.10}Compacting Your PostgreSQL Database}{354}{section.44.10}
\contentsline {section}{\numberline {44.11}Compacting Your SQLite Database}{355}{section.44.11}
\contentsline {section}{\numberline {44.12}Migrating from SQLite to MySQL or PostgreSQL}{355}{section.44.12}
\contentsline {section}{\numberline {44.13}Backing Up Your Bacula Database}{355}{section.44.13}
\contentsline {section}{\numberline {44.14}Security considerations}{356}{section.44.14}
\contentsline {section}{\numberline {44.15}Backing Up Third Party Databases}{357}{section.44.15}
\contentsline {section}{\numberline {44.16}Database Size}{357}{section.44.16}
\contentsline {chapter}{\numberline {45}Bacula Security Issues}{359}{chapter.45}
\contentsline {section}{\numberline {45.1}Backward Compatibility}{360}{section.45.1}
\contentsline {section}{\numberline {45.2}Configuring and Testing TCP Wrappers}{360}{section.45.2}
\contentsline {section}{\numberline {45.3}Running as non-root}{362}{section.45.3}
\contentsline {chapter}{\numberline {46}The Bootstrap File}{363}{chapter.46}
\contentsline {section}{\numberline {46.1}Bootstrap File Format}{363}{section.46.1}
\contentsline {section}{\numberline {46.2}Automatic Generation of Bootstrap Files}{366}{section.46.2}
\contentsline {section}{\numberline {46.3}Bootstrap for bscan}{367}{section.46.3}
\contentsline {section}{\numberline {46.4}A Final Bootstrap Example}{367}{section.46.4}
\contentsline {chapter}{\numberline {47}Bacula Copyright, Trademark, and Licenses}{369}{chapter.47}
\contentsline {section}{\numberline {47.1}FDL}{369}{section.47.1}
\contentsline {section}{\numberline {47.2}GPL}{369}{section.47.2}
\contentsline {section}{\numberline {47.3}LGPL}{369}{section.47.3}
\contentsline {section}{\numberline {47.4}Public Domain}{369}{section.47.4}
\contentsline {section}{\numberline {47.5}Trademark}{370}{section.47.5}
\contentsline {section}{\numberline {47.6}Fiduciary License Agreement}{370}{section.47.6}
\contentsline {section}{\numberline {47.7}Disclaimer}{370}{section.47.7}
\contentsline {chapter}{\numberline {48}GNU Free Documentation License}{371}{chapter.48}
\contentsline {section}{\numberline {48.1}Table of Contents}{377}{section.48.1}
\contentsline {section}{\numberline {48.2}GNU GENERAL PUBLIC LICENSE}{377}{section.48.2}
\contentsline {section}{\numberline {48.3}Preamble}{377}{section.48.3}
\contentsline {section}{\numberline {48.4}TERMS AND CONDITIONS}{378}{section.48.4}
\contentsline {section}{\numberline {48.5}How to Apply These Terms to Your New Programs}{381}{section.48.5}
\contentsline {section}{\numberline {48.6}Table of Contents}{382}{section.48.6}
\contentsline {section}{\numberline {48.7}GNU LESSER GENERAL PUBLIC LICENSE}{382}{section.48.7}
\contentsline {section}{\numberline {48.8}Preamble}{382}{section.48.8}
\contentsline {section}{\numberline {48.9}TERMS AND CONDITIONS}{383}{section.48.9}
\contentsline {section}{\numberline {48.10}How to Apply These Terms to Your New Libraries}{388}{section.48.10}
\contentsline {chapter}{\numberline {49}Thanks}{389}{chapter.49}
\contentsline {section}{\numberline {49.1}Bacula Bugs}{391}{section.49.1}
