\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}{8}{section.1.8}
\contentsline {chapter}{\numberline {2}New Features in 3.0.2}{9}{chapter.2}
\contentsline {section}{\numberline {2.1}Full restore from a given JobId}{9}{section.2.1}
\contentsline {section}{\numberline {2.2}Source Address}{10}{section.2.2}
\contentsline {section}{\numberline {2.3}Show volume availability when doing restore}{10}{section.2.3}
\contentsline {section}{\numberline {2.4}Accurate estimate command}{10}{section.2.4}
\contentsline {chapter}{\numberline {3}New Features in 3.0.0}{13}{chapter.3}
\contentsline {section}{\numberline {3.1}Accurate Backup}{13}{section.3.1}
\contentsline {subsection}{\numberline {3.1.1}Accurate = $<${}yes|no$>${}}{13}{subsection.3.1.1}
\contentsline {section}{\numberline {3.2}Copy Jobs}{13}{section.3.2}
\contentsline {section}{\numberline {3.3}ACL Updates}{16}{section.3.3}
\contentsline {section}{\numberline {3.4}Extended Attributes}{17}{section.3.4}
\contentsline {section}{\numberline {3.5}Shared objects}{18}{section.3.5}
\contentsline {section}{\numberline {3.6}Building Static versions of Bacula}{18}{section.3.6}
\contentsline {section}{\numberline {3.7}Virtual Backup (Vbackup)}{18}{section.3.7}
\contentsline {section}{\numberline {3.8}Catalog Format}{20}{section.3.8}
\contentsline {section}{\numberline {3.9}64 bit Windows Client}{20}{section.3.9}
\contentsline {section}{\numberline {3.10}Duplicate Job Control}{21}{section.3.10}
\contentsline {subsection}{\numberline {3.10.1}Allow Duplicate Jobs = $<${}yes|no$>${}}{21}{subsection.3.10.1}
\contentsline {subsection}{\numberline {3.10.2}Allow Higher Duplicates = $<${}yes|no$>${}}{21}{subsection.3.10.2}
\contentsline {subsection}{\numberline {3.10.3}Cancel Queued Duplicates = $<${}yes|no$>${}}{22}{subsection.3.10.3}
\contentsline {subsection}{\numberline {3.10.4}Cancel Running Duplicates = $<${}yes|no$>${}}{22}{subsection.3.10.4}
\contentsline {section}{\numberline {3.11}TLS Authentication}{22}{section.3.11}
\contentsline {subsection}{\numberline {3.11.1}TLS Authenticate = yes}{22}{subsection.3.11.1}
\contentsline {section}{\numberline {3.12}bextract non-portable Win32 data}{22}{section.3.12}
\contentsline {section}{\numberline {3.13}State File updated at Job Termination}{22}{section.3.13}
\contentsline {section}{\numberline {3.14}MaxFullInterval = $<${}time-interval$>${}}{23}{section.3.14}
\contentsline {section}{\numberline {3.15}MaxDiffInterval = $<${}time-interval$>${}}{23}{section.3.15}
\contentsline {section}{\numberline {3.16}Honor No Dump Flag = $<${}yes|no$>${}}{23}{section.3.16}
\contentsline {section}{\numberline {3.17}Exclude Dir Containing = $<${}filename-string$>${}}{23}{section.3.17}
\contentsline {section}{\numberline {3.18}Bacula Plugins}{24}{section.3.18}
\contentsline {subsection}{\numberline {3.18.1}Plugin Directory}{24}{subsection.3.18.1}
\contentsline {subsection}{\numberline {3.18.2}Plugin Options}{24}{subsection.3.18.2}
\contentsline {subsection}{\numberline {3.18.3}Plugin Options ACL}{24}{subsection.3.18.3}
\contentsline {subsection}{\numberline {3.18.4}Plugin = $<${}plugin-command-string$>${}}{24}{subsection.3.18.4}
\contentsline {section}{\numberline {3.19}The bpipe Plugin}{25}{section.3.19}
\contentsline {section}{\numberline {3.20}Microsoft Exchange Server 2003/2007 Plugin}{26}{section.3.20}
\contentsline {subsection}{\numberline {3.20.1}Background}{26}{subsection.3.20.1}
\contentsline {subsection}{\numberline {3.20.2}Concepts}{26}{subsection.3.20.2}
\contentsline {subsection}{\numberline {3.20.3}Installing}{26}{subsection.3.20.3}
\contentsline {subsection}{\numberline {3.20.4}Backup up}{26}{subsection.3.20.4}
\contentsline {subsection}{\numberline {3.20.5}Restoring}{27}{subsection.3.20.5}
\contentsline {subsection}{\numberline {3.20.6}Restoring to the Recovery Storage Group}{28}{subsection.3.20.6}
\contentsline {subsection}{\numberline {3.20.7}Restoring on Microsoft Server 2007}{28}{subsection.3.20.7}
\contentsline {subsection}{\numberline {3.20.8}Caveats}{28}{subsection.3.20.8}
\contentsline {section}{\numberline {3.21}libdbi Framework}{28}{section.3.21}
\contentsline {section}{\numberline {3.22}Console Command Additions and Enhancements}{30}{section.3.22}
\contentsline {subsection}{\numberline {3.22.1}Display Autochanger Content}{30}{subsection.3.22.1}
\contentsline {subsection}{\numberline {3.22.2}list joblog job=xxx or jobid=nnn}{30}{subsection.3.22.2}
\contentsline {subsection}{\numberline {3.22.3}Use separator for multiple commands}{30}{subsection.3.22.3}
\contentsline {subsection}{\numberline {3.22.4}Deleting Volumes}{30}{subsection.3.22.4}
\contentsline {section}{\numberline {3.23}Bare Metal Recovery}{31}{section.3.23}
\contentsline {section}{\numberline {3.24}Miscellaneous}{31}{section.3.24}
\contentsline {subsection}{\numberline {3.24.1}Allow Mixed Priority = $<${}yes|no$>${}}{31}{subsection.3.24.1}
\contentsline {subsection}{\numberline {3.24.2}Bootstrap File Directive -- FileRegex}{32}{subsection.3.24.2}
\contentsline {subsection}{\numberline {3.24.3}Bootstrap File Optimization Changes}{32}{subsection.3.24.3}
\contentsline {subsection}{\numberline {3.24.4}Solaris ZFS/NFSv4 ACLs}{32}{subsection.3.24.4}
\contentsline {subsection}{\numberline {3.24.5}Virtual Tape Emulation}{32}{subsection.3.24.5}
\contentsline {subsection}{\numberline {3.24.6}Bat Enhancements}{32}{subsection.3.24.6}
\contentsline {subsection}{\numberline {3.24.7}RunScript Enhancements}{33}{subsection.3.24.7}
\contentsline {subsection}{\numberline {3.24.8}Status Enhancements}{33}{subsection.3.24.8}
\contentsline {subsection}{\numberline {3.24.9}Connect Timeout}{33}{subsection.3.24.9}
\contentsline {subsection}{\numberline {3.24.10}ftruncate for NFS Volumes}{33}{subsection.3.24.10}
\contentsline {subsection}{\numberline {3.24.11}Support for Ubuntu}{33}{subsection.3.24.11}
\contentsline {subsection}{\numberline {3.24.12}Recycle Pool = $<${}pool-name$>${}}{33}{subsection.3.24.12}
\contentsline {subsection}{\numberline {3.24.13}FD Version}{34}{subsection.3.24.13}
\contentsline {subsection}{\numberline {3.24.14}Max Run Sched Time = $<${}time-period-in-seconds$>${}}{34}{subsection.3.24.14}
\contentsline {subsection}{\numberline {3.24.15}Max Wait Time = $<${}time-period-in-seconds$>${}}{34}{subsection.3.24.15}
\contentsline {subsection}{\numberline {3.24.16}Incremental|Differential Max Wait Time = $<${}time-period-in-seconds$>${}}{34}{subsection.3.24.16}
\contentsline {subsection}{\numberline {3.24.17}Max Run Time directives}{34}{subsection.3.24.17}
\contentsline {subsection}{\numberline {3.24.18}Statistics Enhancements}{35}{subsection.3.24.18}
\contentsline {subsection}{\numberline {3.24.19}ScratchPool = $<${}pool-resource-name$>${}}{36}{subsection.3.24.19}
\contentsline {subsection}{\numberline {3.24.20}Enhanced Attribute Despooling}{36}{subsection.3.24.20}
\contentsline {subsection}{\numberline {3.24.21}SpoolSize = $<${}size-specification-in-bytes$>${}}{36}{subsection.3.24.21}
\contentsline {subsection}{\numberline {3.24.22}MaxConsoleConnections = $<${}number$>${}}{36}{subsection.3.24.22}
\contentsline {subsection}{\numberline {3.24.23}VerId = $<${}string$>${}}{37}{subsection.3.24.23}
\contentsline {subsection}{\numberline {3.24.24}dbcheck enhancements}{37}{subsection.3.24.24}
\contentsline {subsection}{\numberline {3.24.25}{-}{-}docdir configure option}{37}{subsection.3.24.25}
\contentsline {subsection}{\numberline {3.24.26}{-}{-}htmldir configure option}{37}{subsection.3.24.26}
\contentsline {subsection}{\numberline {3.24.27}{-}{-}with-plugindir configure option}{37}{subsection.3.24.27}
\contentsline {chapter}{\numberline {4}Bacula FD Plugin API}{39}{chapter.4}
\contentsline {section}{\numberline {4.1}Normal vs Command Plugins}{39}{section.4.1}
\contentsline {section}{\numberline {4.2}Loading Plugins}{40}{section.4.2}
\contentsline {section}{\numberline {4.3}loadPlugin}{40}{section.4.3}
\contentsline {section}{\numberline {4.4}Plugin Entry Points}{43}{section.4.4}
\contentsline {subsection}{\numberline {4.4.1}newPlugin(bpContext *ctx)}{43}{subsection.4.4.1}
\contentsline {subsection}{\numberline {4.4.2}freePlugin(bpContext *ctx)}{43}{subsection.4.4.2}
\contentsline {subsection}{\numberline {4.4.3}getPluginValue(bpContext *ctx, pVariable var, void *value)}{43}{subsection.4.4.3}
\contentsline {subsection}{\numberline {4.4.4}setPluginValue(bpContext *ctx, pVariable var, void *value)}{43}{subsection.4.4.4}
\contentsline {subsection}{\numberline {4.4.5}handlePluginEvent(bpContext *ctx, bEvent *event, void *value)}{43}{subsection.4.4.5}
\contentsline {subsection}{\numberline {4.4.6}startBackupFile(bpContext *ctx, struct save\_pkt *sp)}{45}{subsection.4.4.6}
\contentsline {subsection}{\numberline {4.4.7}endBackupFile(bpContext *ctx)}{46}{subsection.4.4.7}
\contentsline {subsection}{\numberline {4.4.8}startRestoreFile(bpContext *ctx, const char *cmd)}{46}{subsection.4.4.8}
\contentsline {subsection}{\numberline {4.4.9}createFile(bpContext *ctx, struct restore\_pkt *rp)}{46}{subsection.4.4.9}
\contentsline {subsection}{\numberline {4.4.10}setFileAttributes(bpContext *ctx, struct restore\_pkt *rp)}{48}{subsection.4.4.10}
\contentsline {subsection}{\numberline {4.4.11}endRestoreFile(bpContext *ctx)}{48}{subsection.4.4.11}
\contentsline {subsection}{\numberline {4.4.12}pluginIO(bpContext *ctx, struct io\_pkt *io)}{48}{subsection.4.4.12}
\contentsline {subsection}{\numberline {4.4.13}bool checkFile(bpContext *ctx, char *fname)}{49}{subsection.4.4.13}
\contentsline {section}{\numberline {4.5}Bacula Plugin Entrypoints}{49}{section.4.5}
\contentsline {subsection}{\numberline {4.5.1}bRC registerBaculaEvents(bpContext *ctx, ...)}{49}{subsection.4.5.1}
\contentsline {subsection}{\numberline {4.5.2}bRC getBaculaValue(bpContext *ctx, bVariable var, void *value)}{50}{subsection.4.5.2}
\contentsline {subsection}{\numberline {4.5.3}bRC setBaculaValue(bpContext *ctx, bVariable var, void *value)}{50}{subsection.4.5.3}
\contentsline {subsection}{\numberline {4.5.4}bRC JobMessage(bpContext *ctx, const char *file, int line, int type, utime\_t mtime, const char *fmt, ...)}{50}{subsection.4.5.4}
\contentsline {subsection}{\numberline {4.5.5}bRC DebugMessage(bpContext *ctx, const char *file, int line, int level, const char *fmt, ...)}{50}{subsection.4.5.5}
\contentsline {subsection}{\numberline {4.5.6}void baculaMalloc(bpContext *ctx, const char *file, int line, size\_t size)}{50}{subsection.4.5.6}
\contentsline {subsection}{\numberline {4.5.7}void baculaFree(bpContext *ctx, const char *file, int line, void *mem)}{50}{subsection.4.5.7}
\contentsline {section}{\numberline {4.6}Building Bacula Plugins}{50}{section.4.6}
\contentsline {chapter}{\numberline {5}The Current State of Bacula}{53}{chapter.5}
\contentsline {section}{\numberline {5.1}What is Implemented}{53}{section.5.1}
\contentsline {section}{\numberline {5.2}Advantages Over Other Backup Programs}{55}{section.5.2}
\contentsline {section}{\numberline {5.3}Current Implementation Restrictions}{55}{section.5.3}
\contentsline {section}{\numberline {5.4}Design Limitations or Restrictions}{56}{section.5.4}
\contentsline {chapter}{\numberline {6}System Requirements}{57}{chapter.6}
\contentsline {chapter}{\numberline {7}Supported Operating Systems}{59}{chapter.7}
\contentsline {chapter}{\numberline {8}Supported Tape Drives}{61}{chapter.8}
\contentsline {section}{\numberline {8.1}Unsupported Tape Drives}{62}{section.8.1}
\contentsline {section}{\numberline {8.2}FreeBSD Users Be Aware!!!}{62}{section.8.2}
\contentsline {section}{\numberline {8.3}Supported Autochangers}{62}{section.8.3}
\contentsline {section}{\numberline {8.4}Tape Specifications}{62}{section.8.4}
\contentsline {chapter}{\numberline {9}A Brief Tutorial}{65}{chapter.9}
\contentsline {section}{\numberline {9.1}Before Running Bacula}{65}{section.9.1}
\contentsline {section}{\numberline {9.2}Starting the Database}{66}{section.9.2}
\contentsline {section}{\numberline {9.3}Starting the Daemons}{66}{section.9.3}
\contentsline {section}{\numberline {9.4}Using the Director to Query and Start Jobs}{66}{section.9.4}
\contentsline {section}{\numberline {9.5}Running a Job}{68}{section.9.5}
\contentsline {section}{\numberline {9.6}Restoring Your Files}{72}{section.9.6}
\contentsline {section}{\numberline {9.7}Quitting the Console Program}{74}{section.9.7}
\contentsline {section}{\numberline {9.8}Adding a Second Client}{74}{section.9.8}
\contentsline {section}{\numberline {9.9}When The Tape Fills}{75}{section.9.9}
\contentsline {section}{\numberline {9.10}Other Useful Console Commands}{77}{section.9.10}
\contentsline {section}{\numberline {9.11}Debug Daemon Output}{77}{section.9.11}
\contentsline {section}{\numberline {9.12}Patience When Starting Daemons or Mounting Blank Tapes}{78}{section.9.12}
\contentsline {section}{\numberline {9.13}Difficulties Connecting from the FD to the SD}{78}{section.9.13}
\contentsline {section}{\numberline {9.14}Daemon Command Line Options}{78}{section.9.14}
\contentsline {section}{\numberline {9.15}Creating a Pool}{79}{section.9.15}
\contentsline {section}{\numberline {9.16}Labeling Your Volumes}{79}{section.9.16}
\contentsline {section}{\numberline {9.17}Labeling Volumes with the Console Program}{80}{section.9.17}
\contentsline {chapter}{\numberline {10}The Restore Command}{83}{chapter.10}
\contentsline {section}{\numberline {10.1}General}{83}{section.10.1}
\contentsline {section}{\numberline {10.2}The Restore Command}{83}{section.10.2}
\contentsline {subsection}{\numberline {10.2.1}Restore a pruned job using a pattern}{88}{subsection.10.2.1}
\contentsline {section}{\numberline {10.3}Selecting Files by Filename}{88}{section.10.3}
\contentsline {section}{\numberline {10.4}Replace Options}{89}{section.10.4}
\contentsline {section}{\numberline {10.5}Command Line Arguments}{90}{section.10.5}
\contentsline {section}{\numberline {10.6}Using File Relocation}{91}{section.10.6}
\contentsline {subsection}{\numberline {10.6.1}Introduction}{91}{subsection.10.6.1}
\contentsline {subsection}{\numberline {10.6.2}RegexWhere Format}{91}{subsection.10.6.2}
\contentsline {section}{\numberline {10.7}Restoring Directory Attributes}{92}{section.10.7}
\contentsline {section}{\numberline {10.8}Restoring on Windows}{92}{section.10.8}
\contentsline {section}{\numberline {10.9}Restoring Files Can Be Slow}{93}{section.10.9}
\contentsline {section}{\numberline {10.10}Problems Restoring Files}{93}{section.10.10}
\contentsline {section}{\numberline {10.11}Restore Errors}{94}{section.10.11}
\contentsline {section}{\numberline {10.12}Example Restore Job Resource}{94}{section.10.12}
\contentsline {section}{\numberline {10.13}File Selection Commands}{94}{section.10.13}
\contentsline {section}{\numberline {10.14}Restoring When Things Go Wrong}{96}{section.10.14}
\contentsline {chapter}{\numberline {11}Automatic Volume Recycling}{101}{chapter.11}
\contentsline {section}{\numberline {11.1}Automatic Pruning}{102}{section.11.1}
\contentsline {section}{\numberline {11.2}Pruning Directives}{102}{section.11.2}
\contentsline {section}{\numberline {11.3}Recycling Algorithm}{104}{section.11.3}
\contentsline {section}{\numberline {11.4}Recycle Status}{105}{section.11.4}
\contentsline {section}{\numberline {11.5}Making Bacula Use a Single Tape}{106}{section.11.5}
\contentsline {section}{\numberline {11.6}Daily, Weekly, Monthly Tape Usage Example}{106}{section.11.6}
\contentsline {section}{\numberline {11.7} Automatic Pruning and Recycling Example}{108}{section.11.7}
\contentsline {section}{\numberline {11.8}Manually Recycling Volumes}{109}{section.11.8}
\contentsline {chapter}{\numberline {12}Basic Volume Management}{111}{chapter.12}
\contentsline {section}{\numberline {12.1}Key Concepts and Resource Records}{111}{section.12.1}
\contentsline {subsection}{\numberline {12.1.1}Pool Options to Limit the Volume Usage}{112}{subsection.12.1.1}
\contentsline {subsection}{\numberline {12.1.2}Automatic Volume Labeling}{113}{subsection.12.1.2}
\contentsline {subsection}{\numberline {12.1.3}Restricting the Number of Volumes and Recycling}{113}{subsection.12.1.3}
\contentsline {section}{\numberline {12.2}Concurrent Disk Jobs}{114}{section.12.2}
\contentsline {section}{\numberline {12.3}An Example}{115}{section.12.3}
\contentsline {section}{\numberline {12.4}Backing up to Multiple Disks}{117}{section.12.4}
\contentsline {section}{\numberline {12.5}Considerations for Multiple Clients}{118}{section.12.5}
\contentsline {chapter}{\numberline {13}Automated Disk Backup}{123}{chapter.13}
\contentsline {section}{\numberline {13.1}The Problem}{123}{section.13.1}
\contentsline {section}{\numberline {13.2}The Solution}{123}{section.13.2}
\contentsline {section}{\numberline {13.3}Overall Design}{124}{section.13.3}
\contentsline {subsection}{\numberline {13.3.1}Full Pool}{124}{subsection.13.3.1}
\contentsline {subsection}{\numberline {13.3.2}Differential Pool}{125}{subsection.13.3.2}
\contentsline {subsection}{\numberline {13.3.3}Incremental Pool}{125}{subsection.13.3.3}
\contentsline {section}{\numberline {13.4}The Actual Conf Files}{125}{section.13.4}
\contentsline {chapter}{\numberline {14}Migration and Copy}{129}{chapter.14}
\contentsline {section}{\numberline {14.1}Migration and Copy Job Resource Directives}{130}{section.14.1}
\contentsline {section}{\numberline {14.2}Migration Pool Resource Directives}{131}{section.14.2}
\contentsline {section}{\numberline {14.3}Important Migration Considerations}{132}{section.14.3}
\contentsline {section}{\numberline {14.4}Example Migration Jobs}{133}{section.14.4}
\contentsline {chapter}{\numberline {15}Backup Strategies}{135}{chapter.15}
\contentsline {section}{\numberline {15.1}Simple One Tape Backup}{135}{section.15.1}
\contentsline {subsection}{\numberline {15.1.1}Advantages}{135}{subsection.15.1.1}
\contentsline {subsection}{\numberline {15.1.2}Disadvantages}{135}{subsection.15.1.2}
\contentsline {subsection}{\numberline {15.1.3}Practical Details}{135}{subsection.15.1.3}
\contentsline {section}{\numberline {15.2}Manually Changing Tapes}{136}{section.15.2}
\contentsline {section}{\numberline {15.3}Daily Tape Rotation}{136}{section.15.3}
\contentsline {subsection}{\numberline {15.3.1}Advantages}{136}{subsection.15.3.1}
\contentsline {subsection}{\numberline {15.3.2}Disadvantages}{137}{subsection.15.3.2}
\contentsline {subsection}{\numberline {15.3.3}Practical Details}{137}{subsection.15.3.3}
\contentsline {chapter}{\numberline {16}Autochanger Support}{141}{chapter.16}
\contentsline {section}{\numberline {16.1}Knowing What SCSI Devices You Have}{142}{section.16.1}
\contentsline {section}{\numberline {16.2}Example Scripts}{143}{section.16.2}
\contentsline {section}{\numberline {16.3}Slots}{143}{section.16.3}
\contentsline {section}{\numberline {16.4}Multiple Devices}{143}{section.16.4}
\contentsline {section}{\numberline {16.5}Device Configuration Records}{144}{section.16.5}
\contentsline {chapter}{\numberline {17}Autochanger Resource}{147}{chapter.17}
\contentsline {section}{\numberline {17.1}An Example Configuration File}{148}{section.17.1}
\contentsline {section}{\numberline {17.2}A Multi-drive Example Configuration File}{148}{section.17.2}
\contentsline {section}{\numberline {17.3}Specifying Slots When Labeling}{149}{section.17.3}
\contentsline {section}{\numberline {17.4}Changing Cartridges}{150}{section.17.4}
\contentsline {section}{\numberline {17.5}Dealing with Multiple Magazines}{150}{section.17.5}
\contentsline {section}{\numberline {17.6}Simulating Barcodes in your Autochanger}{151}{section.17.6}
\contentsline {section}{\numberline {17.7}The Full Form of the Update Slots Command}{151}{section.17.7}
\contentsline {section}{\numberline {17.8}FreeBSD Issues}{152}{section.17.8}
\contentsline {section}{\numberline {17.9}Testing Autochanger and Adapting mtx-changer script}{152}{section.17.9}
\contentsline {section}{\numberline {17.10}Using the Autochanger}{153}{section.17.10}
\contentsline {section}{\numberline {17.11}Barcode Support}{154}{section.17.11}
\contentsline {section}{\numberline {17.12}Use bconsole to display Autochanger content}{155}{section.17.12}
\contentsline {section}{\numberline {17.13}Bacula Autochanger Interface}{155}{section.17.13}
\contentsline {chapter}{\numberline {18}Supported Autochangers}{157}{chapter.18}
\contentsline {chapter}{\numberline {19}Data Spooling}{161}{chapter.19}
\contentsline {section}{\numberline {19.1}Data Spooling Directives}{161}{section.19.1}
\contentsline {section}{\numberline {19.2}!!! MAJOR WARNING !!!}{162}{section.19.2}
\contentsline {section}{\numberline {19.3}Other Points}{162}{section.19.3}
\contentsline {chapter}{\numberline {20}Using Bacula catalog to grab information}{163}{chapter.20}
\contentsline {section}{\numberline {20.1}Job statistics}{163}{section.20.1}
\contentsline {chapter}{\numberline {21}Python Scripting}{165}{chapter.21}
\contentsline {section}{\numberline {21.1}Python Configuration}{165}{section.21.1}
\contentsline {section}{\numberline {21.2}Bacula Events}{166}{section.21.2}
\contentsline {section}{\numberline {21.3}Python Objects}{166}{section.21.3}
\contentsline {section}{\numberline {21.4}Python Console Command}{169}{section.21.4}
\contentsline {section}{\numberline {21.5}Debugging Python Scripts}{169}{section.21.5}
\contentsline {section}{\numberline {21.6}Python Example}{170}{section.21.6}
\contentsline {chapter}{\numberline {22}ANSI and IBM Tape Labels}{173}{chapter.22}
\contentsline {section}{\numberline {22.1}Director Pool Directive}{173}{section.22.1}
\contentsline {section}{\numberline {22.2}Storage Daemon Device Directives}{173}{section.22.2}
\contentsline {chapter}{\numberline {23}The Windows Version of Bacula}{175}{chapter.23}
\contentsline {section}{\numberline {23.1}Win32 Installation}{175}{section.23.1}
\contentsline {section}{\numberline {23.2}Post Win32 Installation}{179}{section.23.2}
\contentsline {section}{\numberline {23.3}Uninstalling Bacula on Win32}{179}{section.23.3}
\contentsline {section}{\numberline {23.4}Dealing with Win32 Problems}{179}{section.23.4}
\contentsline {section}{\numberline {23.5}Windows Compatibility Considerations}{181}{section.23.5}
\contentsline {section}{\numberline {23.6}Volume Shadow Copy Service}{182}{section.23.6}
\contentsline {section}{\numberline {23.7}VSS Problems}{183}{section.23.7}
\contentsline {section}{\numberline {23.8}Windows Firewalls}{184}{section.23.8}
\contentsline {section}{\numberline {23.9}Windows Port Usage}{184}{section.23.9}
\contentsline {section}{\numberline {23.10}Windows Disaster Recovery}{184}{section.23.10}
\contentsline {section}{\numberline {23.11}Windows Restore Problems}{184}{section.23.11}
\contentsline {section}{\numberline {23.12}Windows Ownership and Permissions Problems}{185}{section.23.12}
\contentsline {section}{\numberline {23.13}Manually resetting the Permissions}{185}{section.23.13}
\contentsline {section}{\numberline {23.14}Backing Up the WinNT/XP/2K System State}{187}{section.23.14}
\contentsline {section}{\numberline {23.15}Considerations for Filename Specifications}{188}{section.23.15}
\contentsline {section}{\numberline {23.16}Win32 Specific File daemon Command Line}{188}{section.23.16}
\contentsline {section}{\numberline {23.17}Shutting down Windows Systems}{189}{section.23.17}
\contentsline {chapter}{\numberline {24}Disaster Recovery Using Bacula}{191}{chapter.24}
\contentsline {section}{\numberline {24.1}General}{191}{section.24.1}
\contentsline {section}{\numberline {24.2}Important Considerations}{191}{section.24.2}
\contentsline {section}{\numberline {24.3}Steps to Take Before Disaster Strikes}{191}{section.24.3}
\contentsline {section}{\numberline {24.4}Bare Metal Recovery on Linux with a Rescue CD}{192}{section.24.4}
\contentsline {section}{\numberline {24.5}Requirements}{192}{section.24.5}
\contentsline {section}{\numberline {24.6}Restoring a Client System}{192}{section.24.6}
\contentsline {section}{\numberline {24.7}Boot with your Rescue CDROM}{193}{section.24.7}
\contentsline {section}{\numberline {24.8}Restoring a Server}{195}{section.24.8}
\contentsline {section}{\numberline {24.9}Linux Problems or Bugs}{196}{section.24.9}
\contentsline {section}{\numberline {24.10}Bare Metal Recovery using a LiveCD}{196}{section.24.10}
\contentsline {section}{\numberline {24.11}FreeBSD Bare Metal Recovery}{197}{section.24.11}
\contentsline {section}{\numberline {24.12}Solaris Bare Metal Recovery}{198}{section.24.12}
\contentsline {section}{\numberline {24.13}Preparing Solaris Before a Disaster}{198}{section.24.13}
\contentsline {section}{\numberline {24.14}Bugs and Other Considerations}{199}{section.24.14}
\contentsline {section}{\numberline {24.15}Disaster Recovery of Win32 Systems}{199}{section.24.15}
\contentsline {section}{\numberline {24.16}Ownership and Permissions on Win32 Systems}{199}{section.24.16}
\contentsline {section}{\numberline {24.17}Alternate Disaster Recovery Suggestion for Win32 Systems}{200}{section.24.17}
\contentsline {section}{\numberline {24.18}Restoring to a Running System}{200}{section.24.18}
\contentsline {section}{\numberline {24.19}Additional Resources}{201}{section.24.19}
\contentsline {chapter}{\numberline {25}Bacula TLS -- Communications Encryption}{203}{chapter.25}
\contentsline {section}{\numberline {25.1}TLS Configuration Directives}{203}{section.25.1}
\contentsline {section}{\numberline {25.2}Creating a Self-signed Certificate}{204}{section.25.2}
\contentsline {section}{\numberline {25.3}Getting a CA Signed Certificate}{205}{section.25.3}
\contentsline {section}{\numberline {25.4}Example TLS Configuration Files}{205}{section.25.4}
\contentsline {chapter}{\numberline {26}Data Encryption}{209}{chapter.26}
\contentsline {section}{\numberline {26.1}Building Bacula with Encryption Support}{210}{section.26.1}
\contentsline {section}{\numberline {26.2}Encryption Technical Details}{210}{section.26.2}
\contentsline {section}{\numberline {26.3}Decrypting with a Master Key}{210}{section.26.3}
\contentsline {section}{\numberline {26.4}Generating Private/Public Encryption Keys}{211}{section.26.4}
\contentsline {section}{\numberline {26.5}Example Data Encryption Configuration}{211}{section.26.5}
\contentsline {chapter}{\numberline {27}Using Bacula to Improve Computer Security}{213}{chapter.27}
\contentsline {section}{\numberline {27.1}The Details}{213}{section.27.1}
\contentsline {section}{\numberline {27.2}Running the Verify}{214}{section.27.2}
\contentsline {section}{\numberline {27.3}What To Do When Differences Are Found}{215}{section.27.3}
\contentsline {section}{\numberline {27.4}A Verify Configuration Example}{216}{section.27.4}
\contentsline {chapter}{\numberline {28}The Bootstrap File}{219}{chapter.28}
\contentsline {section}{\numberline {28.1}Bootstrap File Format}{219}{section.28.1}
\contentsline {section}{\numberline {28.2}Automatic Generation of Bootstrap Files}{222}{section.28.2}
\contentsline {section}{\numberline {28.3}Bootstrap for bscan}{223}{section.28.3}
\contentsline {section}{\numberline {28.4}A Final Bootstrap Example}{223}{section.28.4}
\contentsline {chapter}{\numberline {29}Bacula Copyright, Trademark, and Licenses}{225}{chapter.29}
\contentsline {section}{\numberline {29.1}FDL}{225}{section.29.1}
\contentsline {section}{\numberline {29.2}GPL}{225}{section.29.2}
\contentsline {section}{\numberline {29.3}LGPL}{225}{section.29.3}
\contentsline {section}{\numberline {29.4}Public Domain}{225}{section.29.4}
\contentsline {section}{\numberline {29.5}Trademark}{226}{section.29.5}
\contentsline {section}{\numberline {29.6}Fiduciary License Agreement}{226}{section.29.6}
\contentsline {section}{\numberline {29.7}Disclaimer}{226}{section.29.7}
\contentsline {chapter}{\numberline {30}GNU Free Documentation License}{227}{chapter.30}
\contentsline {section}{\numberline {30.1}Table of Contents}{233}{section.30.1}
\contentsline {section}{\numberline {30.2}GNU GENERAL PUBLIC LICENSE}{233}{section.30.2}
\contentsline {section}{\numberline {30.3}Preamble}{233}{section.30.3}
\contentsline {section}{\numberline {30.4}TERMS AND CONDITIONS}{234}{section.30.4}
\contentsline {section}{\numberline {30.5}How to Apply These Terms to Your New Programs}{237}{section.30.5}
\contentsline {section}{\numberline {30.6}Table of Contents}{238}{section.30.6}
\contentsline {section}{\numberline {30.7}GNU LESSER GENERAL PUBLIC LICENSE}{238}{section.30.7}
\contentsline {section}{\numberline {30.8}Preamble}{238}{section.30.8}
\contentsline {section}{\numberline {30.9}TERMS AND CONDITIONS}{239}{section.30.9}
\contentsline {section}{\numberline {30.10}How to Apply These Terms to Your New Libraries}{244}{section.30.10}
\contentsline {chapter}{\numberline {31}Bacula Projects}{245}{chapter.31}
\contentsline {chapter}{\numberline {32}Thanks}{247}{chapter.32}
\contentsline {section}{\numberline {32.1}Bacula Bugs}{249}{section.32.1}
\contentsline {chapter}{\numberline {33}Variable Expansion}{251}{chapter.33}
\contentsline {section}{\numberline {33.1}General Functionality}{251}{section.33.1}
\contentsline {section}{\numberline {33.2}Bacula Variables}{251}{section.33.2}
\contentsline {section}{\numberline {33.3}Full Syntax}{252}{section.33.3}
\contentsline {section}{\numberline {33.4}Semantics}{253}{section.33.4}
\contentsline {section}{\numberline {33.5}Examples}{253}{section.33.5}
\contentsline {chapter}{\numberline {34}Using Stunnel to Encrypt Communications}{255}{chapter.34}
\contentsline {section}{\numberline {34.1}Communications Ports Used}{255}{section.34.1}
\contentsline {section}{\numberline {34.2}Encryption}{255}{section.34.2}
\contentsline {section}{\numberline {34.3}A Picture}{256}{section.34.3}
\contentsline {section}{\numberline {34.4}Certificates}{256}{section.34.4}
\contentsline {section}{\numberline {34.5}Securing the Data Channel}{256}{section.34.5}
\contentsline {section}{\numberline {34.6}Data Channel Configuration}{257}{section.34.6}
\contentsline {section}{\numberline {34.7}Stunnel Configuration for the Data Channel}{257}{section.34.7}
\contentsline {section}{\numberline {34.8}Starting and Testing the Data Encryption}{258}{section.34.8}
\contentsline {section}{\numberline {34.9}Encrypting the Control Channel}{258}{section.34.9}
\contentsline {section}{\numberline {34.10}Control Channel Configuration}{259}{section.34.10}
\contentsline {section}{\numberline {34.11}Stunnel Configuration for the Control Channel}{259}{section.34.11}
\contentsline {section}{\numberline {34.12}Starting and Testing the Control Channel}{260}{section.34.12}
\contentsline {section}{\numberline {34.13}Using stunnel to Encrypt to a Second Client}{260}{section.34.13}
\contentsline {section}{\numberline {34.14}Creating a Self-signed Certificate}{261}{section.34.14}
\contentsline {section}{\numberline {34.15}Getting a CA Signed Certificate}{262}{section.34.15}
\contentsline {section}{\numberline {34.16}Using ssh to Secure the Communications}{262}{section.34.16}
\contentsline {chapter}{\numberline {35}DVD Volumes}{263}{chapter.35}
\contentsline {section}{\numberline {35.1}DVD Specific SD Directives}{263}{section.35.1}
\contentsline {section}{\numberline {35.2}Edit Codes for DVD Directives}{264}{section.35.2}
\contentsline {section}{\numberline {35.3}DVD Specific Director Directives}{265}{section.35.3}
\contentsline {section}{\numberline {35.4}Other Points}{265}{section.35.4}
