They are summarized below. Kern okayed this via bacula-devel list.
If you notice any issues, please let me know.
- Use latex2html -split 3 instead of -split 4 for the "make web" target.
NOTE: be sure to update your Makefile manually or from the Makefile.in.
- Switches top level sections to \chapter.
- Gets rid of asterisks for sections so they are all numbered now.
- Removes the now un-necessary and now redundant \addcontentsline for
table of contents (not needed because numbered sections are
automatically added so was doubling them).
- Shortens length of several section (and now chapter) titles (so this can
look better in table of contents and fit better in printed book.
Also a few of these are rewritten. (Note that I didn't modify the long
FAQ section names.)
- Removed some tex formatting that were embedded in some \section* because
now they cause tex errors.
- Adds many of my TODO: items as tex comments directly near problems.
Some of these are just questions.
- Uncomment label_fd label (as in my custom book tex file references the
GNU Free Documentation License).
- Change label name of PostgreSQL_phase2 to PostgreSQL_configure and
renamed that section.
- Removes an old comment about old FreeBSD port before it was updated.
- Removes some index items that were bogus or redundant; or rewords some
of index items.
Hopefully nothing else. (After this last batch of changes, I won't
get so far behind and will be able to commit related items at one
time.)
TODO: grep the tex files for TODO: and share your feedback or fix :)
@rm -f bacula/xp-*.png
@rm -f bacula/next.eps bacula/next.png bacula/prev.eps bacula/prev.png bacula/up.eps bacula/up.png
@rm -rf bacula/*.html
- latex2html -split 4 -local_icons -t "Bacula User's Guide" -long_titles 4 \
+ latex2html -split 3 -local_icons -t "Bacula User's Guide" -long_titles 4 \
-toc_stars -contents_in_nav -init_file latex2html-init.pl -white -notransparent bacula >tex.out 2>&1
./translate_images.pl --to_meaningful_names bacula/Bacula_Users_Guide.html
cp -f bacula/Bacula_Freque_Asked_Questi.html bacula/faq.html
-\section*{ANSI and IBM Tape Labels}
+\chapter{ANSI and IBM Tape Labels}
\label{_ChapterStart62}
\index[general]{ANSI and IBM Tape Labels}
\index[general]{Labels!Tape}
-\addcontentsline{toc}{section}{ANSI and IBM Tape Labels}
Bacula supports ANSI or IBM tape labels as long as you
enable it. In fact, with the proper configuration, you can
and multiple backup programs.
-\subsection*{Director Pool Directive}
-\addcontentsline{toc}{section}{Director Pool Directive}
+\section{Director Pool Directive}
\begin{description}
\item [ Label Type = ANSI | IBM | Bacula]
is Label Type = Bacula.
\end{description}
-\subsection*{Storage Daemon Device Directives}
-\addcontentsline{toc}{section}{Storage Daemon Device Directives}
+\section{Storage Daemon Device Directives}
\begin{description}
\item [ Label Type = ANSI | IBM | Bacula]
-\subsection*{Autochanger Resource}
+\chapter{Autochanger Resource}
\index[sd]{Autochanger Resource }
\index[sd]{Resource!Autochanger }
-\addcontentsline{toc}{subsection}{Autochanger Resource}
The Autochanger resource supports single or multiple drive
autochangers by grouping one or more Device resources
%%
%%
-\section*{Autochanger Support}
+\chapter{Autochanger Support}
\label{_ChapterStart18}
\index[general]{Support!Autochanger }
\index[general]{Autochanger Support }
-\addcontentsline{toc}{section}{Autochanger Support}
-\subsection*{Autochangers -- General}
+\section{Autochangers -- General}
\index[general]{General!Autochangers -- }
\index[general]{Autochangers -- General }
-\addcontentsline{toc}{subsection}{Autochangers -- General}
Bacula provides autochanger support for reading and writing tapes. In
order to work with an autochanger, Bacula requires a number of things, each of
permissions to access the autochanger.
\label{SCSI devices}
-\subsection*{Knowing What SCSI Devices You Have}
+\section{Knowing What SCSI Devices You Have}
\index[general]{Have!Knowing What SCSI Devices You }
\index[general]{Knowing What SCSI Devices You Have }
\index[general]{SCSI devices}
\index[general]{devices!SCSI}
-\addcontentsline{toc}{subsection}{Knowing What SCSI Devices You Have}
Under Linux, you can
\label{scripts}
-\subsection*{Example Scripts}
+\section{Example Scripts}
\index[general]{Scripts!Example }
\index[general]{Example Scripts }
-\addcontentsline{toc}{subsection}{Example Scripts}
Please read the sections below so that you understand how autochangers work
with Bacula. Although we supply a default {\bf mtx-changer} script, your
\label{Slots}
-\subsection*{Slots}
+\section{Slots}
\index[general]{Slots }
-\addcontentsline{toc}{subsection}{Slots}
To properly address autochangers, Bacula must know which Volume is in each
{\bf slot} of the autochanger. Slots are where the changer cartridges reside
in the Console program.
\label{mult}
-\subsection*{Multiple Devices}
+\section{Multiple Devices}
\index[general]{Devices!Multiple }
\index[general]{Multiple Devices }
-\addcontentsline{toc}{subsection}{Multiple Devices}
Some autochangers have more than one read/write device (drive). The
new
Device}.
\label{ConfigRecords}
-\subsection*{Device Configuration Records}
+\section{Device Configuration Records}
\index[general]{Records!Device Configuration }
\index[general]{Device Configuration Records }
-\addcontentsline{toc}{subsection}{Device Configuration Records}
Configuration of autochangers within Bacula is done in the Device resource of
the Storage daemon. Four records: {\bf Autochanger}, {\bf Changer Device},
\input{autochangerres}
\label{example}
-\subsection*{An Example Configuration File}
+\section{An Example Configuration File}
\index[general]{Example Configuration File }
\index[general]{File!Example Configuration }
-\addcontentsline{toc}{subsection}{Example Configuration File}
The following two resources implement an autochanger:
the path to the {\bf Changer Command} to correspond to the values used on your
system.
-\subsection*{A Multi-drive Example Configuration File}
+\section{A Multi-drive Example Configuration File}
\index[general]{Multi-drive Example Configuration File }
-\addcontentsline{toc}{subsection}{A Multi-drive Example Configuration File}
The following resources implement a multi-drive autochanger:
system.
\label{SpecifyingSlots}
-\subsection*{Specifying Slots When Labeling}
+\section{Specifying Slots When Labeling}
\index[general]{Specifying Slots When Labeling }
\index[general]{Labeling!Specifying Slots When }
-\addcontentsline{toc}{subsection}{Specifying Slots When Labeling}
If you add an {\bf Autochanger = yes} record to the Storage resource in your
Director's configuration file, the Bacula Console will automatically prompt
Any slot containing a barcode of CLNxxxx will be treated as a cleaning tape
and will not be mounted.
-\subsection*{Changing Cartridges}
+\section{Changing Cartridges}
\index[general]{Changing Cartridges }
-\addcontentsline{toc}{subsection}{Changing Cartridges}
If you wish to insert or remove cartridges in your autochanger or
you manually run the {\bf mtx} program, you must first tell Bacula
to release the autochanger by doing:
\label{Magazines}
-\subsection*{Dealing with Multiple Magazines}
+\section{Dealing with Multiple Magazines}
\index[general]{Dealing with Multiple Magazines }
\index[general]{Magazines!Dealing with Multiple }
-\addcontentsline{toc}{subsection}{Dealing with Multiple Magazines}
If you have several magazines or if you insert or remove cartridges from a
magazine, you should notify Bacula of this. By doing so, Bacula will as
\end{enumerate}
\label{simulating}
-\subsection*{Simulating Barcodes in your Autochanger}
+\section{Simulating Barcodes in your Autochanger}
\index[general]{Autochanger!Simulating Barcodes in your }
\index[general]{Simulating Barcodes in your Autochanger }
-\addcontentsline{toc}{subsection}{Simulating Barcodes in your Autochanger}
You can simulate barcodes in your autochanger by making the {\bf mtx-changer}
script return the same information that an autochanger with barcodes would do.
your autochanger will appear to Bacula to be an autochanger with barcodes.
\label{updateslots}
-\subsection*{The Full Form of the Update Slots Command}
+\section{The Full Form of the Update Slots Command}
\index[general]{Full Form of the Update Slots Command }
\index[general]{Command!Full Form of the Update Slots }
-\addcontentsline{toc}{subsection}{Full Form of the Update Slots Command}
If you change only one cartridge in the magazine, you may not want to scan all
Volumes, so the {\bf update slots} command (as well as the {\bf update slots
not find any Volume names so will do nothing.
\label{FreeBSD}
-\subsection*{FreeBSD Issues}
+\section{FreeBSD Issues}
\index[general]{Issues!FreeBSD }
\index[general]{FreeBSD Issues }
-\addcontentsline{toc}{subsection}{FreeBSD Issues}
If you are having problems on FreeBSD when Bacula tries to select a tape, and
the message is {\bf Device not configured}, this is because FreeBSD has made
autochanger testing.
\label{AutochangerTesting}
-\subsection*{Testing the Autochanger and Adapting Your mtx-changer Script}
-\index[general]{Testing the Autochanger and Adapting Your mtx-changer Script }
-\index[general]{Script!Testing the Autochanger and Adapting Your mtx-changer }
-\addcontentsline{toc}{subsection}{Testing the Autochanger and Adapting Your
-mtx-changer Script}
+\section{Testing Autochanger and Adapting mtx-changer}
+\index[general]{Testing the Autochanger }
+\index[general]{Adapting Your mtx-changer }
+mtx-changer}
Before attempting to use the autochanger with Bacula, it is preferable to
"hand-test" that the changer works. To do so, we suggest you do the
\label{using}
-\subsection*{Using the Autochanger}
+\section{Using the Autochanger}
\index[general]{Using the Autochanger }
\index[general]{Autochanger!Using the }
-\addcontentsline{toc}{subsection}{Using the Autochanger}
Let's assume that you have properly defined the necessary Storage daemon
Device records, and you have added the {\bf Autochanger = yes} record to the
\label{Barcodes}
-\subsection*{Barcode Support}
+\section{Barcode Support}
\index[general]{Support!Barcode }
\index[general]{Barcode Support }
-\addcontentsline{toc}{subsection}{Barcode Support}
Bacula provides barcode support with two Console commands, {\bf label
barcodes} and {\bf update slots}.
\label{interface}
-\subsection*{Bacula Autochanger Interface}
+\section{Bacula Autochanger Interface}
\index[general]{Interface!Bacula Autochanger }
\index[general]{Bacula Autochanger Interface }
-\addcontentsline{toc}{subsection}{Bacula Autochanger Interface}
Bacula calls the autochanger script that you specify on the {\bf Changer
Device} statement. Normally this script will be the {\bf mtx-changer} script
%% # $ % & ~ _ ^ \ { }
%%
-\subsection*{bimagemgr}
+\section{bimagemgr}
\label{bimagemgr}
\index[general]{Bimagemgr }
-\addcontentsline{toc}{subsection}{bimagemgr}
{\bf bimagemgr} is a utility for those who backup to disk volumes in order to
commit them to CDR disk, rather than tapes. It is a web based interface
DVD burning is not supported by {\bf bimagemgr} at this
time, but both are planned for future releases.
-\subsubsection*{bimagemgr installation}
+\subsection{bimagemgr installation}
\index[general]{bimagemgr!Installation }
\index[general]{bimagemgr Installation }
-\addcontentsline{toc}{subsubsection}{bimagemgr Installation}
Installation from tarball:
+% TODO: use itemized list for this?
1. Examine the Makefile and adjust it to your configuration if needed.
2. Edit config.pm to fit your configuration.
3. Do 'make install' as root.
burning on the bacula server on on another machine across your network. In my
case I set it to 1000 seconds. Restart httpd.
5. Make sure that cdrecord is setuid root.
+% TODO: I am pretty sure cdrecord can be used without setuid root
+% TODO: as long as devices are setup correctly
Installation from rpm package:
+% TODO: use itemized list for this?
1. Install the rpm package for your platform.
2. Edit /cgi-bin/config.pm to fit your configuration.
3. Edit httpd.conf and change the Timeout value. The web server must not time
4. Make sure that cdrecord is setuid root.
For bacula systems less than 1.36:
+% TODO: use itemized list for this?
1. Edit the configuration section of config.pm to fit your configuration.
2. Run /etc/bacula/create\_cdimage\_table.pl from a console on your bacula
server (as root) to add the CDImage table to your bacula database.
apache are running on the same host as bacula.
For bacula-1.34 or 1.36 installed from tarball -
+% TODO: use itemized list for this?
1. Create a new user group bacula and add the user apache to the group for
Red Hat or Mandrake systems. For SuSE systems add the user wwwrun to the
bacula group.
a reboot of the server to execute '/etc/bacula/bacula restart'.
For bacula-1.38 installed from tarball -
+% TODO: use itemized list for this?
1. Your configure statement should include:
+% TODO: fix formatting here
--with-dir-user=bacula
--with-dir-group=bacula
--with-sd-user=bacula
3. Check/change ownership of all of your Volume files to root.bacula
For bacula-1.36 or bacula-1.38 installed from rpm -
+% TODO: use itemized list for this?
1. Add the user apache to the group bacula for Red Hat or Mandrake systems.
For SuSE systems add the user wwwrun to the bacula group.
2. Check/change ownership of all of your Volume files to root.bacula
be taken if you are sure of the security of your environment as it exposes
the backup Volume files to world read.
-\subsubsection*{bimagemgr usage}
+\subsection{bimagemgr usage}
\index[general]{bimagemgr!Usage }
\index[general]{bimagemgr Usage }
-\addcontentsline{toc}{subsubsection}{bimagemgr Usage}
Calling the program in your web browser, e.g. {\tt
http://localhost/cgi-bin/bimagemgr.pl} will produce a display as shown below
+% TODO: use tex to say figure number
in Figure 1. The program will query the bacula database and display all volume
files with the date last written and the date last burned to disk. If a volume
needs to be burned (last written is newer than last burn date) a "Burn"
\addcontentsline{lof}{figure}{Bacula CD Image Manager}
\includegraphics{./bimagemgr1.eps} \\Figure 1
+% TODO: use tex to say figure number
Place a blank CDR disk in your recorder and click the "Burn" button. This will
cause a pop up window as shown in Figure 2 to display the burn progress.
+% TODO: use tex to say figure number
\addcontentsline{lof}{figure}{Bacula CD Image Burn Progress Window}
\includegraphics{./bimagemgr2.eps} \\Figure 2
+% TODO: use tex to say figure number
When the burn finishes the pop up window will display the results of cdrecord
+% TODO: use tex to say figure number
as shown in Figure 3. Close the pop up window and refresh the main window. The
last burn date will be updated and the "Burn" button for that volume will
disappear. Should you have a failed burn you can reset the last burn date of
\addcontentsline{lof}{figure}{Bacula CD Image Burn Results}
\includegraphics{./bimagemgr3.eps} \\Figure 3
+% TODO: use tex to say figure number
In the bottom row of the main display window are two more buttons labeled
"Burn Catalog" and "Blank CDRW". "Burn Catalog" will place a copy of
%%
%%
-\section*{The Bootstrap File}
+\chapter{The Bootstrap File}
\label{_ChapterStart43}
\index[general]{File!Bootstrap }
\index[general]{Bootstrap File }
-\addcontentsline{toc}{section}{Bootstrap File}
The information in this chapter is provided so that you may either create your
own bootstrap files, or so that you can edit a bootstrap file produced by {\bf
form of specifying the information, is human readable, and can be edited with
any text editor.
-\subsection*{File Format}
+\section{File Format}
\index[general]{Format!File }
\index[general]{File Format }
-\addcontentsline{toc}{subsection}{File Format}
The general format of a {\bf bootstrap} file is:
\end{verbatim}
\normalsize
-\subsection*{Automatic Generation of Bootstrap Files}
+\section{Automatic Generation of Bootstrap Files}
\index[general]{Files!Automatic Generation of Bootstrap }
\index[general]{Automatic Generation of Bootstrap Files }
-\addcontentsline{toc}{subsection}{Automatic Generation of Bootstrap Files}
One thing that is probably worth knowing: the bootstrap files that are
generated automatically at the end of the job are not as optimized as those
The {\bf no} answers the {\bf Do you want to run this (yes/mod/no)} question.
-\subsection*{A Final Example}
+\section{A Final Example}
\index[general]{Example!Final }
\index[general]{Final Example }
-\addcontentsline{toc}{subsection}{Final Example}
If you want to extract or copy a single Job, you can do it by selecting by
JobId (code not tested) or better yet, if you know the VolSessionTime and the
%%
%%
-\section*{Bacula Bugs}
+\section{Bacula Bugs}
\label{_ChapterStart4}
\index[general]{Bacula Bugs }
\index[general]{Bugs!Bacula }
-\addcontentsline{toc}{section}{Bacula Bugs}
Well fortunately there are not too many bugs, but thanks to Dan Langille, we
have a
%%
%%
-\section*{Catalog Maintenance}
+\chapter{Catalog Maintenance}
\label{_ChapterStart12}
\index[general]{Maintenance!Catalog }
\index[general]{Catalog Maintenance }
-\addcontentsline{toc}{section}{Catalog Maintenance}
Without proper setup and maintenance, your Catalog may continue to grow
indefinitely as you run Jobs and backup Files, and/or it may become
of retention periods will be useful.
\label{Retention}
-\subsection*{Setting Retention Periods}
+\section{Setting Retention Periods}
\index[general]{Setting Retention Periods }
\index[general]{Periods!Setting Retention }
-\addcontentsline{toc}{subsection}{Setting Retention Periods}
{\bf Bacula} uses three Retention periods: the {\bf File Retention} period,
the {\bf Job Retention} period, and the {\bf Volume Retention} period. Of
\end{description}
\label{CompactingMySQL}
-\subsection*{Compacting Your MySQL Database}
+\section{Compacting Your MySQL Database}
\index[general]{Database!Compacting Your MySQL }
\index[general]{Compacting Your MySQL Database }
-\addcontentsline{toc}{subsection}{Compacting Your MySQL Database}
Over time, as noted above, your database will tend to grow. I've noticed that
even though Bacula regularly prunes files, {\bf MySQL} does not effectively
\label{DatabaseRepair}
\label{RepairingMySQL}
-\subsection*{Repairing Your MySQL Database}
+\section{Repairing Your MySQL Database}
\index[general]{Database!Repairing Your MySQL }
\index[general]{Repairing Your MySQL Database }
-\addcontentsline{toc}{subsection}{Repairing Your MySQL Database}
If you find that you are getting errors writing to your MySQL database, or
Bacula hangs each time it tries to access the database, you should consider
program. It can clean up many of the orphaned record problems, and certain
other inconsistencies in the Bacula database.
-\subsection*{MySQL Table is Full}
+\section{MySQL Table is Full}
\index[general]{Database!MySQL Table is Full}
\index[general]{MySQL Table is Full}
-\addcontentsline{toc}{subsection}{MySQL Table is Full}
If you are running into the error {\bf The table 'File' is full ...},
version 5.x, so making these changes should only be necessary on MySQL 4.x
depending on the size of your catalog database.
-\subsection*{MySQL Server Has Gone Away}
+\section{MySQL Server Has Gone Away}
\index[general]{Database!MySQL Server Has Gone Away}
\index[general]{MySQL Server Has Gone Away}
-\addcontentsline{toc}{subsection}{MySQL Server Has Gone Away}
If you are having problems with the MySQL server disconnecting or with
messages saying that your MySQL server has gone away, then please read
the MySQL documentation, which can be found at:
\label{RepairingPSQL}
-\subsection*{Repairing Your PostgreSQL Database}
+\section{Repairing Your PostgreSQL Database}
\index[general]{Database!Repairing Your PostgreSQL }
\index[general]{Repairing Your PostgreSQL Database }
-\addcontentsline{toc}{subsection}{Repairing Your PostgreSQL Database}
The same considerations apply that are indicated above for MySQL. That is,
consult the PostgreSQL documents for how to repair the database, and also
using (see above).
\label{DatabasePerformance}
-\subsection*{Database Performance Issues}
+\section{Database Performance Issues}
\index[general]{Database Performance Issues}
\index[general]{Performance!Database}
-\addcontentsline{toc}{subsection}{Database Performance Issues}
There are a considerable number of ways each of the databases can be
tuned to improve the performance. Going from an untuned database to one
\elink{
http://www.postgresql.org/docs/faqs.FAQ.html\#3.3}
{http://www.postgresql.org/docs/faqs.FAQ.html\#3.3}.
+% TODO: verify above is correct. is this okay for book?
Also for PostgreSQL, look at what "effective\_cache\_size". For a 2GB memory
machine, you probably want to set it at 131072, but don't set it too high.
-\subsection*{Performance Issues Indexes}
+\section{Performance Issues Indexes}
\index[general]{Database Performance Issues Indexes}
\index[general]{Performance!Database}
-\addcontentsline{toc}{subsection}{Database Performance Issues Indexes}
One of the most important considerations for improving performance on
the Bacula database is to ensure that it has all the appropriate indexes.
Several users have reported finding that their database did not have
two are the JobId index and the (Filename, PathId) index. If these Indexes
are not present, your performance may suffer a lot.
-\subsubsection*{PostgreSQL Indexes}
+\subsection{PostgreSQL Indexes}
On PostgreSQL, you can check to see if you have the proper indexes using
the following commands:
\end{verbatim}
\normalsize
-\subsubsection*{MySQL Indexes}
+\subsection{MySQL Indexes}
On MySQL, you can check if you have the proper indexes by:
\footnotesize
\normalsize
-\subsubsection*{SQLite Indexes}
+\subsection{SQLite Indexes}
On SQLite, you can check if you have the proper indexes by:
\footnotesize
\label{CompactingPostgres}
-\subsection*{Compacting Your PostgreSQL Database}
+\section{Compacting Your PostgreSQL Database}
\index[general]{Database!Compacting Your PostgreSQL }
\index[general]{Compacting Your PostgreSQL Database }
-\addcontentsline{toc}{subsection}{Compacting Your PostgreSQL Database}
Over time, as noted above, your database will tend to grow. I've noticed that
even though Bacula regularly prunes files, PostgreSQL has a {\bf VACUUM}
\elink{http://www.postgresql.org/docs/8.1/interactive/maintenance.html}
{http://www.postgresql.org/docs/8.1/interactive/maintenance.html}.
-\subsection*{Compacting Your SQLite Database}
+\section{Compacting Your SQLite Database}
\index[general]{Compacting Your SQLite Database }
\index[general]{Database!Compacting Your SQLite }
-\addcontentsline{toc}{subsection}{Compacting Your SQLite Database}
First please read the previous section that explains why it is necessary to
compress a database. SQLite version 2.8.4 and greater have the {\bf Vacuum}
completely delete (rm) the old database before creating a new compressed
version.
-\subsection*{Migrating from SQLite to MySQL}
+\section{Migrating from SQLite to MySQL}
\index[general]{MySQL!Migrating from SQLite to }
\index[general]{Migrating from SQLite to MySQL }
-\addcontentsline{toc}{subsection}{Migrating from SQLite to MySQL}
You may begin using Bacula with SQLite then later find that you want to switch
to MySQL for any of a number of reasons: SQLite tends to use more disk than
process.
\label{BackingUpBacula}
-\subsection*{Backing Up Your Bacula Database}
+\section{Backing Up Your Bacula Database}
\index[general]{Backing Up Your Bacula Database }
\index[general]{Database!Backing Up Your Bacula }
-\addcontentsline{toc}{subsection}{Backing Up Your Bacula Database}
If ever the machine on which your Bacula database crashes, and you need to
restore from backup tapes, one of your first priorities will probably be to
database backup, but it will be more work and take longer.
\label{BackingUPOtherDBs}
-\subsection*{Backing Up Third Party Databases}
+\section{Backing Up Third Party Databases}
\index[general]{Backing Up Third Party Databases }
\index[general]{Databases!Backing Up Third Party }
-\addcontentsline{toc}{subsection}{Backing Up Third Party Databases}
If you are running a database in production mode on your machine, Bacula will
happily backup the files, but if the database is in use while Bacula is
databases.
\label{Size}
-\subsection*{Database Size}
+\section{Database Size}
\index[general]{Size!Database }
\index[general]{Database Size }
-\addcontentsline{toc}{subsection}{Database Size}
As mentioned above, if you do not do automatic pruning, your Catalog will grow
each time you run a Job. Normally, you should decide how long you want File
%%
%%
-\section*{Customizing the Configuration Files}
+\chapter{Customizing the Configuration Files}
\label{_ChapterStart16}
\index[general]{Files!Customizing the Configuration }
\index[general]{Customizing the Configuration Files }
-\addcontentsline{toc}{section}{Customizing the Configuration Files}
When each of the Bacula programs starts, it reads a configuration file
specified on the command line or the default {\bf bacula-dir.conf}, {\bf
(thanks to Aristides Maniatis for the above graphic)
\label{ResFormat}
-\subsection*{Resource Directive Format}
+\section{Resource Directive Format}
\index[general]{Resource Directive Format }
\index[general]{Format!Resource Directive }
-\addcontentsline{toc}{subsection}{Resource Directive Format}
Although, you won't need to know the details of all the directives a basic
knowledge of Bacula resource directives is essential. Each directive contained
quoted strings and unquoted strings are all equal.
\label{Comments}
-\subsubsection*{Comments}
+\subsection{Comments}
\index[general]{Comments}
-\addcontentsline{toc}{subsubsection}{Comments}
When reading the configuration file, blank lines are ignored and everything
after a hash sign (\#) until the end of the line is taken to be a comment. A
this manual, you will not see many semicolons.
\label{Case1}
-\subsubsection*{Upper and Lower Case and Spaces}
+\subsection{Upper and Lower Case and Spaces}
\index[general]{Spaces!Upper/Lower Case}
\index[general]{Upper and Lower Case and Spaces}
-\addcontentsline{toc}{subsubsection}{Upper and Lower Case and Spaces}
Case (upper/lower) and spaces are totally ignored in the resource directive
keywords (the part before the equal sign).
All other characters and punctuation are invalid.
\label{Includes}
-\subsubsection*{Including other Configuration Files}
+\subsection{Including other Configuration Files}
\index[general]{Including other Configuration Files }
\index[general]{Files!Including other Configuration }
\index[general]{Using @ to include other files}
\index[general]{@{\bf filename}}
-\addcontentsline{toc}{subsubsection}{Including other Configuration Files}
If you wish to break your configuration file into smaller pieces, you can do
so by including other files using the syntax @{\bf filename} where {\bf
specification can be given anywhere a primitive token would appear.
\label{DataTypes}
-\subsubsection*{Recognized Primitive Data Types}
+\subsection{Recognized Primitive Data Types}
\index[general]{Types!Recognized Primitive Data }
\index[general]{Recognized Primitive Data Types }
-\addcontentsline{toc}{subsubsection}{Recognized Primitive Data Types}
When parsing the resource directives, Bacula classifies the data according to
the types listed below. The first time you read this, it may appear a bit
\end{description}
\label{ResTypes}
-\subsection*{Resource Types}
+\section{Resource Types}
\index[general]{Types!Resource }
\index[general]{Resource Types }
-\addcontentsline{toc}{subsection}{Resource Types}
The following table lists all current Bacula resource types. It shows what
resources must be defined for each service (daemon). The default configuration
\end{longtable}
-\subsection*{Names, Passwords and Authorization}
+\section{Names, Passwords and Authorization}
\label{Names}
\index[general]{Authorization!Names Passwords and }
\index[general]{Names, Passwords and Authorization }
\index[general]{Passwords}
-\addcontentsline{toc}{subsection}{Names, Passwords and Authorization}
In order for one daemon to contact another daemon, it must authorize itself
with a password. In most cases, the password corresponds to a particular name,
unique to each Job created by the daemons and is not specified in any .conf
file.
-\subsection*{Detailed Information for each Daemon}
+\section{Detailed Information for each Daemon}
\index[general]{Detailed Information for each Daemon }
\index[general]{Daemon!Detailed Information for each }
-\addcontentsline{toc}{subsection}{Detailed Information for each Daemon}
The details of each Resource and the directives permitted therein are
described in the following chapters.
%%
%%
-\section*{Bacula Console}
+\chapter{Bacula Console}
\label{_ConsoleChapter}
\index[general]{Console!Bacula}
\index[general]{Bacula Console}
\index[console]{Console!Bacula}
\index[console]{Bacula Console}
-\addcontentsline{toc}{section}{Bacula Console}
-\subsection*{General}
+\section{General}
\index[general]{General}
-\addcontentsline{toc}{subsection}{General}
The {\bf Bacula Console} (sometimes called the User Agent) is a program that
allows the user or the System Administrator, to interact with the Bacula
requests a new tape, it waits until the user, via the Console program,
indicates that the new tape is mounted.
-\subsection*{Console Configuration}
+\section{Console Configuration}
\index[general]{Console Configuration}
\index[general]{Configuration!Console}
\index[console]{Console Configuration}
\index[console]{Configuration!Console}
-\addcontentsline{toc}{subsection}{Console Configuration}
When the Console starts, it reads a standard Bacula configuration file named
{\bf bconsole.conf} or {\bf gnome-console.conf} in the case of the GNOME
\ilink{Console Configuration File}{_ChapterStart36} Chapter of
this document.
-\subsection*{Running the Console Program}
+\section{Running the Console Program}
\index[general]{Running the Console Program}
\index[general]{Program!Running the Console}
\index[console]{Running the Console Program}
\index[console]{Program!Running the Console}
-\addcontentsline{toc}{subsection}{Running the Console Program}
The console program can be run with the following options:
\footnotesize
will display all the Pool resource records.
-\subsection*{Stopping the Console Program}
+\section{Stopping the Console Program}
\index[general]{Program!Stopping the Console}
\index[general]{Stopping the Console Program}
\index[console]{Program!Stopping the Console}
\index[console]{Stopping the Console Program}
-\addcontentsline{toc}{subsection}{Stopping the Console Program}
Normally, you simply enter {\bf quit} or {\bf exit} and the Console program
will terminate. However, it waits until the Director acknowledges the command.
will most likely be able to cancel at the next prompt.
\label{keywords}
-\subsection*{Alphabetic List of Console Keywords}
+\section{Alphabetic List of Console Keywords}
\index[general]{Keywords!Alphabetic List of Console}
\index[general]{Alphabetic List of Console Keywords}
\index[console]{Keywords!Alphabetic List of Console}
\index[console]{Alphabetic List of Console Keywords}
-\addcontentsline{toc}{subsection}{Alphabetic List of Console Keywords}
Unless otherwise specified, each of the following keywords
takes an argument, which is specified after the keyword following
an equal sign. For example:
\end{description}
\label{list}
-\subsection*{Alphabetic List of Console Commands}
+\section{Alphabetic List of Console Commands}
\index[general]{Commands!Alphabetic List of Console}
\index[general]{Alphabetic List of Console Commands}
\index[console]{Commands!Alphabetic List of Console}
\index[console]{Alphabetic List of Console Commands}
-\addcontentsline{toc}{subsection}{Alphabetic List of Console Commands}
The following commands are currently implemented:
hours, and a listing of the last ten terminated jobs with their statuses.
The scheduled jobs summary will include the Volume name to be used. You
should be aware of two things: 1. to obtain the volume name, the code
+% TODO: use bullets here or be consistent with numbering items
goes through the same code that will be used when the job runs, which
means that it may prune or recycle a Volume; 2. The Volume listed is
only a best guess. The Volume actually used may be different because of
\label{dotcommands}
-\subsection*{Special dot Commands}
+\section{Special dot Commands}
\index[general]{Commands!Special dot}
\index[general]{Special dot Commands}
-\addcontentsline{toc}{subsection}{Special dot Commands}
There is a list of commands that are prefixed with a period (.). These
commands are intended to be used either by batch programs or graphical user
\label{atcommands}
-\subsection*{Special At (@) Commands}
+\section{Special At (@) Commands}
\index[general]{Commands!Special At @}
\index[general]{Special At (@) Commands}
-\addcontentsline{toc}{subsection}{Special At (@) Commands}
Normally, all commands entered to the Console program are immediately
forwarded to the Director, which may be on another machine, to be executed.
\label{scripting}
-\subsection*{Running the Console Program from a Shell Script}
+\section{Running the Console from a Shell Script}
\index[general]{Script!Running the Console Program from a Shell}
\index[general]{Running the Console Program from a Shell Script}
-\addcontentsline{toc}{subsection}{Running the Console Program from a Shell
Script}
You can automate many Console tasks by running the console program from a
\end{verbatim}
\normalsize
-\subsection*{Adding Volumes to a Pool}
+\section{Adding Volumes to a Pool}
\index[general]{Adding Volumes to a Pool}
\index[general]{Pool!Adding Volumes to a}
-\addcontentsline{toc}{subsection}{Adding Volumes to a Pool}
If you have used the {\bf label} command to label a Volume, it will be
automatically added to the Pool, and you will not need to add any media to the
%%
%%
-\section*{Console Configuration}
+\chapter{Console Configuration}
\label{_ChapterStart36}
\index[general]{Configuration!Console}
\index[general]{Console Configuration}
-\addcontentsline{toc}{section}{Console Configuration}
-\subsection*{General}
+\section{General}
\index[general]{General}
-\addcontentsline{toc}{subsection}{General}
The Console configuration file is the simplest of all the configuration files,
and in general, you should not need to change it except for the password. It
The following Console Resource definition must be defined:
-\subsection*{The Director Resource}
+\section{The Director Resource}
\label{DirectorResource3}
\index[general]{Director Resource}
\index[general]{Resource!Director}
-\addcontentsline{toc}{subsection}{Director Resource}
The Director resource defines the attributes of the Director running on the
network. You may have multiple Director resource specifications in a single
\end{verbatim}
\normalsize
-\subsection*{The ConsoleFont Resource}
+\section{The ConsoleFont Resource}
\index[general]{Resource!ConsoleFont}
\index[general]{ConsoleFont Resource}
-\addcontentsline{toc}{subsection}{ConsoleFont Resource}
The ConsoleFont resource is available only in the GNOME version of the
console. It permits you to define the font that you want used to display in
\end{verbatim}
\normalsize
-\subsection*{The Console Resource}
+\section{The Console Resource}
\label{ConsoleResource}
\index[general]{Console Resource}
\index[general]{Resource!Console}
-\addcontentsline{toc}{subsection}{Console Resource}
As of Bacula version 1.33 and higher, there are three different kinds of
consoles, which the administrator or user can use to interact with the
-\subsection*{Console Commands}
+\section{Console Commands}
\index[general]{Console Commands}
\index[general]{Commands!Console}
-\addcontentsline{toc}{subsection}{Console Commands}
For more details on running the console and its commands, please see the
\ilink{Bacula Console}{_ConsoleChapter} chapter of this manual.
-\subsection*{Sample Console Configuration File}
+\section{Sample Console Configuration File}
\label{SampleConfiguration2}
\index[general]{File!Sample Console Configuration}
\index[general]{Sample Console Configuration File}
-\addcontentsline{toc}{subsection}{Sample Console Configuration File}
An example Console configuration file might be the following:
%%
%%
-\section*{Critical Items to Implement Before Going Production}
+\chapter{Critical Items to Implement Before Production}
\label{_ChapterStart32}
-\index[general]{Production!Critical Items to Implement Before Going }
-\index[general]{Critical Items to Implement Before Going Production }
-\addcontentsline{toc}{section}{Critical Items to Implement Before Going
-Production}
+\index[general]{Production!Critical Items to Implement Before }
+\index[general]{Critical Items to Implement Before Production }
-\subsection*{General}
+\section{General}
\index[general]{General }
-\addcontentsline{toc}{subsection}{General}
We recommend you take your time before implementing a production a Bacula
backup system since Bacula is a rather complex program, and if you make a
that we can document it to the benefit of everyone.
\label{Critical}
-\subsection*{Critical Items}
+\section{Critical Items}
\index[general]{Critical Items }
\index[general]{Items!Critical }
-\addcontentsline{toc}{subsection}{Critical Items}
The following assumes that you have installed Bacula, you more or less
understand it, you have at least worked through the tutorial or have
will also vary.
\end{itemize}
-\subsection*{Recommended Items}
+\section{Recommended Items}
\index[general]{Items!Recommended }
\index[general]{Recommended Items }
-\addcontentsline{toc}{subsection}{Recommended Items}
Although these items may not be critical, they are recommended and will help
you avoid problems.
-\section*{Bacula -- Data Encryption}
+\chapter{Data Encryption}
\label{DataEncryption}
\index[general]{Data Encryption}
\index[general]{Encryption!Data}
\index[general]{Data Encryption}
-\addcontentsline{toc}{section}{Data Encryption}
Bacula permits file data encryption and signing within the File Daemon (or
Client) prior to sending data to the Storage Daemon. Upon restoration,
\end{enumerate}
-\subsection*{Building Bacula with Encryption Support}
+\section{Building Bacula with Encryption Support}
\index[general]{Building Bacula with Encryption Support}
-\addcontentsline{toc}{subsection}{Building Bacula with Encryption Support}
The configuration option for enabling OpenSSL encryption support has not changed
since Bacula 1.38. To build Bacula with encryption support, you will need
./configure --with-openssl ...
\end{verbatim}
-\subsection*{Encryption Technical Details}
+\section{Encryption Technical Details}
\index[general]{Encryption Technical Details}
-\addcontentsline{toc}{subsection}{Encryption Technical Details}
The implementation uses 128bit AES-CBC, with RSA encrypted symmetric
session keys. The RSA key is user supplied.
streaming DER decoder/encoder was not available.
-\subsection*{Generating Private/Public Encryption Keypairs}
+\section{Generating Private/Public Encryption Keys}
\index[general]{Generating Private/Public Encryption Keypairs}
-\addcontentsline{toc}{subsection}{Generating Private/Public Encryption Keypairs}
Generate a Master Key Pair with:
\normalsize
-\subsection*{Example Data Encryption Configuration}
+\section{Example Data Encryption Configuration}
\index[general]{Example!File Daemon Configuration File}
\index[general]{Example!Data Encryption Configuration File}
\index[general]{Example Data Encryption Configuration}
-\addcontentsline{toc}{subsection}{Example Data Encryption Configuration}
{\bf bacula-fd.conf}
%%
%%
-\section*{Configuring the Director}
+\chapter{Configuring the Director}
\label{_ChapterStart40}
\index[general]{Director!Configuring the}
\index[general]{Configuring the Director}
-\addcontentsline{toc}{section}{Configuring the Director}
Of all the configuration files needed to run {\bf Bacula}, the Director's is
the most complicated, and the one that you will need to modify the most often
data types recognized by {\bf Bacula}. Please see the
\ilink{Configuration}{_ChapterStart16} chapter of this manual.
-\subsection*{Director Resource Types}
+\section{Director Resource Types}
\index[general]{Types!Director Resource}
\index[general]{Director Resource Types}
-\addcontentsline{toc}{subsection}{Director Resource Types}
Director resource type may be one of the following:
information messages are to be sent or logged.
\end{itemize}
-\subsection*{The Director Resource}
+\section{The Director Resource}
\label{DirectorResource4}
\index[general]{Director Resource}
\index[general]{Resource!Director}
-\addcontentsline{toc}{subsection}{Director Resource}
The Director resource defines the attributes of the Directors running on the
network. In the current implementation, there is only a single Director
\end{verbatim}
\normalsize
-\subsection*{The Job Resource}
+\section{The Job Resource}
\label{JobResource}
\index[general]{Resource!Job}
\index[general]{Job Resource}
-\addcontentsline{toc}{subsection}{Job Resource}
The Job resource defines a Job (Backup, Restore, ...) that Bacula must
perform. Each Job resource definition contains the name of a Client and
\end{verbatim}
\normalsize
-\subsection*{The JobDefs Resource}
+\section{The JobDefs Resource}
\label{JobDefsResource}
\index[general]{JobDefs Resource}
\index[general]{Resource!JobDefs}
-\addcontentsline{toc}{subsection}{JobDefs Resource}
The JobDefs resource permits all the same directives that can appear in a Job
resource. However, a JobDefs resource does not create a Job, rather it can be
resource which contains the defaults. Only the changes from the defaults need to
be mentioned in each Job.
-\subsection*{The Schedule Resource}
+\section{The Schedule Resource}
\label{ScheduleResource}
\index[general]{Resource!Schedule}
\index[general]{Schedule Resource}
-\addcontentsline{toc}{subsection}{Schedule Resource}
The Schedule resource provides a means of automatically scheduling a Job as
well as the ability to override the default Level, Pool, Storage and Messages
\end{verbatim}
\normalsize
-\subsection*{Technical Notes on Schedules}
+\section{Technical Notes on Schedules}
\index[general]{Schedules!Technical Notes on}
\index[general]{Technical Notes on Schedules}
-\addcontentsline{toc}{subsection}{Technical Notes on Schedules}
Internally Bacula keeps a schedule as a bit mask. There are six masks and a
minute field to each schedule. The masks are hour, day of the month (mday),
\input{fileset}
-\subsection*{The Client Resource}
+\section{The Client Resource}
\label{ClientResource2}
\index[general]{Resource!Client}
\index[general]{Client Resource}
-\addcontentsline{toc}{subsection}{Client Resource}
The Client resource defines the attributes of the Clients that are served by
this Director; that is the machines that are to be backed up. You will need
\end{verbatim}
\normalsize
-\subsection*{The Storage Resource}
+\section{The Storage Resource}
\label{StorageResource2}
\index[general]{Resource!Storage}
\index[general]{Storage Resource}
-\addcontentsline{toc}{subsection}{Storage Resource}
The Storage resource defines which Storage daemons are available for use by
the Director.
\end{verbatim}
\normalsize
-\subsection*{The Pool Resource}
+\section{The Pool Resource}
\label{PoolResource}
\index[general]{Resource!Pool}
\index[general]{Pool Resource}
-\addcontentsline{toc}{subsection}{Pool Resource}
The Pool resource defines the set of storage Volumes (tapes or files) to be
used by Bacula to write the data. By configuring different Pools, you can
\end{verbatim}
\normalsize
-\subsubsection*{The Scratch Pool}
-\addcontentsline{toc}{subsection}{Scratch Pool}
+\subsection{The Scratch Pool}
\index[general]{Scratch Pool}
In general, you can give your Pools any name you wish, but there is one
important restriction: the Pool named {\bf Scratch}, if it exists behaves
the Pool currently being used by the job.
-\subsection*{The Catalog Resource}
+\section{The Catalog Resource}
\label{CatalogResource}
\index[general]{Resource!Catalog}
\index[general]{Catalog Resource}
-\addcontentsline{toc}{subsection}{Catalog Resource}
The Catalog Resource defines what catalog to use for the current job.
Currently, Bacula can only handle a single database server (SQLite, MySQL,
\end{verbatim}
\normalsize
-\subsection*{The Messages Resource}
+\section{The Messages Resource}
\label{MessagesResource2}
\index[general]{Resource!Messages}
\index[general]{Messages Resource}
-\addcontentsline{toc}{subsection}{Messages Resource}
For the details of the Messages Resource, please see the
\ilink{Messages Resource Chapter}{_ChapterStart15} of this
manual.
-\subsection*{The Console Resource}
+\section{The Console Resource}
\label{ConsoleResource1}
\index[general]{Console Resource}
\index[general]{Resource!Console}
-\addcontentsline{toc}{subsection}{Console Resource}
As of Bacula version 1.33 and higher, there are three different kinds of
consoles, which the administrator or user can use to interact with the
\ilink{Console Configuration}{_ChapterStart36} chapter of this
manual.
-\subsection*{The Counter Resource}
+\section{The Counter Resource}
\label{CounterResource}
\index[general]{Resource!Counter}
\index[general]{Counter Resource}
-\addcontentsline{toc}{subsection}{Counter Resource}
The Counter Resource defines a counter variable that can be accessed by
variable expansion used for creating Volume labels with the {\bf LabelFormat}
redefined each time that Bacula is started.
\end{description}
-\subsection*{Example Director Configuration File}
+\section{Example Director Configuration File}
\label{SampleDirectorConfiguration}
\index[general]{File!Example Director Configuration}
\index[general]{Example Director Configuration File}
-\addcontentsline{toc}{subsection}{Example Director Configuration File}
An example Director configuration file might be the following:
%%
%%
-\section*{Basic Volume Management}
+\chapter{Basic Volume Management}
\label{_ChapterStart39}
\index[general]{Basic Volume Management}
\index[general]{Management!Basic Volume}
\index[general]{Disk Volumes}
-\addcontentsline{toc}{section}{Basic Volume Management}
This chapter presents most all the features needed to do Volume management.
Most of the concepts apply equally well to both tape and disk Volumes.
either disk or tape volumes.
\label{Concepts}
-\subsection*{Key Concepts and Resource Records}
+\section{Key Concepts and Resource Records}
\index[general]{Key Concepts and Resource Records }
\index[general]{Records!Key Concepts and Resource }
-\addcontentsline{toc}{subsection}{Key Concepts and Resource Records}
Getting Bacula to write to disk rather than tape in the simplest case is
rather easy. In the Storage daemon's configuration file, you simply define an
at the end of this chapter under \ilink{Concurrent Disk
Jobs}{ConcurrentDiskJobs}.
-\subsubsection*{Pool Options to Limit the Volume Usage}
+\subsection{Pool Options to Limit the Volume Usage}
\index[general]{Usage!Pool Options to Limit the Volume }
\index[general]{Pool Options to Limit the Volume Usage }
-\addcontentsline{toc}{subsubsection}{Pool Options to Limit the Volume Usage}
Some of the options you have, all of which are specified in the Pool record,
are:
so no weekend backups will be done until Monday morning.
\label{AutomaticLabeling}
-\subsubsection*{Automatic Volume Labeling}
+\subsection{Automatic Volume Labeling}
\index[general]{Automatic Volume Labeling }
\index[general]{Labeling!Automatic Volume }
-\addcontentsline{toc}{subsubsection}{Automatic Volume Labeling}
Use of the above records brings up another problem -- that of labeling your
Volumes. For automated disk backup, you can either manually label each of your
records.
\label{Recycling1}
-\subsubsection*{Restricting the Number of Volumes and Recycling}
+\subsection{Restricting the Number of Volumes and Recycling}
\index[general]{Recycling!Restricting the Number of Volumes and }
\index[general]{Restricting the Number of Volumes and Recycling }
-\addcontentsline{toc}{subsubsection}{Restricting the Number of Volumes and
Recycling}
Automatic labeling discussed above brings up the problem of Volume management.
prune the specified volume.
\label{ConcurrentDiskJobs}
-\subsection*{Concurrent Disk Jobs}
+\section{Concurrent Disk Jobs}
\index[general]{Concurrent Disk Jobs}
-\addcontentsline{toc}{subsection}{Concurrent Disk Jobs}
Above, we discussed how you could have a single device named {\bf
FileBackup} that writes to volumes in {\bf /home/bacula/backups}.
You can, in fact, run multiple concurrent jobs using the
\label{Example2}
-\subsection*{An Example}
+\section{An Example}
\index[general]{Example }
-\addcontentsline{toc}{subsection}{Example}
The following example is not very practical, but can be used to demonstrate
the proof of concept in a relatively short period of time. The example
monthly cycle (take care about the amount of archive disk space used).
\label{MultipleDisks}
-\subsection*{Backing up to Multiple Disks}
+\section{Backing up to Multiple Disks}
\index[general]{Disks!Backing up to Multiple }
\index[general]{Backing up to Multiple Disks }
-\addcontentsline{toc}{subsection}{Backing up to Multiple Disks}
Bacula can, of course, use multiple disks, but in general, each disk must be a
separate Device specification in the Storage daemon's conf file, and you must
Storage resource in the Director when doing a restore.
\label{MultipleClients}
-\subsection*{Considerations for Multiple Clients}
+\section{Considerations for Multiple Clients}
\index[general]{Clients!Considerations for Multiple }
\index[general]{Multiple Clients}
-\addcontentsline{toc}{subsection}{Considerations for Multiple Clients}
If we take the above example and add a second Client, here are a few
considerations:
%%
%%
-\section*{DVD Volumes}
+\chapter{DVD Volumes}
\label{_DVDChapterStart}
\index[general]{DVD Volumes}
\index[general]{Writing DVDs}
\index[general]{DVD Writing}
\index[general]{Volumes!DVD}
-\addcontentsline{toc}{section}{DVD Volumes}
Bacula allows you to specify that you want to write to DVD. However,
this feature is implemented only in version 1.37 or later.
use to control the DVD writing.
\label{DVDdirectives}
-\subsection*{DVD Specific SD Directives}
+\section{DVD Specific SD Directives}
\index[general]{Directives!DVD}
\index[general]{DVD Specific SD Directives }
-\addcontentsline{toc}{subsection}{DVD Specific SD Directives}
The following directives are added to the Storage daemon's
Device resource.
{\bf /dev/dvd} depending on your system. It will not be a name such
as {\bf /mnt/cdrom}.
-\subsection*{Edit Codes for DVD Directives}
+\section{Edit Codes for DVD Directives}
\index[general]{Directives!DVD Edit Codes}
\index[general]{Edit Codes for DVD Directives }
-\addcontentsline{toc}{subsection}{Edit Codes for DVD Directives}
Before submitting the {\bf Mount Command}, {\bf Unmount Command},
{\bf Write Part Command}, or {\bf Free Space Command} directives
-\subsection*{DVD Specific Director Directives}
+\section{DVD Specific Director Directives}
\index[general]{Directives!DVD}
\index[general]{DVD Specific Director Directives }
-\addcontentsline{toc}{subsection}{DVD Specific Director Directives}
The following directives are added to the Director's Job resource.
\label{DVDpoints}
-\subsection*{Other Points}
+\section{Other Points}
\index[general]{Points!Other }
\index[general]{Other Points }
-\addcontentsline{toc}{subsection}{Other Points}
\begin{itemize}
\item Please be sure that you have any automatic DVD mounting
%%
%%
+% TODO: maybe merge all this FAQ in with the appropriate section?
+% TODO: and use detailed indexing to help reader
-\section*{Bacula Frequently Asked Questions}
+\chapter{Bacula Frequently Asked Questions}
\label{_ChapterStart48}
\index[general]{Questions!Bacula Frequently Asked }
\index[general]{Bacula Frequently Asked Questions }
-\addcontentsline{toc}{section}{Bacula Frequently Asked Questions}
These are questions that have been submitted over time by the
Bacula users. The following
\begin{description}
\label{what}
-\subsection*{What is Bacula?}
+\section{What is Bacula?}
\item [What is {\bf Bacula}? ]
\index[general]{What is Bacula? }
{\bf Bacula} is a network backup and restore program.
-\subsection*{Does Bacula support Windows?}
+\section{Does Bacula support Windows?}
\item [Does Bacula support Windows?]
\index[general]{Does Bacula support Windows? }
Yes, Bacula compiles and runs on Windows machines (Win98, WinMe, WinXP,
\label{lang}
-\subsection*{What language is Bacula written in?}
+\section{What language is Bacula written in?}
\item [What language is Bacula written in?]
\index[general]{What language is Bacula written in? }
It is written in C++, but it is mostly C code using only a limited set of
adding a larger subset of C++.
\label{run}
-\subsection*{On what machines does Bacula run?}
+\section{On what machines does Bacula run?}
\item [On what machines does Bacula run? ]
\index[general]{On what machines does Bacula run? }
{\bf Bacula} builds and executes on Red Hat Linux (versions RH7.1-RHEL
\label{stable}
-\subsection*{Is Bacula Stable?}
+\section{Is Bacula Stable?}
\item [Is Bacula Stable? ]
\index[general]{Is Bacula Stable? }
Yes, it is remarkably stable, but remember, there are still a lot of
\end{enumerate}
\label{AuthorizationErrors}
-\subsection*{I'm Getting Authorization Errors. What is Going On? }
+\section{I'm Getting Authorization Errors. What is Going On? }
\item [I'm Getting Authorization Errors. What is Going On? ]
\index[general]{Authorization Errors}
\index[general]{Concurrent Jobs}
file that is not permitting access to the site trying to connect.
\label{AccessProblems}
-\subsection*{Bacula Runs Fine but Cannot Access a Client on a Different Machine.
+\section{Bacula Runs Fine but Cannot Access a Client on a Different Machine.
Why? }
\item [Bacula Runs Fine but Cannot Access a Client on a Different Machine.
Why? ]
\end{itemize}
\label{startover}
-\subsection*{My Catalog is Full of Test Runs, How Can I Start Over?}
+\section{My Catalog is Full of Test Runs, How Can I Start Over?}
\item [My Catalog is Full of Test Runs, How Can I Start Over? ]
\index[general]{My Catalog is Full of Test Runs, How Can I Start Over? }
If you are using MySQL do the following:
where you need to adjust the device name for your system.
\label{restorehang}
-\subsection*{I Run a Restore Job and Bacula Hangs. What do I do?}
+\section{I Run a Restore Job and Bacula Hangs. What do I do?}
\item [I Run a Restore Job and Bacula Hangs. What do I do?]
\index[general]{I Run a Restore Job and Bacula Hangs. What do I do? }
On Bacula version 1.25 and prior, it expects you to have the correct
doubt, do a second {\bf mount}, it won't cause any harm.
\label{windowstart}
-\subsection*{I Cannot Get My Windows Client to Start Automatically? }
+\section{I Cannot Get My Windows Client to Start Automatically? }
\item [I Cannot Get My Windows Client to Start Automatically? ]
\index[general]{Windows Auto Start}
You are probably having one of two problems: either the Client is dying
instructions}{_ChapterStart7} in this manual.
\label{windowsdie}
-\subsection*{My Windows Client Immediately Dies When I Start It}
+\section{My Windows Client Immediately Dies When I Start It}
\item [My Windows Client Immediately Dies When I Start It]
\index[general]{Windows Client Dies}
The most common problem is either that the configuration file is not where
system.
\label{nobackup}
-\subsection*{My backups are not working on my Windows
+\section{My backups are not working on my Windows
Client. What should I do?}
\item [I didn't realize that the backups were not working on my Windows
Client. What should I do? ]
FAQ for how to do so.
\label{sched}
-\subsection*{All my Jobs are scheduled for the same time. Will this cause
+\section{All my Jobs are scheduled for the same time. Will this cause
problems?}
\item [All my Jobs are scheduled for the same time. Will this cause
problems? ]
that you leave this set to {\bf 1} for the Director.
\label{disk}
-\subsection*{Can Bacula Backup My System To Files instead of Tape?}
+\section{Can Bacula Backup My System To Files instead of Tape?}
\item [Can Bacula Backup My System To Files instead of Tape? ]
\index[general]{Backup to Disk}
Yes, in principle, Bacula can backup to any storage medium as long as
management. It is, however, still quite a good chapter to read.
\label{bigfiles}
-\subsection*{Can Bacula Backup and Restore Files Greater than 2 Gigabytes?}
+\section{Can Bacula Backup and Restore Files Greater than 2 Gigabytes?}
\item [Can Bacula Backup and Restore Files Greater than 2 Gigabytes in
Size? ]
\index[general]{Large file support}
system supported by Bacula can handle files larger than 2 Gigabytes.
\label{cancel}
-\subsection*{I want to stop a job. Is
- there a better way than {\bf ./bacula stop} to stop it?}
+\section{I want to stop a job.}
+%% Is there a better way than "./bacula stop" to stop it?}
\item [I Started A Job then Decided I Really Did Not Want to Run It. Is
there a better way than {\bf ./bacula stop} to stop it?]
\index[general]{Cancelling jobs}
do a {\bf mount} command before it will be canceled.
\label{trademark}
-\subsection*{Why have You Trademarked the Name
- Bacula\raisebox{.6ex}{{\footnotesize \textsuperscript{\textregistered}}}?}
+\section{Why have You Trademarked the Name Bacula?}
\item [Why have You Trademarked the Name
Bacula\raisebox{.6ex}{{\footnotesize \textsuperscript{\textregistered}}}?]
\index[general]{Bacula Trademark}
in all respects with the program defined here.
\label{docversion}
-\subsection*{Why is Your Online Document for Version 1.39 but the Released Version is 1.38?}
+\section{Why is Your Online Document for Version 1.39 but the Released Version is 1.38?}
\item [Why is Your Online Document for Version 1.39 of Bacula when the
Currently Release Version is 1.38?]
\index[general]{Multiple manuals}
manual.
\label{sure}
-\subsection*{Does Bacula really save and restore all files?}
+\section{Does Bacula really save and restore all files?}
\item [How Can I Be Sure that Bacula Really Saves and Restores All Files? ]
\index[general]{Checking Restores}
It is really quite simple, but took me a while to figure
of the same type.
\label{upgrade}
-\subsection*{I want an Incremental but Bacula runs it as a Full backup. Why?}
+\section{I want an Incremental but Bacula runs it as a Full backup. Why?}
\item [I did a Full backup last week, but now in running an Incremental,
Bacula says it did not find a FULL backup, so it did a FULL backup. Why?]
\index[general]{FULL backup not found}
or selecting a FileSet. For more on backup levels see below.
\label{filenamelengths}
-\subsection*{Do you really handle unlimited path lengths?}
+\section{Do you really handle unlimited path lengths?}
\item [How Can You Claim to Handle Unlimited Path and Filename Lengths
when All Other Programs Have Fixed Limits?]
\index[general]{Path and Filename Lengths}
restriction in later versions of Bacula.
\label{unique}
-\subsection*{What Is the Really Unique Feature of Bacula?}
+\section{What Is the Really Unique Feature of Bacula?}
\item [What Is the Really Unique Feature of Bacula?]
\index[general]{Unique Feature of Bacula}
Well, it is hard to come up with unique features when backup programs
implemented, this will enormously reduce tape usage.
\label{sequence}
-\subsection*{How can I force one job to run after another?}
+\section{How can I force one job to run after another?}
\item [If I Run Multiple Simultaneous Jobs, How Can I Force One
Particular Job to Run After Another Job? ]
\index[general]{Multiple Simultaneous Jobs}
\ilink{the Priority record}{Priority} in the Job resource.
\label{nomail}
-\subsection*{I Am Not Getting Email Notification, What Can I Do? }
+\section{I Am Not Getting Email Notification, What Can I Do? }
\item [I Am Not Getting Email Notification, What Can I Do? ]
\index[general]{No Email Notification}
The most common problem is that you have not specified a fully qualified
chapter}{bsmtp} of this manual.
\label{periods}
-\subsection*{My retention periods don't work}
+\section{My retention periods don't work}
\item [I Change Recycling, Retention Periods, or File Sizes in my Pool
Resource and they Still Don't Work.]
\index[general]{Recycling}
program.
\label{CompressionNotWorking}
-\subsection*{Why aren't my files compressed?}
+\section{Why aren't my files compressed?}
\item [I Have Configured Compression On, But None of My Files Are
Compressed. Why?]
\index[general]{Compression}
\end{itemize}
\label{LevelChanging}
-\subsection*{Incremental backups are not working}
+\section{Incremental backups are not working}
\item [Bacula is Not Doing the Right Thing When I Request an Incremental
Backup. Why?]
\index[general]{Incremental backups}
there is not much we can do.
\label{WaitForever}
-\subsection*{I am waiting forever for a backup of an offsite machine}
+\section{I am waiting forever for a backup of an offsite machine}
\item [I am Backing Up an Offsite Machine with an Unreliable Connection.
The Director Waits Forever for the Client to Contact the SD. What Can I
Do?]
\end{itemize}
\label{sshHanging}
-\subsection*{SSH hangs forever after starting Bacula}
+\section{SSH hangs forever after starting Bacula}
\item [When I ssh into a machine and start Bacula then attempt to exit,
ssh hangs forever.]
\index[general]{ssh hangs}
and likewise for the other daemons.
\label{RetentionPeriods}
-\subsection*{I'm confused by retention periods}
+\section{I'm confused by retention periods}
\item [I'm confused by the different Retention periods: File Retention,
Job Retention, Volume Retention. Why are there so many?]
\index[general]{Retention Periods}
year, just in case.
\label{MaxVolumeSize}
-\subsection*{MaxVolumeSize is ignored}
+\section{MaxVolumeSize is ignored}
\item [Why Does Bacula Ignore the MaxVolumeSize Set in my Pool?]
\index[general]{MaxVolumeSize}
The MaxVolumeSize that Bacula uses comes from the Media record, so most
to change it.
\label{ConnectionRefused}
-\subsection*{I get a Connection refused when connecting to my Client}
+\section{I get a Connection refused when connecting to my Client}
\item [In connecting to my Client, I get "ERR:Connection Refused. Packet
Size too big from File daemon:192.168.1.4:9102" Why?]
\index[general]{ERR:Connection Refused}
This will cause the FD to write a file {\bf bacula.trace} in the current
directory, which you can examine to determine the problem.
-\subsection*{Long running jobs die with Pipe Error}
+\section{Long running jobs die with Pipe Error}
\item [During long running jobs my File daemon dies with Pipe Error, or
some other communications error. Why?]
\index[general]{Communications Errors}
This will ensure that any Bacula traffic will not get terminated because
of high usage rates.
-\subsection*{How to I tell the Job which Volume to use?}
+\section{How to I tell the Job which Volume to use?}
\item[I can't figure out how to tell the job which volume to use]
\index[general]{What tape to mount}
This is an interesting statement. I now see that a number of people new to
-%---------------------------------------------------------------------
-\section*{GNU Free Documentation License}
+% TODO: maybe get rid of centering
+
+\chapter{GNU Free Documentation License}
\index[general]{GNU Free Documentation License}
\index[general]{License!GNU Free Documentation}
-\addcontentsline{toc}{section}{GNU Free Documentation License}
-%\label{label_fdl}
+\label{label_fdl}
\begin{center}
\begin{center}
{\Large\bf 1. APPLICABILITY AND DEFINITIONS}
-\addcontentsline{toc}{section}{1. APPLICABILITY AND DEFINITIONS}
\end{center}
This License applies to any manual or other work, in any medium, that
\begin{center}
{\Large\bf 2. VERBATIM COPYING}
-\addcontentsline{toc}{section}{2. VERBATIM COPYING}
\end{center}
You may copy and distribute the Document in any medium, either
\begin{center}
{\Large\bf 3. COPYING IN QUANTITY}
-\addcontentsline{toc}{section}{3. COPYING IN QUANTITY}
\end{center}
\begin{center}
{\Large\bf 4. MODIFICATIONS}
-\addcontentsline{toc}{section}{4. MODIFICATIONS}
\end{center}
You may copy and distribute a Modified Version of the Document under
\begin{center}
{\Large\bf 5. COMBINING DOCUMENTS}
-\addcontentsline{toc}{section}{5. COMBINING DOCUMENTS}
\end{center}
\begin{center}
{\Large\bf 6. COLLECTIONS OF DOCUMENTS}
-\addcontentsline{toc}{section}{6. COLLECTIONS OF DOCUMENTS}
\end{center}
You may make a collection consisting of the Document and other documents
\begin{center}
{\Large\bf 7. AGGREGATION WITH INDEPENDENT WORKS}
-\addcontentsline{toc}{section}{7. AGGREGATION WITH INDEPENDENT WORKS}
\end{center}
\begin{center}
{\Large\bf 8. TRANSLATION}
-\addcontentsline{toc}{section}{8. TRANSLATION}
\end{center}
\begin{center}
{\Large\bf 9. TERMINATION}
-\addcontentsline{toc}{section}{9. TERMINATION}
\end{center}
\begin{center}
{\Large\bf 10. FUTURE REVISIONS OF THIS LICENSE}
-\addcontentsline{toc}{section}{10. FUTURE REVISIONS OF THIS LICENSE}
\end{center}
\begin{center}
{\Large\bf ADDENDUM: How to use this License for your documents}
-\addcontentsline{toc}{section}{ADDENDUM: How to use this License for your documents}
+% TODO: this is too long for table of contents
\end{center}
To use this License in a document you have written, include a copy of
%%
%%
-\section*{Client/File daemon Configuration}
+\chapter{Client/File daemon Configuration}
\label{_ChapterStart25}
\index[general]{Configuration!Client/File daemon }
\index[general]{Client/File daemon Configuration }
-\addcontentsline{toc}{section}{Client/File daemon Configuration}
-\subsection*{General}
+\section{General}
\index[general]{General }
-\addcontentsline{toc}{subsection}{General}
The Client (or File Daemon) Configuration is one of the simpler ones to
specify. Generally, other than changing the Client name so that error messages
information messages are to be sent.
\end{itemize}
-\subsection*{The Client Resource}
+\section{The Client Resource}
\label{ClientResource}
\index[general]{Resource!Client }
\index[general]{Client Resource }
-\addcontentsline{toc}{subsection}{Client Resource}
The Client Resource (or FileDaemon) resource defines the name of the Client
(as used by the Director) as well as the port on which the Client listens for
\end{verbatim}
\normalsize
-\subsection*{The Director Resource}
+\section{The Director Resource}
\label{DirectorResource}
\index[general]{Director Resource }
\index[general]{Resource!Director }
-\addcontentsline{toc}{subsection}{Director Resource}
The Director resource defines the name and password of the Directors that are
permitted to contact this Client.
\end{verbatim}
\normalsize
-\subsection*{The Message Resource}
+\section{The Message Resource}
\label{MessagesResource}
\index[general]{Message Resource }
\index[general]{Resource!Message }
-\addcontentsline{toc}{subsection}{Message Resource}
Please see the
\ilink{Messages Resource}{_ChapterStart15} Chapter of this
There must be at least one Message resource in the Client configuration file.
-\subsection*{Example Client Configuration File}
+\section{Example Client Configuration File}
\label{SampleClientConfiguration}
\index[general]{Example Client Configuration File }
\index[general]{File!Example Client Configuration }
-\addcontentsline{toc}{subsection}{Example Client Configuration File}
An example File Daemon configuration file might be the following:
-%
%%
-\subsection*{The FileSet Resource}
+\chapter{The FileSet Resource}
\label{FileSetResource}
\index[general]{Resource!FileSet}
\index[general]{FileSet Resource}
-\addcontentsline{toc}{subsection}{FileSet Resource}
The FileSet resource defines what files are to be included or excluded in a
backup job. A {\bf FileSet} resource is required for each backup Job. It
matching.
\end{itemize}
-\subsubsection*{FileSet Examples}
+\section{FileSet Examples}
\index[general]{Examples!FileSet }
\index[general]{FileSet Examples}
-\addcontentsline{toc}{subsection}{FileSet Examples}
The following is an example of a valid FileSet resource definition. Note,
the first Include pulls in the contents of the file {\bf /etc/backup.list}
\end{verbatim}
\normalsize
-\subsubsection*{Backing up Raw Partitions}
+\section{Backing up Raw Partitions}
\index[general]{Backing up!Partitions }
\index[general]{Backing up Raw Partitions }
-\addcontentsline{toc}{subsection}{Backing up Raw Partitions}
The following FileSet definition will backup a raw partition:
RunBeforeJob} directive.
-\subsubsection*{Excluding Files and Directories}
+\section{Excluding Files and Directories}
\index[general]{Directories!Excluding Files and }
\index[general]{Excluding Files and Directories }
-\addcontentsline{toc}{subsubsection}{Excluding Files and Directories}
You may also include full filenames or directory names in addition to using
wild-cards and {\bf Exclude=yes} in the Options resource as specified above by
\normalsize
\label{win32}
-\subsubsection*{Windows FileSets}
+\section{Windows FileSets}
\index[general]{Windows FileSets }
\index[general]{FileSets!Windows }
-\addcontentsline{toc}{subsection}{Windows FileSets}
If you are entering Windows file names, the directory path may be preceded by
the drive and a colon (as in c:). However, the path separators must be
specified in Unix convention (i.e. forward slash (/)). If you wish to include
\paragraph*{A Windows Example FileSet}
\index[general]{FileSet!Windows Example }
\index[general]{Windows Example FileSet }
-\addcontentsline{toc}{paragraph}{Windows Example FileSet}
The following example was contributed by Russell Howe. Please note that
for presentation purposes, the lines beginning with Data and Internet
\paragraph*{Windows NTFS Naming Considerations}
\index[general]{Windows NTFS Naming Considerations }
\index[general]{Considerations!Windows NTFS Naming }
-\addcontentsline{toc}{paragraph}{Windows NTFS Naming Considerations}
NTFS filenames containing Unicode characters should now be supported
as of version 1.37.30 or later.
-\subsubsection*{Testing Your FileSet}
+\section{Testing Your FileSet}
\index[general]{FileSet!Testing Your }
\index[general]{Testing Your FileSet }
-\addcontentsline{toc}{subsection}{Testing Your FileSet}
If you wish to get an idea of what your FileSet will really backup or if your
exclusion rules will work correctly, you can test it by using the {\bf
%%
%%
-\section*{Dealing with Firewalls}
+\chapter{Dealing with Firewalls}
\label{_ChapterStart26}
\index[general]{Dealing with Firewalls }
\index[general]{Firewalls!Dealing with }
-\addcontentsline{toc}{section}{Dealing with Firewalls}
If you have a firewall or a DMZ installed on your computer, you may experience
difficulties contacting one or more of the Clients to back them up. This is
especially true if you are trying to backup a Client across the Internet.
-\subsection*{Technical Details}
+\section{Technical Details}
\index[general]{Technical Details }
\index[general]{Details!Technical }
-\addcontentsline{toc}{subsection}{Technical Details}
If you are attempting to do this, the sequence of network events in Bacula to
do a backup are the following:
connections on ports 9102 and 9103 on your server and 9103 on your client.
Thanks to Raymond Norton for this tip.
-\subsection*{A Concrete Example}
+\section{A Concrete Example}
\index[general]{Example!Concrete }
\index[general]{Concrete Example }
-\addcontentsline{toc}{subsection}{Concrete Example}
The following discussion was originally written by
Jesse Guardiani because he has 'internal' and 'external' requiring the
\end{verbatim}
\normalsize
-\subsubsection*{The Bacula Configuration Files for the Above}
+\subsection{The Bacula Configuration Files for the Above}
\index[general]{Above!Bacula Configuration Files for the }
\index[general]{Bacula Configuration Files for the Above }
-\addcontentsline{toc}{subsubsection}{Bacula Configuration Files for the Above}
server-sd manages a 4 tape AIT autoloader. All of my backups are written to
server-sd. I have just *one* Device resource in my server-sd.conf file:
resources out of the above server-dir.conf examples because they are not
pertinent to the discussion.
-\subsubsection*{How Does It Work?}
+\subsection{How Does It Work?}
\index[general]{How Does It Work? }
\index[general]{Work!How Does It }
-\addcontentsline{toc}{subsubsection}{How Does It Work?}
If I want to run a backup of private1.int.mydomain.tld and store that backup
using server-sd then my understanding of the order of events is this:
files.
\end{enumerate}
-\subsubsection*{Important Note}
+\subsection{Important Note}
\index[general]{Important Note }
\index[general]{Note!Important }
-\addcontentsline{toc}{subsubsection}{Important Note}
In order for the above 'Public1-Backup' Job to succeed,
firewall.mydomain.tld:9103 MUST be forwarded using the firewall's
configuration software to server.int.mydomain.tld:9103. Some firewalls call
this 'Server Publication'. Others may call it 'Port Forwarding'.
-\subsubsection*{Firewall Problems}
+\subsection{Firewall Problems}
\index[general]{Firewall Problems}
\index[general]{Problems!Firewalls}
-\addcontentsline{toc}{subsubsection}{Firewall Problems}
Either a firewall or a router may decide to timeout and terminate
open connections if they are not active for a short time. By Internet
standards the period should be two hours, and should be indefinitely
%%
%%
-\section*{What is Bacula?}
+\chapter{What is Bacula?}
\label{_ChapterStart41}
\index[general]{Bacula!What is }
\index[general]{What is Bacula? }
-\addcontentsline{toc}{section}{What is Bacula?}
{\bf Bacula} is a set of computer programs that permits you (or the system
administrator) to manage backup, recovery, and verification of computer data
design, Bacula is scalable from small single computer systems to systems
consisting of hundreds of computers located over a large network.
-\subsection*{Who Needs Bacula?}
+\section{Who Needs Bacula?}
\index[general]{Who Needs Bacula? }
\index[general]{Bacula!Who Needs }
-\addcontentsline{toc}{subsection}{Who Needs Bacula?}
If you are currently using a program such as {\bf tar}, {\bf dump}, or {\bf
bru} to backup your computer data, and you would like a network solution, more
Bacula, which provides many of the same features, and is free software
available under the GNU Version 2 software license.
-\subsection*{Bacula Components or Services}
+\section{Bacula Components or Services}
\index[general]{Bacula Components or Services }
\index[general]{Services!Bacula Components or }
-\addcontentsline{toc}{subsection}{Bacula Components or Services}
Bacula is made up of the following five major components or services:
configured and running: the Director daemon, the File daemon, the Storage
daemon, and MySQL, PostgreSQL or SQLite.
-\subsection*{Bacula Configuration}
+\section{Bacula Configuration}
\index[general]{Configuration!Bacula }
\index[general]{Bacula Configuration }
-\addcontentsline{toc}{subsection}{Bacula Configuration}
In order for Bacula to understand your system, what clients you want backed
up, and how, you must create a number of configuration files containing
\addcontentsline{lof}{figure}{Bacula Objects}
\includegraphics{./bacula-objects.eps}
-\subsection*{Conventions Used in this Document}
+\section{Conventions Used in this Document}
\index[general]{Conventions Used in this Document }
\index[general]{Document!Conventions Used in this }
-\addcontentsline{toc}{subsection}{Conventions Used in this Document}
{\bf Bacula} is in a state of evolution, and as a consequence, this manual
will not always agree with the code. If an item in this manual is preceded by
CVS) that may contain features not in the released version. Just the same, it
generally lags behind the code a bit.
-\subsection*{Quick Start}
+\section{Quick Start}
\index[general]{Quick Start }
\index[general]{Start!Quick }
-\addcontentsline{toc}{subsection}{Quick Start}
To get Bacula up and running quickly, we recommend that you first scan the
Terminology section below, then quickly review the next chapter entitled
chapter on
\ilink{ Running Bacula}{_ChapterStart1}.
-\subsection*{Terminology}
+\section{Terminology}
\index[general]{Terminology }
-\addcontentsline{toc}{subsection}{Terminology}
To facilitate communication about this project, we provide here the
definitions of the terminology that we use.
wrong one).
\end{description}
-\subsection*{What Bacula is Not}
+\section{What Bacula is Not}
\index[general]{What Bacula is Not}
-\addcontentsline{toc}{subsection}{What Bacula is Not}
{\bf Bacula} is a backup, restore and verification program and is not a
complete disaster recovery system in itself, but it can be a key part of one
the necessary files (without using the catalog or manually searching for the
files to restore).
-\subsection*{Interactions Between the Bacula Services}
+\section{Interactions Between the Bacula Services}
\index[general]{Interactions Between the Bacula Services}
\index[general]{Services!Interactions Between the Bacula}
-\addcontentsline{toc}{subsection}{Interactions Between the Bacula Services}
The following block diagram shows the typical interactions between the Bacula
Services for a backup job. Each block represents in general a separate process
\label{_ChapterStart20}
\index[general]{GNU General Public License }
\index[general]{License!GNU General Public }
-\addcontentsline{toc}{section}{GNU General Public License}
\elink{image of a Philosophical
GNU}{http://www.gnu.org/graphics/philosophicalgnu.html}
\end{itemize}
-\subsection*{Table of Contents}
+\section{Table of Contents}
\index[general]{Table of Contents }
\index[general]{Contents!Table of }
-\addcontentsline{toc}{subsection}{Table of Contents}
\begin{itemize}
\item
\end{itemize}
-\subsection*{
+\section{
\ilink{GNU GENERAL PUBLIC LICENSE}{TOC1}}
\label{SEC1}
\index[general]{GNU GENERAL PUBLIC LICENSE }
\index[general]{LICENSE!GNU GENERAL PUBLIC }
-\addcontentsline{toc}{subsection}{GNU GENERAL PUBLIC LICENSE}
Version 2, June 1991
\end{verbatim}
\normalsize
-\subsection*{
+\section{
\ilink{Preamble}{TOC2}}
\label{SEC2}
\index[general]{Preamble }
-\addcontentsline{toc}{subsection}{Preamble}
The licenses for most software are designed to take away your freedom to share
and change it. By contrast, the GNU General Public License is intended to
The precise terms and conditions for copying, distribution and modification
follow.
-\subsection*{
+\section{
\ilink{TERMS AND CONDITIONS}{TOC3}}
\label{SEC3}
\index[general]{CONDITIONS!TERMS AND }
\index[general]{TERMS AND CONDITIONS }
-\addcontentsline{toc}{subsection}{TERMS AND CONDITIONS}
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
END OF TERMS AND CONDITIONS
-\subsection*{
+\section{
\ilink{How to Apply These Terms to Your New Programs}{TOC4}}
\label{SEC4}
\index[general]{Programs!How to Apply These Terms to Your New }
\index[general]{How to Apply These Terms to Your New Programs }
-\addcontentsline{toc}{subsection}{How to Apply These Terms to Your New
Programs}
If you develop a new program, and you want it to be of the greatest possible
%%
%%
-\section*{Installing Bacula}
+\chapter{Installing Bacula}
\label{_ChapterStart17}
\index[general]{Bacula!Installing}
\index[general]{Installing Bacula}
-\addcontentsline{toc}{section}{Installing Bacula}
-\subsection*{General}
+\section{General}
\index[general]{General}
-\addcontentsline{toc}{subsection}{General}
In general, you will need the Bacula source release, and if you want to run
a Windows client, you will need the Bacula Windows binary release.
rather than requiring you to find them on the Web, load them, and install
them.
-\subsection*{Source Release Files}
+\section{Source Release Files}
\index[general]{Source Files}
\index[general]{Release Files}
-\addcontentsline{toc}{subsection}{Source Release File}
Beginning with Bacula 1.38.0, the source code has been broken into
four separate tar files each corresponding to a different module in
the Bacula CVS. The released files are:
\end{description}
\label{upgrading1}
-\subsection*{Upgrading Bacula}
+\section{Upgrading Bacula}
\index[general]{Bacula!Upgrading}
\index[general]{Upgrading Bacula}
-\addcontentsline{toc}{subsection}{Upgrading Bacula}
If you are upgrading from one Bacula version to another, you should first
carefully read the ReleaseNotes of all versions between your current
For additional information on upgrading, please see the \ilink{Upgrading Bacula
Versions}{upgrading} in the Tips chapter of this manual.
-\subsection*{Releases Numbering}
+\section{Releases Numbering}
\index[general]{Release Numbering}
\index[general]{Version Numbering}
-\addcontentsline{toc}{subsection}{Release Numbering}
Every Bacula release whether beta or production has a different number
as well as the date of the release build. The numbering system follows
traditional Open Source conventions in that it is of the form.
all either 1.38.x or 1.40.x but not mixed).
-\subsection*{Beta Releases}
+\section{Beta Releases}
\index[general]{Beta Releases}
-\addcontentsline{toc}{subsection}{Beta Releases}
Towards the end of the development cycle, which typically runs
one year from a major release to another, there will be several beta
releases of the development code prior to a production release.
\label{Dependency}
-\subsection*{Dependency Packages}
+\section{Dependency Packages}
\index[general]{Dependency Packages}
\index[general]{Packages!Dependency}
-\addcontentsline{toc}{subsection}{Dependency Packages}
As discussed above, we have combined a number of third party packages that
Bacula might need into the {\bf depkgs} release. You can,
are automatically downloaded by executing the appropriate scripts. See
src/win32/README.mingw32 for more details.
-\subsection*{Supported Operating Systems}
+\section{Supported Operating Systems}
\label{Systems}
\index[general]{Systems!Supported Operating}
\index[general]{Supported Operating Systems}
-\addcontentsline{toc}{subsection}{Supported Operating Systems}
Please see the
\ilink{ Supported Operating Systems}{SupportedOSes} section
of the QuickStart chapter of this manual.
-\subsection*{Building Bacula from Source}
+\section{Building Bacula from Source}
\label{Building}
\index[general]{Source!Building Bacula from}
\index[general]{Building Bacula from Source}
-\addcontentsline{toc}{subsection}{Building Bacula from Source}
The basic installation is rather simple.
(if using MySQL)
\ilink{Installing and Configuring MySQL Phase II}{mysql_phase2} or
create the Bacula PostgreSQL database and tables
- \ilink{Installing and Configuring PostgreSQL Phase
- II}{PostgreSQL_phase2} or alternatively if you are using
+ \ilink{Configuring PostgreSQL
+ II}{PostgreSQL_configure} or alternatively if you are using
SQLite
\ilink{Installing and Configuring SQLite Phase II}{phase2}.
are significant differences between systems, we can no longer afford to
support it.
-\subsection*{What Database to Use?}
+\section{What Database to Use?}
\label{DB}
\index[general]{What Database to Use?}
\index[general]{Use!What Database to}
-\addcontentsline{toc}{subsection}{What Database to Use?}
Before building Bacula you need to decide if you want to use SQLite, MySQL, or
PostgreSQL. If you are not already running MySQL or PostgreSQL, you might
\ilink{Installing and Configuring SQLite}{_ChapterStart33} chapter of
this manual.
-\subsection*{Quick Start}
+\section{Quick Start}
\index[general]{Quick Start}
\index[general]{Start!Quick}
-\addcontentsline{toc}{subsection}{Quick Start}
There are a number of options and important considerations given below
that you can skip for the moment if you have not had any problems building
non-root. If you have any problems or when you want to do a real installation,
come back to this chapter and read the details presented below.
-\subsection*{Configure Options}
+\section{Configure Options}
\label{Options}
\index[general]{Options!Configure}
\index[general]{Configure Options}
-\addcontentsline{toc}{subsection}{Configure Options}
The following command line options are available for {\bf configure} to
customize your installation.
Note, many other options are presented when you do a {\bf ./configure
\verb:--:help}, but they are not implemented.
-\subsection*{Recommended Options for most Systems}
-\index[general]{Systems!Recommended Options for most}
-\index[general]{Recommended Options for most Systems}
-\addcontentsline{toc}{subsection}{Recommended Options for most Systems}
+\section{Recommended Options for Most Systems}
+\index[general]{Systems!Recommended Options for Most}
+\index[general]{Recommended Options for Most Systems}
For most systems, we recommend starting with the following options:
running Bacula for the first time. See below for an example of how Kern does
it.
-\subsection*{Red Hat}
+\section{Red Hat}
\index[general]{Red Hat}
-\addcontentsline{toc}{subsection}{Red Hat}
Using SQLite:
in the Storage daemon first. The solution is to compile Bacula ensuring
that no optimization is turned on (normally it is -O2).
-\subsection*{Solaris}
+\section{Solaris}
\index[general]{Solaris}
-\addcontentsline{toc}{subsection}{Solaris}
To build Bacula from source, you will need the following installed on your
system (they are not by default): libiconv, gcc 3.3.2, stdc++, libgcc (for
\end{verbatim}
\normalsize
-\subsection*{FreeBSD}
+\section{FreeBSD}
\index[general]{FreeBSD}
-\addcontentsline{toc}{subsection}{FreeBSD}
Please see:
\elink{The FreeBSD Diary}{http://www.freebsddiary.org/bacula.php} for a
with FreeBSD native threads rather than LinuxTreads. Mixing the two will
probably not work.
-\subsection*{Win32}
+\section{Win32}
\index[general]{Win32}
-\addcontentsline{toc}{subsection}{Win32}
To install the binary Win32 version of the File daemon please see the
\ilink{Win32 Installation Chapter}{_ChapterStart7} in this document.
-\subsection*{Kern's Configure Script}
+\section{Kern's Configure Script}
\index[general]{Script!Kern's Configure}
\index[general]{Kern's Configure Script}
-\addcontentsline{toc}{subsection}{Kern's Configure Script}
The script that I use for building on my "production" Linux machines is:
\end{verbatim}
\normalsize
-\subsection*{Installing Bacula}
+\section{Installing Bacula}
\index[general]{Bacula!Installing}
\index[general]{Installing Bacula}
-\addcontentsline{toc}{subsection}{Installing Bacula}
Before setting up your configuration files, you will want to install Bacula in
its final location. Simply enter:
previously installed and run Bacula you will want to discard or ignore the
configuration files with the appended {\bf .new}.
-\subsection*{Building a File Daemon or Client}
+\section{Building a File Daemon or Client}
\index[general]{Client!Building a File Daemon or}
\index[general]{Building a File Daemon or Client}
-\addcontentsline{toc}{subsection}{Building a File Daemon or Client}
If you run the Director and the Storage daemon on one machine and you wish to
back up another machine, you must have a copy of the File daemon for that
client will be built.
\label{autostart}
-\subsection*{Auto Starting the Daemons}
+\section{Auto Starting the Daemons}
\index[general]{Daemons!Auto Starting the}
\index[general]{Auto Starting the Daemons}
-\addcontentsline{toc}{subsection}{Auto Starting the Daemons}
If you wish the daemons to be automatically started and stopped when your
system is booted (a good idea), one more step is necessary. First, the
\end{verbatim}
\normalsize
-\subsection*{Other Make Notes}
+\section{Other Make Notes}
\index[general]{Notes!Other Make}
\index[general]{Other Make Notes}
-\addcontentsline{toc}{subsection}{Other Make Notes}
To simply build a new executable in any directory, enter:
\label{monitor}
-\subsection*{Installing Tray Monitor}
+\section{Installing Tray Monitor}
\index[general]{Monitor!Installing Tray}
\index[general]{Installing Tray Monitor}
-\addcontentsline{toc}{subsection}{Installing Tray Monitor}
The Tray Monitor is already installed if you used the {\bf
\verb:--:enable-tray-monitor} configure option and ran {\bf make install}.
If it doesn't, follow the instructions below related to your environment or
window manager.
-\subsubsection*{GNOME}
+\subsection{GNOME}
\index[general]{GNOME}
-\addcontentsline{toc}{subsubsection}{GNOME}
System tray, or notification area if you use the GNOME terminology, has been
supported in GNOME since version 2.2. To activate it, right-click on one of
your panels, open the menu {\bf Add to this Panel}, then {\bf Utility} and
finally click on {\bf Notification Area}.
-\subsubsection*{KDE}
+\subsection{KDE}
\index[general]{KDE}
-\addcontentsline{toc}{subsubsection}{KDE}
System tray has been supported in KDE since version 3.1. To activate it,
right-click on one of your panels, open the menu {\bf Add}, then {\bf Applet}
and finally click on {\bf System Tray}.
-\subsubsection*{Other window managers}
+\subsection{Other window managers}
\index[general]{Managers!Other window}
\index[general]{Other window managers}
-\addcontentsline{toc}{subsubsection}{Other window managers}
Read the documentation to know if the Freedesktop system tray standard is
supported by your window manager, and if applicable, how to activate it.
-\subsection*{Modifying the Bacula Configuration Files}
+\section{Modifying the Bacula Configuration Files}
\index[general]{Modifying the Bacula Configuration Files}
\index[general]{Files!Modifying the Bacula Configuration}
-\addcontentsline{toc}{subsection}{Modifying the Bacula Configuration Files}
See the chapter
\ilink{Configuring Bacula}{_ChapterStart16} in this manual for
do not }
\index[general]{Bacula internal database is no longer supported, please do not
use it. }
-\addcontentsline{toc}{section}{Bacula internal database is no longer
supported, please do not use it.}
-\subsection*{Internal Bacula Database}
+\section{Internal Bacula Database}
\index[general]{Internal Bacula Database }
\index[general]{Database!Internal Bacula }
-\addcontentsline{toc}{subsection}{Internal Bacula Database}
Previously it was intended to be used primarily by Bacula developers for
testing; although SQLite is also a good choice for this. We do not recommend
%%
%%
-\section*{What To Do When Bacula Crashes (Kaboom)}
+\chapter{What To Do When Bacula Crashes (Kaboom)}
\label{_ChapterStart47}
\index[general]{Kaboom!What To Do When Bacula Crashes }
\index[general]{What To Do When Bacula Crashes (Kaboom) }
-\addcontentsline{toc}{section}{What To Do When Bacula Crashes (Kaboom)}
If you are running on a Linux system, and you have a set of working
configuration files, it is very unlikely that {\bf Bacula} will crash. As with
For more details, please read on.
-\subsection*{Traceback}
+\section{Traceback}
\index[general]{Traceback }
-\addcontentsline{toc}{subsection}{Traceback}
Each of the three Bacula daemons has a built-in exception handler which, in
case of an error, will attempt to produce a traceback. If successful the
Since each daemon has the same traceback code, a single btraceback file is
sufficient if you are running more than one daemon on a machine.
-\subsection*{Testing The Traceback}
+\section{Testing The Traceback}
\index[general]{Traceback!Testing The }
\index[general]{Testing The Traceback }
-\addcontentsline{toc}{subsection}{Testing The Traceback}
To "manually" test the traceback feature, you simply start {\bf Bacula} then
obtain the {\bf PID} of the main daemon thread (there are multiple threads).
and it is not on the default path, it will also fail. On some systems, it
is preferable to use {\bf Mail} rather than {\bf mail}.
-\subsection*{Getting A Traceback On Other Systems}
+\section{Getting A Traceback On Other Systems}
\index[general]{Getting A Traceback On Other Systems }
\index[general]{Systems!Getting A Traceback On Other }
-\addcontentsline{toc}{subsection}{Getting A Traceback On Other Systems}
It should be possible to produce a similar traceback on systems other than
Linux, either using {\bf gdb} or some other debugger. Solaris with {\bf dbx}
copy of what you modified.
\label{ManuallyDebugging}
-\subsection*{Manually Running Bacula Under The Debugger}
+\section{Manually Running Bacula Under The Debugger}
\index[general]{Manually Running Bacula Under The Debugger }
\index[general]{Debugger!Manually Running Bacula Under The }
-\addcontentsline{toc}{subsection}{Manually Running Bacula Under The Debugger}
If for some reason you cannot get the automatic traceback, or if you want to
interactively examine the variable contents after a crash, you can run Bacula
After that you can issue any debugging command.
\end{enumerate}
-\subsection*{Getting Debug Output from Bacula}
+\section{Getting Debug Output from Bacula}
\index[general]{Getting Debug Output from Bacula }
-\addcontentsline{toc}{subsection}{Getting Debug Output from Bacula}
Each of the daemons normally has debug compiled into the program, but
disabled. There are two ways to enable the debug output. One is to add the
\label{_ChapterStart49}
\index[general]{GNU Lesser General Public License }
\index[general]{License!GNU Lesser General Public }
-\addcontentsline{toc}{section}{GNU Lesser General Public License}
\elink{image of a Philosophical
GNU}{http://www.gnu.org/graphics/philosophicalgnu.html} [
\elink{Why you shouldn't use the Lesser GPL for your next
library}{http://www.gnu.org/philosophy/why-not-lgpl.html} article.
-\subsection*{Table of Contents}
+\section{Table of Contents}
\index[general]{Table of Contents }
\index[general]{Contents!Table of }
-\addcontentsline{toc}{subsection}{Table of Contents}
\begin{itemize}
\item
\end{itemize}
-\subsection*{
+\section{
\ilink{GNU LESSER GENERAL PUBLIC LICENSE}{TOC12}}
\label{SEC12}
\index[general]{LICENSE!GNU LESSER GENERAL PUBLIC }
\index[general]{GNU LESSER GENERAL PUBLIC LICENSE }
-\addcontentsline{toc}{subsection}{GNU LESSER GENERAL PUBLIC LICENSE}
Version 2.1, February 1999
\end{verbatim}
\normalsize
-\subsection*{
+\section{
\ilink{Preamble}{TOC23}}
\label{SEC23}
\index[general]{Preamble }
-\addcontentsline{toc}{subsection}{Preamble}
The licenses for most software are designed to take away your freedom to share
and change it. By contrast, the GNU General Public Licenses are intended to
derived from the library, whereas the latter must be combined with the library
in order to run.
-\subsection*{
+\section{
\ilink{TERMS AND CONDITIONS}{TOC34}}
\label{SEC34}
\index[general]{CONDITIONS!TERMS AND }
\index[general]{TERMS AND CONDITIONS }
-\addcontentsline{toc}{subsection}{TERMS AND CONDITIONS}
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
END OF TERMS AND CONDITIONS
-\subsection*{
+\section{
\ilink{How to Apply These Terms to Your New Libraries}{TOC45}}
\label{SEC45}
\index[general]{Libraries!How to Apply These Terms to Your New }
\index[general]{How to Apply These Terms to Your New Libraries }
-\addcontentsline{toc}{subsection}{How to Apply These Terms to Your New
Libraries}
If you develop a new library, and you want it to be of the greatest possible
%%
%%
-\section*{Bacula Copyright, Trademark, and Licenses}
+\chapter{Bacula Copyright, Trademark, and Licenses}
\label{_ChapterStart29}
\index[general]{Licenses!Bacula Copyright Trademark}
\index[general]{Bacula Copyright, Trademark, and Licenses}
-\addcontentsline{toc}{section}{Bacula Copyright, Trademark, and Licenses}
There are a number of different licenses that are used in Bacula.
-\subsection*{FDL}
+\section{FDL}
\index[general]{FDL }
-\addcontentsline{toc}{subsection}{FDL}
The GNU Free Documentation License (FDL) is used for this manual.
+% TODO: Point to appendix that has it
-\subsection*{GPL}
+\section{GPL}
\index[general]{GPL }
-\addcontentsline{toc}{subsection}{GPL}
The vast bulk of the source code is released under a modified version of the
\ilink{GNU General Public License version 2.}{_ChapterStart20} The
Foundation, ...). Generally these portions are released under a
non-modified GPL 2 license.
-\subsection*{LGPL}
+\section{LGPL}
\index[general]{LGPL }
-\addcontentsline{toc}{subsection}{LGPL}
Some of the Bacula library source code is released under the
\ilink{GNU Lesser General Public License.}{_ChapterStart49} This
permits third parties to use these parts of our code in their proprietary
programs to interface to Bacula.
-\subsection*{Public Domain}
+\section{Public Domain}
\index[general]{Domain!Public }
\index[general]{Public Domain }
-\addcontentsline{toc}{subsection}{Public Domain}
Some of the Bacula code, or code that Bacula references, has been released
to the public domain. E.g. md5.c, SQLite.
-\subsection*{Trademark}
+\section{Trademark}
\index[general]{Trademark }
-\addcontentsline{toc}{subsection}{Trademark}
Bacula\raisebox{.6ex}{\textsuperscript{\textregistered}} is a registered
trademark of John Walker.
released. The use of the name Bacula is restricted to software systems
that agree exactly with the program presented here.
-\subsection*{Fiduciary License Agreement}
+\section{Fiduciary License Agreement}
\index[general]{Fiduciary License Agreement }
-\addcontentsline{toc}{subsection}{Fiduciary License Agreement}
Developers who have contributed significant changes to the Bacula code
should have signed a Fiduciary License Agreement (FLA), which
guarantees them the right to use the code they have developed, and also
complete document, please notify me: kern at sibbald dot com.
-\subsection*{Disclaimer}
+\section{Disclaimer}
\index[general]{Disclaimer }
-\addcontentsline{toc}{subsection}{Disclaimer}
NO WARRANTY
%%
%%
-\section*{Messages Resource}
+\chapter{Messages Resource}
\label{_ChapterStart15}
\index[general]{Resource!Messages}
\index[general]{Messages Resource}
-\addcontentsline{toc}{section}{Messages Resource}
-\subsection*{The Messages Resource}
+\section{The Messages Resource}
\label{MessageResource}
\index[general]{Resource!Messages}
\index[general]{Messages Resource}
-\addcontentsline{toc}{subsection}{Messages Resource}
The Messages resource defines how messages are to be handled and destinations
to which they should be sent.
-\section*{Migration}
+\chapter{Migration}
\label{_MigrationChapter}
\index[general]{Migration}
-\addcontentsline{toc}{section}{Migration}
The term Migration, as used in the context of Bacula, means moving data from
one Volume to another. In particular it refers to a Job (similar to a backup
Jobs that start. Because each job must read the same Volume, they will
run consecutively (not simultaneously).
-\subsection*{Migration Job Resource Directives}
-\addcontentsline{toc}{section}{Migration Job Resource Directives}
+\section{Migration Job Resource Directives}
The following directives can appear in a Director's Job resource, and they
are used to define a Migration job.
\end{description}
-\subsection*{Migration Pool Resource Directives}
-\addcontentsline{toc}{section}{Migration Pool Resource Directives}
+\section{Migration Pool Resource Directives}
The following directives can appear in a Director's Pool resource, and they
are used to define a Migration job.
than elsewhere (job, schedule run, ...).
\end{description}
-\subsection*{Important Migration Considerations}
+\section{Important Migration Considerations}
\index[general]{Important Migration Considerations}
-\addcontentsline{toc}{subsection}{Important Migration Considerations}
\begin{itemize}
\item Each Pool into which you migrate Jobs or Volumes {\bf must}
contain Volumes of only one Media Type.
\end{itemize}
-\subsection*{Example Migration Jobs}
+\section{Example Migration Jobs}
\index[general]{Example Migration Jobs}
-\addcontentsline{toc}{subsection}{Example Migration Jobs}
When you specify a Migration Job, you must specify all the standard
directives as for a Job. However, certain such as the Level, Client, and
%%
%%
-\section*{Monitor Configuration}
+\chapter{Monitor Configuration}
\label{_MonitorChapter}
\index[general]{Monitor Configuration }
\index[general]{Configuration!Monitor }
-\addcontentsline{toc}{section}{Monitor Configuration}
-\subsection*{General}
+\section{General}
\index[general]{General }
-\addcontentsline{toc}{subsection}{General}
The Monitor configuration file is a stripped down version of the Director
configuration file, mixed with a Console configuration file. It simply
daemons to monitor.
\end{itemize}
-\subsection*{The Monitor Resource}
+\section{The Monitor Resource}
\label{MonitorResource}
\index[general]{Monitor Resource }
\index[general]{Resource!Monitor }
-\addcontentsline{toc}{subsection}{Monitor Resource}
The Monitor resource defines the attributes of the Monitor running on the
network. The parameters you define here must be configured as a Director
Specifies the time to wait between status requests to each daemon. It can't
be set to less than 1 second, or more than 10 minutes, and the default value
is 5 seconds.
+% TODO: what is format of the time?
+% TODO: should the digits in this definition be spelled out? should
+% TODO: this say "time-period-specification" above??)
\end{description}
-\subsection*{The Director Resource}
+\section{The Director Resource}
\label{DirectorResource2}
\index[general]{Director Resource }
\index[general]{Resource!Director }
-\addcontentsline{toc}{subsection}{Director Resource}
The Director resource defines the attributes of the Directors that are
monitored by this Monitor.
address used to connect to the Director. This record is required.
\end{description}
-\subsection*{The Client Resource}
+\section{The Client Resource}
\label{ClientResource1}
\index[general]{Resource!Client }
\index[general]{Client Resource }
-\addcontentsline{toc}{subsection}{Client Resource}
The Client resource defines the attributes of the Clients that are monitored
by this Monitor.
required.
\end{description}
-\subsection*{The Storage Resource}
+\section{The Storage Resource}
\label{StorageResource1}
\index[general]{Resource!Storage }
\index[general]{Storage Resource }
-\addcontentsline{toc}{subsection}{Storage Resource}
The Storage resource defines the attributes of the Storages that are monitored
by this Monitor.
\end{description}
-\subsection*{Tray Monitor Security}
+\section{Tray Monitor Security}
\index[general]{Tray Monitor Security}
-\addcontentsline{toc}{subsection}{Tray Monitor Security}
There is no security problem in relaxing the permissions on
tray-monitor.conf as long as FD, SD and DIR are configured properly, so
is pretty simple).
-\subsection*{Sample Tray Monitor configuration}
+\section{Sample Tray Monitor configuration}
\label{SampleConfiguration1}
\index[general]{Sample Tray Monitor configuration}
-\addcontentsline{toc}{subsection}{Sample Tray Monitor configuration}
An example Tray Monitor configuration file might be the following:
\end{verbatim}
\normalsize
-\subsubsection*{Sample File daemon's Director record.}
+\subsection{Sample File daemon's Director record.}
\index[general]{Sample File daemon's Director record. }
\index[general]{Record!Sample File daemon's Director }
-\addcontentsline{toc}{subsubsection}{Sample File daemon's Director record.}
Click
\ilink{here to see the full example.}{SampleClientConfiguration}
\end{verbatim}
\normalsize
-\subsubsection*{Sample Storage daemon's Director record.}
+\subsection{Sample Storage daemon's Director record.}
\index[general]{Record!Sample Storage daemon's Director }
\index[general]{Sample Storage daemon's Director record. }
-\addcontentsline{toc}{subsubsection}{Sample Storage daemon's Director record.}
Click
\ilink{here to see the full example.}{SampleConfiguration}
\end{verbatim}
\normalsize
-\subsubsection*{Sample Director's Console record.}
+\subsection{Sample Director's Console record.}
\index[general]{Record!Sample Director's Console }
\index[general]{Sample Director's Console record. }
-\addcontentsline{toc}{subsubsection}{Sample Director's Console record.}
Click
\ilink{here to see the full
%%
%%
-\section*{Installing and Configuring MySQL}
+\chapter{Installing and Configuring MySQL}
\label{_ChapterStart}
\index[general]{MySQL!Installing and Configuring }
\index[general]{Installing and Configuring MySQL }
-\addcontentsline{toc}{section}{Installing and Configuring MySQL}
-\subsection*{Installing and Configuring MySQL -- Phase I}
+\section{Installing and Configuring MySQL -- Phase I}
\index[general]{Installing and Configuring MySQL -- Phase I }
\index[general]{Phase I!Installing and Configuring MySQL -- }
-\addcontentsline{toc}{subsection}{Installing and Configuring MySQL -- Phase I}
If you use the ./configure \verb:--:with-mysql=mysql-directory statement for
configuring {\bf Bacula}, you will need MySQL version 3.23.53 or later
Installation.
\label{mysql_phase2}
-\subsection*{Installing and Configuring MySQL -- Phase II}
+\section{Installing and Configuring MySQL -- Phase II}
\index[general]{Installing and Configuring MySQL -- Phase II }
\index[general]{Phase II!Installing and Configuring MySQL -- }
-\addcontentsline{toc}{subsection}{Installing and Configuring MySQL -- Phase
II}
At this point, you should have built and installed MySQL, or already have a
\end{verbatim}
\normalsize
-\subsection*{Re-initializing the Catalog Database}
+\section{Re-initializing the Catalog Database}
\index[general]{Database!Re-initializing the Catalog }
\index[general]{Re-initializing the Catalog Database }
-\addcontentsline{toc}{subsection}{Re-initializing the Catalog Database}
After you have done some initial testing with {\bf Bacula}, you will probably
want to re-initialize the catalog database and throw away all the test Jobs
Where you should replace {\bf /dev/nst0} with the appropriate tape drive
device name for your machine.
-\subsection*{Linking Bacula with MySQL}
+\section{Linking Bacula with MySQL}
\index[general]{Linking Bacula with MySQL }
\index[general]{MySQL!Linking Bacula with }
-\addcontentsline{toc}{subsection}{Linking Bacula with MySQL}
After configuring Bacula with
\end{verbatim}
\normalsize
-\subsection*{Installing MySQL from RPMs}
+\section{Installing MySQL from RPMs}
\index[general]{MySQL!Installing from RPMs}
\index[general]{Installing MySQL from RPMs}
-\addcontentsline{toc}{subsection}{Installing MySQL from RPMs}
If you are installing MySQL from RPMs, you will need to install
both the MySQL binaries and the client libraries. The client
libraries are usually found in a devel package, so you must
This will be the same with most other package managers too.
-\subsection*{Upgrading MySQL}
+\section{Upgrading MySQL}
\index[general]{Upgrading MySQL }
\index[general]{Upgrading!MySQL }
-\addcontentsline{toc}{subsection}{Upgrading MySQL}
If you upgrade MySQL, you must reconfigure, rebuild, and re-install
Bacula otherwise you are likely to get bizarre failures. If you
install from rpms and you upgrade MySQL, you must also rebuild Bacula.
%%
%%
-\section*{The Old FileSet Resource}
+\chapter{The Old FileSet Resource}
\label{_ChapterStart}
\label{FileSetResource}
\index[general]{Resource!Old FileSet }
\index[general]{Old FileSet Resource }
-\addcontentsline{toc}{section}{Old FileSet Resource}
Note, this form of the FileSet resource still works but has been replaced by a
new more flexible form in Bacula version 1.34.3. As a consequence, you are
mounted or is mounted read-only. If necessary, this can be done using the {\bf
RunBeforeJob} record.
-\subsection*{Additional Considerations for Using Excludes on Windows}
+\section{Additional Considerations for Using Excludes on Windows}
\index[general]{Additional Considerations for Using Excludes on Windows }
\index[general]{Windows!Additional Considerations for Using Excludes on }
-\addcontentsline{toc}{subsection}{Additional Considerations for Using Excludes
on Windows}
For exclude lists to work correctly on Windows, you must observe the following
\ilink{Console chapter}{console.tex#estimate} of this manual.
\label{win32}
-\subsection*{Windows Considerations for FileSets}
+\section{Windows Considerations for FileSets}
\index[general]{FileSets!Windows Considerations for }
\index[general]{Windows Considerations for FileSets }
-\addcontentsline{toc}{subsection}{Windows Considerations for FileSets}
If you are entering Windows file names, the directory path may be preceded by
the drive and a colon (as in c:). However, the path separators must be
where in this case, the {\bf /cygdrive/d} is Cygwin's way of referring to
drive {\bf d:} (thanks to Mathieu Arnold for this tip).
-\subsection*{A Windows Example FileSet}
+\section{A Windows Example FileSet}
\index[general]{FileSet!Windows Example }
\index[general]{Windows Example FileSet }
-\addcontentsline{toc}{subsection}{Windows Example FileSet}
The following example was contributed by Phil Stracchino:
%%
%%
-\section*{Automated Disk Backup}
+\chapter{Automated Disk Backup}
\label{_ChapterStart11}
\index[general]{Volumes!Using Pools to Manage}
\index[general]{Disk!Automated Backup}
\index[general]{Using Pools to Manage Volumes}
\index[general]{Automated Disk Backup}
-\addcontentsline{toc}{section}{Using Pools to Manage Volumes}
-\addcontentsline{toc}{section}{Automated Disk Backup}
If you manage five or ten machines and have a nice tape backup, you don't need
Pools, and you may wonder what they are good for. In this chapter, you will
Volumes, but most of the information applies equally well to tape Volumes.
\label{TheProblem}
-\subsection*{The Problem}
+\section{The Problem}
\index[general]{Problem}
-\addcontentsline{toc}{subsection}{Problem}
A site that I administer (a charitable organization) had a tape DDS-3 tape
drive that was failing. The exact reason for the failure is still unknown.
necessary cassettes was more expensive than their budget could handle.
\label{TheSolution}
-\subsection*{The Solution}
+\section{The Solution}
\index[general]{Solution}
-\addcontentsline{toc}{subsection}{Solution}
They want to maintain six months of backup data, and be able to access the old
files on a daily basis for a week, a weekly basis for a month, then monthly
automatically manage a set of disk files with the minimum intervention on my
part. The system has been running since 22 January 2004 until today (17
September 2006) with no intervention, with the exception that I had to
+% TODO: is this relevant for book? rewrite this part?
add a second 120GB hard disk after a year because their needs grew
over that time to more than the 120GB (168GB to be exact). The only other
intervention I have made is a periodic (about once a year) Bacula upgrade.
\label{OverallDesign}
-\subsection*{Overall Design}
+\section{Overall Design}
\index[general]{Overall Design}
\index[general]{Design!Overall}
-\addcontentsline{toc}{subsection}{Overall Design}
Getting Bacula to write to disk rather than tape in the simplest case is
rather easy, and is documented in the previous chapter. In addition, all the
of volumes and a different Retention period to accomplish the requirements.
\label{FullPool}
-\subsubsection*{Full Pool}
+\subsection{Full Pool}
\index[general]{Pool!Full}
\index[general]{Full Pool}
-\addcontentsline{toc}{subsubsection}{Full Pool}
Putting a single Full backup on each Volume, will require six Full save
Volumes, and a retention period of six months. The Pool needed to do that is:
manual from the start, but why not use the features of Bacula.
\label{DiffPool}
-\subsubsection*{Differential Pool}
+\subsection{Differential Pool}
\index[general]{Pool!Differential}
\index[general]{Differential Pool}
-\addcontentsline{toc}{subsubsection}{Differential Pool}
For the Differential backup Pool, we choose a retention period of a bit longer
than a month and ensure that there is at least one Volume for each of the
the expense here is a few GB which is not too serious.
\label{IncPool}
-\subsubsection*{Incremental Pool}
+\subsection{Incremental Pool}
\index[general]{Incremental Pool}
\index[general]{Pool!Incremental}
-\addcontentsline{toc}{subsubsection}{Incremental Pool}
Finally, here is the resource for the Incremental Pool:
doesn't exceed the disk capacity.
\label{Example}
-\subsection*{The Actual Conf Files}
+\section{The Actual Conf Files}
\index[general]{Files!Actual Conf}
\index[general]{Actual Conf Files}
-\addcontentsline{toc}{subsection}{Actual Conf Files}
The following example shows you the actual files used, with only a few minor
modifications to simplify things.
%%
%%
-\section*{Installing and Configuring PostgreSQL}
+\chapter{Installing and Configuring PostgreSQL}
\label{_ChapterStart10}
\index[general]{PostgreSQL!Installing and Configuring }
\index[general]{Installing and Configuring PostgreSQL }
-\addcontentsline{toc}{section}{Installing and Configuring PostgreSQL}
Warning!!! If you are considering using PostreSQL, you should be aware
of their philosophy of upgrades, which could be
useless because none of the new tools can access it due to the format
change, and the PostgreSQL server will not be able to start.
-\subsection*{Installing and Configuring PostgreSQL -- Phase I}
-\index[general]{Installing and Configuring PostgreSQL -- Phase I }
-\index[general]{Phase I!Installing and Configuring PostgreSQL -- }
-\addcontentsline{toc}{subsection}{Installing and Configuring PostgreSQL --
-Phase I}
+\section{Installing PostgreSQL}
+\index[general]{PostgreSQL!Installing }
If you use the {\bf ./configure \verb:--:with-postgresql=PostgreSQL-Directory}
statement for configuring {\bf Bacula}, you will need PostgreSQL version 7.3
...).
-\label{PostgreSQL_phase2}
-\subsection*{Installing and Configuring PostgreSQL -- Phase II}
-\index[general]{Phase II!Installing and Configuring PostgreSQL -- }
-\index[general]{Installing and Configuring PostgreSQL -- Phase II }
-\addcontentsline{toc}{subsection}{Installing and Configuring PostgreSQL --
-Phase II}
+\label{PostgreSQL_configure}
+\section{Configuring PostgreSQL}
+\index[general]{PostgreSQL!Configuring PostgreSQL -- }
At this point, you should have built and installed PostgreSQL, or already have
a running PostgreSQL, and you should have configured, built and installed {\bf
the user (so root:root for the copy in ~root, and so on), and the mode
set to 600, limiting access to the owner of the file.
-\subsection*{Re-initializing the Catalog Database}
+\section{Re-initializing the Catalog Database}
\index[general]{Database!Re-initializing the Catalog }
\index[general]{Re-initializing the Catalog Database }
-\addcontentsline{toc}{subsection}{Re-initializing the Catalog Database}
After you have done some initial testing with {\bf Bacula}, you will probably
want to re-initialize the catalog database and throw away all the test Jobs
Where you should replace {\bf /dev/nst0} with the appropriate tape drive
device name for your machine.
-\subsection*{Installing PostgreSQL from RPMs}
+\section{Installing PostgreSQL from RPMs}
\index[general]{PostgreSQL!Installing from RPMs}
\index[general]{Installing PostgreSQL from RPMs}
-\addcontentsline{toc}{subsection}{Installing PostgreSQL from RPMs}
If you are installing PostgreSQL from RPMs, you will need to install
both the PostgreSQL binaries and the client libraries. The client
libraries are usually found in a devel package, so you must
the database and create the tables as described above.
-\subsection*{Converting from MySQL to PostgreSQL}
+\section{Converting from MySQL to PostgreSQL}
\index[general]{PostgreSQL!Converting from MySQL to }
\index[general]{Converting from MySQL to PostgreSQL }
-\addcontentsline{toc}{subsection}{Converting from MySQL to PostgreSQL}
The conversion procedure presented here was worked out by Norm Dressler
\lt{}ndressler at dinmar dot com\gt{}
a test backup to make sure everything is working properly.
\end{enumerate}
-\subsection*{Upgrading PostgreSQL}
+\section{Upgrading PostgreSQL}
\index[general]{Upgrading PostgreSQL }
\index[general]{Upgrading!PostgreSQL }
-\addcontentsline{toc}{subsection}{Upgrading PostgreSQL}
If you upgrade PostgreSQL, you must reconfigure, rebuild, and re-install
Bacula otherwise you are likely to get bizarre failures. If you
to modify the bacula.spec file to account for the new PostgreSQL version.
install from rpms and you upgrade PostgreSQL, you must also rebuild Bacula.
-\subsection*{Credits}
+\section{Credits}
\index[general]{Credits }
-\addcontentsline{toc}{subsection}{Credits}
Many thanks to Dan Langille for writing the PostgreSQL driver. This will
surely become the most popular database that Bacula supports.
%%
%%
-\section*{Volume Utility Tools}
+\chapter{Volume Utility Tools}
\label{_UtilityChapter}
\index[general]{Volume Utility Tools}
\index[general]{Tools!Volume Utility}
-\addcontentsline{toc}{section}{Volume Utility Tools}
This document describes the utility programs written to aid Bacula users and
developers in dealing with Volumes external to Bacula.
-\subsection*{Specifying the Configuration File}
+\section{Specifying the Configuration File}
\index[general]{Specifying the Configuration File}
-\addcontentsline{toc}{subsection}{Specifying the Configuration File}
Starting with version 1.27, each of the following programs requires a valid
Storage daemon configuration file (actually, the only part of the
configuration file using the {\bf -c} option.
-\subsection*{Specifying a Device Name For a Tape}
+\section{Specifying a Device Name For a Tape}
\index[general]{Tape!Specifying a Device Name For a}
\index[general]{Specifying a Device Name For a Tape}
-\addcontentsline{toc}{subsection}{Specifying a Device Name For a Tape}
Each of these programs require a {\bf device-name} where the Volume can be
found. In the case of a tape, this is the physical device name such as {\bf
will {\bf busy} because Bacula is using it.
-\subsection*{Specifying a Device Name For a File}
+\section{Specifying a Device Name For a File}
\index[general]{File!Specifying a Device Name For a}
\index[general]{Specifying a Device Name For a File}
-\addcontentsline{toc}{subsection}{Specifying a Device Name For a File}
If you are attempting to read or write an archive file rather than a tape, the
{\bf device-name} should be the full path to the archive location including
to the archive device name, and the filename is equivalent to the volume name.
-\subsection*{Specifying Volumes}
+\section{Specifying Volumes}
\index[general]{Volumes!Specifying}
\index[general]{Specifying Volumes}
-\addcontentsline{toc}{subsection}{Specifying Volumes}
In general, you must specify the Volume name to each of the programs below
(with the exception of {\bf btape}). The best method to do so is to specify a
\end{verbatim}
\normalsize
-\subsection*{bls}
+\section{bls}
\label{bls}
\index[general]{bls}
\index[general]{program!bls}
-\addcontentsline{toc}{subsection}{bls}
{\bf bls} can be used to do an {\bf ls} type listing of a {\bf Bacula} tape or
file. It is called:
\end{verbatim}
\normalsize
-\subsubsection*{Listing Jobs}
+\subsection{Listing Jobs}
\index[general]{Listing Jobs with bls}
\index[general]{bls!Listing Jobs}
-\addcontentsline{toc}{subsubsection}{bls Listing Jobs}
If you are listing a Volume to determine what Jobs to restore, normally the
{\bf -j} option provides you with most of what you will need as long as you
Adding the {\bf -v} option will display virtually all information that is
available for each record:
-\subsubsection*{Listing Blocks}
+\subsection{Listing Blocks}
\index[general]{Listing Blocks with bls}
\index[general]{bls!Listing Blocks}
-\addcontentsline{toc}{subsubsection}{bls Listing Blocks}
Normally, except for debugging purposes, you will not need to list Bacula
blocks (the "primitive" unit of Bacula data on the Volume). However, you can
\end{verbatim}
\normalsize
-\subsection*{bextract}
+\section{bextract}
\label{bextract}
\index[general]{Bextract}
\index[general]{program!bextract}
-\addcontentsline{toc}{subsection}{bextract}
If you find yourself using {\bf bextract}, you probably have done
something wrong. For example, if you are trying to recover a file
stripped. If no prefix is specified, the file will be restored to the original
drive.
-\subsubsection*{Extracting with Include or Exclude Lists}
+\subsection{Extracting with Include or Exclude Lists}
\index[general]{Lists!Extracting with Include or Exclude}
\index[general]{Extracting with Include or Exclude Lists}
-\addcontentsline{toc}{subsubsection}{Extracting with Include or Exclude Lists}
Using the {\bf -e} option, you can specify a file containing a list of files
to be excluded. Wildcards can be used in the exclusion list. This option will
directory {\bf /tmp} (i.e. /tmp/home/kern/bacula/... and
/tmp/usr/local/bin/...).
-\subsubsection*{Extracting With a Bootstrap File}
+\subsection{Extracting With a Bootstrap File}
\index[general]{File!Extracting With a Bootstrap}
\index[general]{Extracting With a Bootstrap File}
-\addcontentsline{toc}{subsubsection}{Extracting With a Bootstrap File}
The {\bf -b} option is used to specify a {\bf bootstrap} file containing the
information needed to restore precisely the files you want. Specifying a {\bf
applied, and then each file record seen will be compared to the include and
exclude lists.
-\subsubsection*{Extracting From Multiple Volumes}
+\subsection{Extracting From Multiple Volumes}
\index[general]{Volumes!Extracting From Multiple}
\index[general]{Extracting From Multiple Volumes}
-\addcontentsline{toc}{subsubsection}{Extracting From Multiple Volumes}
If you wish to extract files that span several Volumes, you can specify the
Volume names in the bootstrap file or you may specify the Volume names on the
information. The same techniques apply equally well to the {\bf bextract}
program.
-\subsection*{bscan}
+\section{bscan}
\label{bscan}
\index[general]{bscan}
\index[general]{program!bscan}
-\addcontentsline{toc}{subsection}{bscan}
If you find yourself using this program, you have probably done something
wrong. For example, the best way to recover a lost or damaged Bacula
and will permit restoration of any or all the files in the catalog using the
normal Bacula console commands.
-\subsubsection*{Using bscan to Compare a Volume to an existing Catalog}
+\subsection{Using bscan to Compare a Volume to an existing Catalog}
\index[general]{Catalog!Using bscan to Compare a Volume to an existing}
\index[general]{Using bscan to Compare a Volume to an existing Catalog}
-\addcontentsline{toc}{subsubsection}{Using bscan to Compare a Volume to an
existing Catalog}
If you wish to compare the contents of a Volume to an existing catalog without
as they should be, so we don't particularly recommend this mode other than for
testing.
-\subsubsection*{Using bscan to Recreate a Catalog from a Volume}
+\subsection{Using bscan to Recreate a Catalog from a Volume}
\index[general]{Volume!Using bscan to Recreate a Catalog from a}
\index[general]{Using bscan to Recreate a Catalog from a Volume}
-\addcontentsline{toc}{subsubsection}{Using bscan to Recreate a Catalog from a
Volume}
This is the mode for which {\bf bscan} is most useful. You can either {\bf
reconstruction is sufficiently complete, that you can run {\bf restore}
against it and get valid results.
-\subsubsection*{Using bscan to Correct the Volume File Count}
+\subsection{Using bscan to Correct the Volume File Count}
\index[general]{Using bscan to Correct the Volume File Count}
\index[general]{Count!Using bscan to Correct the Volume File}
-\addcontentsline{toc}{subsubsection}{Using bscan to Correct the Volume File
Count}
If the Storage daemon crashes during a backup Job, the catalog will not be
bscan} with the {\bf -m} option (but {\bf without} the {\bf -s} option) to
update only the final Media record for the Volumes read.
-\subsubsection*{After bscan}
+\subsection{After bscan}
\index[general]{After bscan}
\index[general]{Bscan!After}
-\addcontentsline{toc}{subsubsection}{After bscan}
If you use {\bf bscan} to enter the contents of the Volume into an existing
catalog, you should be aware that the records you entered may be immediately
you can reset the VolStatus to {\bf Used} and the Volume will be purged from
the catalog.
-\subsection*{bcopy}
+\section{bcopy}
\label{bcopy}
\index[general]{Bcopy}
\index[general]{program!bcopy}
-\addcontentsline{toc}{subsection}{bcopy}
The {\bf bcopy} program can be used to copy one {\bf Bacula} archive file to
another. For example, you may copy a tape to a file, a file to a tape, a file
entries. If you wish to be able to use the Volume with the Console restore
command, for example, you must first bscan the new Volume into the catalog.
-\subsubsection*{bcopy Command Options}
+\subsection{bcopy Command Options}
\index[general]{Options!bcopy Command}
\index[general]{Bcopy Command Options}
-\addcontentsline{toc}{subsubsection}{bcopy Command Options}
\footnotesize
\begin{verbatim}
addition, I only have a single tape drive, so I have never been able to test
this program with two tape drives.
-\subsection*{btape}
+\section{btape}
\label{btape}
\index[general]{Btape}
\index[general]{program!btape}
-\addcontentsline{toc}{subsection}{btape}
This program permits a number of elementary tape operations via a tty command
interface. It works only with tapes and not with other kinds of Bacula
\end{verbatim}
\normalsize
-\subsubsection*{Using btape to Verify your Tape Drive}
+\subsection{Using btape to Verify your Tape Drive}
\index[general]{Using btape to Verify your Tape Drive}
\index[general]{Drive!Using btape to Verify your Tape}
-\addcontentsline{toc}{subsubsection}{Using btape to Verify your Tape Drive}
An important reason for this program is to ensure that a Storage daemon
configuration file is defined so that Bacula will correctly read and write
\ilink{Tape Testing}{_ChapterStart27} Chapter of this manual for
the details.
-\subsubsection*{btape Commands}
+\subsection{btape Commands}
\index[general]{Btape Commands}
\index[general]{Commands!btape}
-\addcontentsline{toc}{subsubsection}{btape Commands}
The full list of commands are:
note for labeling tapes, we recommend that you use the {\bf label} command in
the {\bf Console} program since it will never overwrite a valid Bacula tape.
-\subsection*{Other Programs}
+\section{Other Programs}
\index[general]{Programs!Other}
\index[general]{Other Programs}
-\addcontentsline{toc}{subsection}{Other Programs}
The following programs are general utility programs and in general do not need
a configuration file nor a device name.
-\subsection*{bsmtp}
+\section{bsmtp}
\label{bsmtp}
\index[general]{Bsmtp}
\index[general]{program!bsmtp}
-\addcontentsline{toc}{subsection}{bsmtp}
{\bf bsmtp} is a simple mail transport program that permits more flexibility
than the standard mail programs typically found on Unix systems. It can even
When running {\bf bsmtp} by hand, you will need to terminate the message by
entering a ctl-d in column 1 of the last line.
+% TODO: is "column" the correct terminology for this?
If you are getting incorrect dates (e.g. 1970) and you are
running with a non-English language setting, you might try adding
a LANG=''en\_US'' immediately before the bsmtp call.
-\subsection*{dbcheck}
+\section{dbcheck}
\label{dbcheck}
\index[general]{Dbcheck}
\index[general]{program!dbcheck}
-\addcontentsline{toc}{subsection}{dbcheck}
{\bf dbcheck} is a simple program that will search for logical
inconsistencies in the Bacula tables in your database, and optionally fix them.
It is a database maintenance routine, in the sense that it can
recommendations given above, which are given so that users don't
waste their time running dbcheck too often.
-\subsection*{bregex}
+\section{bregex}
\label{regex}
\index[general]{bregex}
\index[general]{program!bregex}
-\addcontentsline{toc}{subsection}{bregex}
{\bf bregex} is a simple program that will allow you to test
regular expressions against a file of data. This can be useful
This program can be useful for testing regex expressions to be
applied against a list of filenames.
-\subsection*{bwild}
+\section{bwild}
\label{wild}
\index[general]{bwild}
\index[general]{program!bwild}
-\addcontentsline{toc}{subsection}{bwild}
{\bf bwild} is a simple program that will allow you to test
wild-card expressions against a file of data.
This program can be useful for testing wild expressions to be
applied against a list of filenames.
-\subsection*{testfind}
+\section{testfind}
\label{testfind}
\index[general]{Testfind}
\index[general]{program!testfind}
-\addcontentsline{toc}{subsection}{testfind}
{\bf testfind} permits listing of files using the same search engine that is
used for the {\bf Include} resource in Job resources. Note, much of the
%%
%%
-\section*{Bacula Projects}
+\chapter{Bacula Projects}
\label{_ChapterStart28}
\index[general]{Projects!Bacula }
\index[general]{Bacula Projects }
-\addcontentsline{toc}{section}{Bacula Projects}
Once a new major version of Bacula is released, the Bacula
users will vote on a list of new features. This vote is used
%%
%%
-\section*{Python Scripting}
+\chapter{Python Scripting}
\label{_ChapterStart60}
\index[general]{Python Scripting}
\index[general]{Scripting!Python}
-\addcontentsline{toc}{section}{Python Scripting}
You may be asking what Python is and why a scripting language is
needed in Bacula. The answer to the first question is that Python
a scripting language such as Python, you can generate any name
you want, based on the current state of Bacula.
-\subsection*{Python Configuration}
+\section{Python Configuration}
\index[general]{Python Configuration}
\index[general]{Configuration!Python}
-\addcontentsline{toc}{subsection}{Python Configuration}
Python must be enabled during the configuration process by adding
a \verb:--:with-python, and possibly specifying an alternate
definitions. If you do not want a particular event, simply replace the
existing code with a {\bf noop = 1}.
-\subsection*{Bacula Events}
+\section{Bacula Events}
\index[general]{Bacula Events}
\index[general]{Events}
-\addcontentsline{toc}{subsection}{Bacula Events}
A Bacula event is a point in the Bacula code where Bacula
will call a subroutine (actually a method) that you have
defined in the Python StartUp script. Events correspond
or set new values in the Job attributes, such as the
Priority. You will see below how the events are used.
-\subsection*{Python Objects}
+\section{Python Objects}
\index[general]{Python Objects}
\index[general]{Objects!Python}
-\addcontentsline{toc}{subsection}{Python Objects}
There are four Python objects that you will need to work with:
\begin{description}
NewVolume event.
\end{description}
-\subsection*{Python Console Command}
+\section{Python Console Command}
\index[general]{Python Console Command}
\index[general]{Console Command!Python}
-\addcontentsline{toc}{subsection}{Python Console Command}
There is a new Console command named {\bf python}. It takes
a single argument {\bf restart}. Example:
because normally Python will cache it, and thus the
script will be read one time.
-\subsection*{Debugging Python Scripts}
+\section{Debugging Python Scripts}
\index[general]{Debugging Python Scripts}
-\addcontentsline{toc}{subsection}{Debugging Python Scripts}
In general, you debug your Python scripts by using print statements.
You can also develop your script or important parts of it as a
separate file using the Python interpreter to run it. Once you
-\subsection*{Python Example}
+\section{Python Example}
\index[general]{Python Example}
\index[general]{Example!Python}
-\addcontentsline{toc}{subsection}{Python Example}
An example script for the Director startup file is provided in
{\bf examples/python/DirStartup.py} as follows:
%%
%%
-\section*{Getting Started with Bacula}
+\chapter{Getting Started with Bacula}
\label{_ChapterStart37}
+% TODO: cleanup these labels to use descriptions not numbers
\index[general]{Getting Started with Bacula }
-\addcontentsline{toc}{section}{Getting Started with Bacula}
If you are like me, you want to get Bacula running immediately to get a feel
for it, then later you want to go back and read about all the details. This
this manual.
\label{JobsandSchedules}
-\subsection*{Understanding Jobs and Schedules}
+\section{Understanding Jobs and Schedules}
\index[general]{Jobs!Understanding}
\index[general]{Schedules!Understanding}
-\addcontentsline{toc}{subsection}{Understanding Jobs and Schedules}
In order to make Bacula as flexible as possible, the directions given
to Bacula are specified in several pieces. The main instruction is the
restore, verify, and admin jobs, which have different requirements.
\label{PoolsVolsLabels}
-\subsection*{Understanding Pools, Volumes and Labels}
+\section{Understanding Pools, Volumes and Labels}
\index[general]{Labels!Understanding Pools Volumes and }
\index[general]{Understanding Pools, Volumes and Labels }
-\addcontentsline{toc}{subsection}{Understanding Pools, Volumes and Labels}
If you have been using a program such as {\bf tar} to backup your system,
Pools, Volumes, and labeling may be a bit confusing at first. A Volume is a
restricted to the length of a single Volume (tape). Consequently, rather than
explicitly naming Volumes in your Job, you specify a Pool, and Bacula will
select the next appendable Volume from the Pool and request you to mount it.
+% TODO: can't it mount it itself if already available?
Although the basic Pool options are specified in the Director's Pool resource,
the {\bf real} Pool is maintained in the Bacula Catalog. It contains
Configuration chapter, or simply read on, and we will come back to this
subject later.
-\subsection*{Setting Up Bacula Configuration Files}
+\section{Setting Up Bacula Configuration Files}
\label{config}
\index[general]{Setting Up Bacula Configuration Files }
\index[general]{Files!Setting Up Bacula Configuration }
-\addcontentsline{toc}{subsection}{Setting Up Bacula Configuration Files}
+% TODO: this assumes installation from source:
After running the appropriate {\bf ./configure} command and doing
a {\bf make}, and a {\bf make install}, if this is the first time
you are running Bacula, you must create valid configuration files
you will rarely need to change them nor will you stop and start Bacula very
often. Most of the work will simply be in changing the tape when it is full.
-\subsubsection*{
+\subsection{
\ilink{Configuring the Console Program}{_ChapterStart36}}
\index[general]{Configuring the Console Program }
\index[general]{Program!Configuring the Console }
-\addcontentsline{toc}{subsubsection}{Configuring the Console Program}
The Console program is used by the administrator to interact with the Director
and to manually start/stop Jobs or to obtain Job status information.
Normally, for first time users, no change is needed to these files. Reasonable
defaults are set.
-\subsubsection*{
+\subsection{
\ilink{Configuring the Monitor Program}{_MonitorChapter}}
\index[general]{Program!Configuring the Monitor }
\index[general]{Configuring the Monitor Program }
-\addcontentsline{toc}{subsubsection}{Configuring the Monitor Program}
The Monitor program is typically an icon in the system tray. However, once the
icon is expanded into a full window, the administrator or user can obtain
\addcontentsline{lof}{figure}{Bacula Tray Monitor}
\includegraphics{./Bacula-tray-monitor.eps}
+% TODO: image may be too wide for 6" wide printed page.
The image shows a tray-monitor configured for three daemons. By clicking on
the radio buttons in the upper left corner of the image, you can see the
status for each of the daemons. The image shows the status for the Storage
bacula-tray-monitor}). This is not a security problem as long as you use the
default settings.
-\subsubsection*{
+\subsection{
\ilink{Configuring the File daemon}{_ChapterStart25}}
\index[general]{Daemon!Configuring the File }
\index[general]{Configuring the File daemon }
-\addcontentsline{toc}{subsubsection}{Configuring the File daemon}
The File daemon is a program that runs on each (Client) machine. At the
request of the Director, finds the files to be backed up and sends them (their
than one machine, you will need to install the File daemon with a unique
configuration file on each machine to be backed up. The information about each
File daemon must appear in the Director's configuration file.
+% TODO: point to section about how to install just the File daemon
+% TODO: and creating the unique configuration file.
-\subsubsection*{
+\subsection{
\ilink{Configuring the Director}{_ChapterStart40}}
\index[general]{Director!Configuring the }
\index[general]{Configuring the Director }
-\addcontentsline{toc}{subsubsection}{Configuring the Director}
The Director is the central control program for all the other daemons. It
schedules and monitors all jobs to be backed up.
that the {\bf Include} configuration directive contains at least one line with
a valid name of a directory (or file) to be saved.
+% TODO: is DLT still the default config?
If you do not have a DLT tape drive, you will probably want to edit the
Storage resource to contain names that are more representative of your actual
storage device. You can always use the existing names as you are free to
Finally, if you have multiple systems to be backed up, you will need a
separate File daemon or Client specification for each system, specifying its
+% TODO: I don't see any example "File" configuraton in the default
+% TODO: bacula-dir.conf; I do see FileDaemon config in the default
+% TODO: bacula-fd.conf. Be more clear about this or point to explanation
+% TODO: about this.
name, address, and password. We have found that giving your daemons the same
+% TODO: what passwords should I use? I have different ones in the
+% TODO: different configs on different systems. Point to explanation of
+% this.
name as your system but post fixed with {\bf -fd} helps a lot in debugging.
That is, if your system name is {\bf foobaz}, you would give the File daemon
the name {\bf foobaz-fd}. For the Director, you should use {\bf foobaz-dir},
know what daemon is sending what message, if they share the same
working directory, the daemons temporary file names will not
be unique, and you will get many strange failures.
+% TODO: why not check for that and not allow sharing working directory?
-\subsubsection*{
+\subsection{
\ilink{Configuring the Storage daemon}{_ChapterStart31}}
\index[general]{Daemon!Configuring the Storage }
\index[general]{Configuring the Storage daemon }
-\addcontentsline{toc}{subsubsection}{Configuring the Storage daemon}
The Storage daemon is responsible, at the Director's request, for accepting
data from a File daemon and placing it on Storage media, or in the case of a
Volumes will be created as files when you label the Volume.
\label{ConfigTesting}
-\subsection*{Testing your Configuration Files}
+\section{Testing your Configuration Files}
\index[general]{Testing your Configuration Files }
\index[general]{Files!Testing your Configuration }
-\addcontentsline{toc}{subsection}{Testing your Configuration Files}
You can test if your configuration file is syntactically correct by running
the appropriate daemon with the {\bf -t} option. The daemon will process the
configuration file and print any error messages then terminate. For example,
assuming you have installed your binaries and configuration files in the same
directory.
+% TODO: why assume that? common default install has the executable
+% TODO: is in ./sbin and the configs are in ./etc. So maybe just have
+% TODO: example correct or change default install to be same.
\footnotesize
\begin{verbatim}
conf file name).
\label{TapeTesting}
-\subsection*{Testing Bacula Compatibility with Your Tape Drive}
+\section{Testing Compatibility with Your Tape Drive}
\index[general]{Drive!Testing Bacula Compatibility with Your Tape }
\index[general]{Testing Bacula Compatibility with Your Tape Drive }
-\addcontentsline{toc}{subsection}{Testing Bacula Compatibility with Your Tape
Drive}
Before spending a lot of time on Bacula only to find that it doesn't work
flavors), reading the above mentioned tape testing chapter is a must.
Also, for FreeBSD, please see \elink{The FreeBSD
Diary}{http://www.freebsddiary.org/bacula.php} for a detailed description
+%TODO: fix elink so it shows URL in PDF
on how to make Bacula work on your system. In addition, users of FreeBSD
prior to 4.9-STABLE dated Mon Dec 29 15:18:01 2003 UTC who plan to use tape
devices, please see the file {\bf platforms/freebsd/pthreads-fix.txt} in
the main Bacula directory concerning important information concerning
compatibility of Bacula and your system. \label{notls}
-\subsection*{Get Rid of the /lib/tls Directory}
+\section{Get Rid of the /lib/tls Directory}
\index[general]{Directory!Get Rid of the /lib/tls }
\index[general]{Get Rid of the /lib/tls Directory }
-\addcontentsline{toc}{subsection}{Get Rid of the /lib/tls Directory}
+
+% TODO: this seems dangerous -- how do you know if they don't use
+% TODO: /lib/tls for something mission critical? Reword this or point to
+% TODO: appropriate documentation.
The new pthreads library {\bf /lib/tls} installed by default on recent Red Hat
systems running Linux kernel 2.4.x is defective. You must remove it or rename it,
\label{Running1}
-\subsection*{Running Bacula}
+\section{Running Bacula}
\index[general]{Bacula!Running }
\index[general]{Running Bacula }
-\addcontentsline{toc}{subsection}{Running Bacula}
Probably the most important part of running Bacula is being able to restore
files. If you haven't tried recovering files at least once, when you actually
\ilink{Running Bacula Chapter}{_ChapterStart1} of this manual where
you will get detailed instructions on how to run Bacula.
-\subsection*{Log Rotation}
+\section{Log Rotation}
\index[general]{Rotation!Log }
\index[general]{Log Rotation }
-\addcontentsline{toc}{subsection}{Log Rotation}
If you use the default {\bf bacula-dir.conf} or some variation of it, you will
note that it logs all the Bacula output to a file. To avoid that this file
grows without limit, we recommend that you copy the file {\bf logrotate} from
the log file to be rotated once a month and kept for a maximum of five months.
You may want to edit this file to change the default log rotation preferences.
-\subsection*{Log Watch}
+\section{Log Watch}
\index[general]{Watch!Log}
\index[general]{Log Watch}
-\addcontentsline{toc}{subsection}{Log Watch}
Some systems such as Red Hat and Fedora run the logwatch program
every night, which does an analysis of your log file and sends an
email report. If you wish to include the output from your Bacula
explanation on how to install it and what kind of output to expect.
-\subsection*{Disaster Recovery}
+\section{Disaster Recovery}
\index[general]{Recovery!Disaster }
\index[general]{Disaster Recovery }
-\addcontentsline{toc}{subsection}{Disaster Recovery}
If you intend to use Bacula as a disaster recovery tool rather than simply a
program to restore lost or damaged files, you will want to read the
%%
%%
-\section*{Automatic Volume Recycling}
+\chapter{Automatic Volume Recycling}
\label{_ChapterStart22}
\index[general]{Recycling!Automatic Volume }
\index[general]{Automatic Volume Recycling }
-\addcontentsline{toc}{section}{Automatic Volume Recycling}
By default, once Bacula starts writing a Volume, it can append to the
volume, but it will not overwrite the existing data thus destroying it.
Used} and thus no longer appendable.
\label{AutoPruning}
-\subsection*{Automatic Pruning}
+\section{Automatic Pruning}
\index[general]{Automatic Pruning}
\index[general]{Pruning!Automatic}
-\addcontentsline{toc}{subsection}{Automatic Pruning}
As Bacula writes files to tape, it keeps a list of files, jobs, and volumes
in a database called the catalog. Among other things, the database helps
Manual pruning is done with the \ilink{ prune command}{ManualPruning} in
the console. (thanks to Bryce Denney for the above explanation).
-\subsection*{Pruning Directives}
+\section{Pruning Directives}
\index[general]{Pruning Directives }
\index[general]{Directives!Pruning }
-\addcontentsline{toc}{subsection}{Pruning Directives}
There are three pruning durations. All apply to catalog database records and
not to the actual data in a Volume. The pruning (or retention) durations are
additional details of time specification.
The default is 1 year.
+% TODO: if that is the format, should it be in quotes? decide on a style
\item [Recycle = \lt{}yes|no\gt{}]
\index[fd]{Recycle }
\label{Recycling}
\label{RecyclingAlgorithm}
-\subsection*{Recycling Algorithm}
+\section{Recycling Algorithm}
\index[general]{Algorithm!Recycling }
\index[general]{Recycling Algorithm }
-\addcontentsline{toc}{subsection}{Recycling Algorithm}
After all Volumes of a Pool have been pruned (as mentioned above, this happens
when a Job needs a new Volume and no appendable Volumes are available), Bacula
\end{enumerate}
-\subsection*{Recycle Status}
+\section{Recycle Status}
\index[general]{Status!Recycle }
\index[general]{Recycle Status }
-\addcontentsline{toc}{subsection}{Recycle Status}
Each Volume inherits the Recycle status (yes or no) from the Pool resource
record when the Media record is created (normally when the Volume is labeled).
\normalsize
-\subsection*{Making Bacula Use a Single Tape}
+\section{Making Bacula Use a Single Tape}
\label{singletape}
\index[general]{Tape!Making Bacula Use a Single}
\index[general]{Making Bacula Use a Single Tape}
-\addcontentsline{toc}{subsection}{Making Bacula Use a Single Tape}
Most people will want Bacula to fill a tape and when it is full, a new tape
will be mounted, and so on. However, as an extreme example, it is possible for
\end{verbatim}
\normalsize
-\subsection*{A Daily, Weekly, Monthly Tape Usage Example}
+\section{Daily, Weekly, Monthly Tape Usage Example}
\label{usageexample}
\index[general]{Daily, Weekly, Monthly Tape Usage Example }
\index[general]{Example!Daily Weekly Monthly Tape Usage }
-\addcontentsline{toc}{subsection}{Daily, Weekly, Monthly Tape Usage Example}
This example is meant to show you how one could define a fixed set of volumes
that Bacula will rotate through on a regular schedule. There are an infinite
backup.
\item Incremental backups are done Monday - Friday (actually Tue-Fri
mornings).
+% TODO: why this "actually"? does this need to be explained?
\end{itemize}
We start the system by doing a Full save to one of the weekly volumes or one
\end{verbatim}
\normalsize
-\subsection*{ Automatic Pruning and Recycling Example}
+\section{ Automatic Pruning and Recycling Example}
\label{PruningExample}
\index[general]{Automatic Pruning and Recycling Example }
\index[general]{Example!Automatic Pruning and Recycling }
-\addcontentsline{toc}{subsection}{Automatic Pruning and Recycling Example}
Perhaps the best way to understand the various resource records that come into
play during automatic pruning and recycling is to run a Job that goes through
To turn it off, either delete all the resources you've added, or simply
comment out the {\bf Schedule} record in the {\bf Job} resource.
-\subsection*{Manually Recycling Volumes}
+\section{Manually Recycling Volumes}
\label{manualrecycling}
\index[general]{Volumes!Manually Recycling }
\index[general]{Manually Recycling Volumes }
-\addcontentsline{toc}{subsection}{Manually Recycling Volumes}
Although automatic recycling of Volumes is implemented in version 1.20 and
later (see the
%%
%%
-\section*{System Requirements}
+\chapter{System Requirements}
\label{_ChapterStart51}
\index[general]{System Requirements }
\index[general]{Requirements!System }
-\addcontentsline{toc}{section}{System Requirements}
\label{SysReqs}
-\subsection*{System Requirements}
+\section{System Requirements}
\index[general]{System Requirements }
\index[general]{Requirements!System }
-\addcontentsline{toc}{subsection}{System Requirements}
\begin{itemize}
\item {\bf Bacula} has been compiled and run on Red Hat Linux, FreeBSD, and
\label{RestoreChapter}
\index[general]{Command!Bacula Console Restore }
\index[general]{Bacula Console Restore Command }
-\addcontentsline{toc}{section}{Bacula Console Restore Command}
-\subsection*{General}
+\section{General}
\index[general]{General }
-\addcontentsline{toc}{subsection}{General}
Below, we will discuss restoring files with the Console {\bf restore} command,
which is the recommended way of doing it. However, there is a standalone
option.
\label{Example1}
-\subsection*{The Restore Command}
+\section{The Restore Command}
\index[general]{Command!Restore }
\index[general]{Restore Command }
-\addcontentsline{toc}{subsection}{Restore Command}
Since Bacula maintains a catalog of your files and on which Volumes (disk or
tape), they are stored, it can do most of the bookkeeping work, allowing you
files have been restored from that volume, it will request Volume {\bf
DLT-04Aug02}.
-\subsection*{Selecting Files by Filename}
+\section{Selecting Files by Filename}
\index[general]{Selecting Files by Filename }
\index[general]{Filename!Selecting Files by }
-\addcontentsline{toc}{subsection}{Selecting Files by Filename}
If you have a small number of files to restore, and you know the filenames,
you can either put the list of filenames in a file to be read by Bacula, or
to continue and to select another option to be modified.
\label{CommandArguments}
-\subsection*{Command Line Arguments}
+\section{Command Line Arguments}
\index[general]{Arguments!Command Line }
\index[general]{Command Line Arguments }
-\addcontentsline{toc}{subsection}{Command Line Arguments}
If all the above sounds complicated, you will probably agree that it really
isn't after trying it a few times. It is possible to do everything that was
modifications (most useful in batch scripts).
\end{itemize}
-\subsection*{Restoring Directory Attributes}
+\section{Restoring Directory Attributes}
\index[general]{Attributes!Restoring Directory }
\index[general]{Restoring Directory Attributes }
-\addcontentsline{toc}{subsection}{Restoring Directory Attributes}
Depending how you do the restore, you may or may not get the directory entries
back to their original state. Here are a few of the problems you can
\end{itemize}
\label{Windows}
-\subsection*{Restoring on Windows}
+\section{Restoring on Windows}
\index[general]{Restoring on Windows }
\index[general]{Windows!Restoring on }
-\addcontentsline{toc}{subsection}{Restoring on Windows}
If you are restoring on WinNT/2K/XP systems, Bacula will restore the files
with the original ownerships and permissions as would be expected. This is
the problem.
-\subsection*{Restoring Files Can Be Slow}
+\section{Restoring Files Can Be Slow}
\index[general]{Slow!Restoring Files Can Be }
\index[general]{Restoring Files Can Be Slow }
-\addcontentsline{toc}{subsection}{Restoring Files Can Be Slow}
Restoring files is generally {\bf much} slower than backing them up for several
reasons. The first is that during a backup the tape is normally already
For all the above reasons the restore process is generally much slower than
backing up (sometimes it takes three times as long).
-\subsection*{Problems Restoring Files}
+\section{Problems Restoring Files}
\index[general]{Files!Problems Restoring }
\index[general]{Problems Restoring Files }
-\addcontentsline{toc}{subsection}{Problems Restoring Files}
The most frequent problems users have restoring files are error messages such
as:
created (at the Run yes/mod/no) prompt but before you start the restore.
\end{enumerate}
-\subsection*{Restore Errors}
+\section{Restore Errors}
\index[general]{Errors!Restore}
\index[general]{Restore Errors}
-\addcontentsline{toc}{subsection}{Restore Errors}
There are a number of reasons why there may be restore errors or
warning messages. Some of the more common ones are:
-\subsection*{Example Restore Job Resource}
+\section{Example Restore Job Resource}
\index[general]{Example Restore Job Resource }
\index[general]{Resource!Example Restore Job }
-\addcontentsline{toc}{subsection}{Example Restore Job Resource}
\footnotesize
\begin{verbatim}
be their original locations.
\label{Selection}
-\subsection*{File Selection Commands}
+\section{File Selection Commands}
\index[general]{Commands!File Selection }
\index[general]{File Selection Commands }
-\addcontentsline{toc}{subsection}{File Selection Commands}
After you have selected the Jobs to be restored and Bacula has created the
in-memory directory tree, you will enter file selection mode as indicated by
\end{description}
\label{database_restore}
-\subsection*{Restoring When Things Go Wrong}
+\section{Restoring When Things Go Wrong}
\index[general]{Restoring When Things Go Wrong }
\index[general]{Restoring Your Database}
\index[general]{Database!Restoring}
-\addcontentsline{toc}{subsection}{Restoring When Things Go Wrong}
This and the following sections will try to present a few of the kinds of
problems that can come up making restoring more difficult. I'll try to
%%
%%
-\section*{Bacula\raisebox{.6ex}{{\footnotesize
-\textsuperscript{\textregistered}}} - RPM Packaging FAQ}
+\chapter{Bacula RPM Packaging FAQ}
\label{_ChapterStart34}
\index[general]{FAQ!Bacula\textsuperscript{\textregistered} - RPM Packaging }
\index[general]{Bacula\textsuperscript{\textregistered} - RPM Packaging FAQ }
-\addcontentsline{toc}{section}{Bacula\textsuperscript{\textregistered} - RPM
Packaging FAQ}
\begin{enumerate}
\ilink{I just upgraded from 1.36.x to 1.38.x and now my director daemon won't start. It appears to start but dies silently and I get a "connection refused" error when starting the console. What is wrong?}{faq8}
\end{enumerate}
-\subsection*{Answers}
+\section{Answers}
\index[general]{Answers }
-\addcontentsline{toc}{subsection}{Answers}
\begin{enumerate}
\item
\end{verbatim}
\normalsize
-\subsection*{Build Options}
+\section{Build Options}
\index[general]{Build Options}
-\addcontentsline{toc}{subsection}{Build Options}
The spec file currently supports building on the following platforms:
\footnotesize
\begin{verbatim}
\end{verbatim}
\normalsize
-\subsection*{RPM Install Problems}
+\section{RPM Install Problems}
\index[general]{RPM Install Problems}
-\addcontentsline{toc}{subsection}{RPM Install Options}
In general the RPMs, once properly built should install correctly.
However, when attempting to run the daemons, a number of problems
can occur:
%%
%%
-\section*{Bacula Security Issues}
+\chapter{Bacula Security Issues}
\label{_ChapterStart14}
\index[general]{Bacula Security Issues}
\index[general]{Security}
\index[general]{Issues!Bacula Security}
-\addcontentsline{toc}{section}{Bacula Security Issues}
\begin{itemize}
\item Security means being able to restore your files, so read the
\end{itemize}
-\subsection*{Backward Compatibility}
+\section{Backward Compatibility}
\index[general]{Backward Compatibility}
-\addcontentsline{toc}{subsection}{Backward Compatibility}
One of the major goals of Bacula is to ensure that you can restore
tapes (I'll use the word tape to include disk Volumes) that you wrote years
ago. This means that each new version of Bacula should be able to read old
\label{wrappers}
-\subsection*{Configuring and Testing TCP Wrappers}
+\section{Configuring and Testing TCP Wrappers}
\index[general]{Configuring and Testing TCP Wrappers}
\index[general]{TCP Wrappers}
\index[general]{Wrappers!TCP}
\index[general]{libwrappers}
-\addcontentsline{toc}{subsection}{Configuring and Testing TCP Wrappers}
TCP Wrappers are implemented if you turn them on when configuring
({\bf ./configure \verb:--:with-tcp-wrappers}).
\end{verbatim}
\normalsize
-\subsection*{Running as non-root}
+\section{Running as non-root}
\index[general]{Running as non-root }
-\addcontentsline{toc}{subsection}{Running as non-root}
Security advice from Dan Langille:
+% TODO: don't use specific name
+
+% TODO: don't be too specific on operating system
+
+% TODO: maybe remove personalization?
It is a good idea to run daemons with the lowest possible privileges. In
other words, if you can, don't run applications as root which do not have to
{\tt bacula} as both the user name and the group name sounds like a good idea
to me.
-The FreeBSD port creates this user and group for you (actually, as I write
-this, the port doesn't do that, but it soon will). Here is what those entries
-looked like on my FreeBSD laptop:
+The FreeBSD port creates this user and group for you.
+Here is what those entries looked like on my FreeBSD laptop:
\footnotesize
\begin{verbatim}
%%
%%
-\section*{Data Spooling}
+\chapter{Data Spooling}
\label{SpoolingChapter}
\index[general]{Data Spooling }
\index[general]{Spooling!Data }
-\addcontentsline{toc}{section}{Data Spooling}
Bacula allows you to specify that you want the Storage daemon to initially
write your data to disk and then subsequently to tape. This serves several
in the spooling process.
\label{directives}
-\subsection*{Data Spooling Directives}
+\section{Data Spooling Directives}
\index[general]{Directives!Data Spooling }
\index[general]{Data Spooling Directives }
-\addcontentsline{toc}{subsection}{Data Spooling Directives}
The following directives can be used to control data spooling.
\label{warning}
-\subsection*{!!! MAJOR WARNING !!!}
+% TODO: fix this section name
+\section{!!! MAJOR WARNING !!!}
\index[general]{WARNING! MAJOR }
\index[general]{ MAJOR WARNING }
-\addcontentsline{toc}{subsection}{MAJOR WARNING !!!}
Please be very careful to exclude the spool directory from any backup,
otherwise, your job will write enormous amounts of data to the Volume, and
will fail possibly in bizarre ways when the spool fills.
\label{points}
-\subsection*{Other Points}
+\section{Other Points}
\index[general]{Points!Other }
\index[general]{Other Points }
-\addcontentsline{toc}{subsection}{Other Points}
\begin{itemize}
\item When data spooling is enabled, Bacula automatically turns on attribute
%%
%%
-\section*{Installing and Configuring SQLite}
+\chapter{Installing and Configuring SQLite}
\label{_ChapterStart33}
\index[general]{Installing and Configuring SQLite }
\index[general]{SQLite!Installing and Configuring }
-\addcontentsline{toc}{section}{Installing and Configuring SQLite}
-\subsection*{Installing and Configuring SQLite -- Phase I}
+\section{Installing and Configuring SQLite -- Phase I}
\index[general]{Phase I!Installing and Configuring SQLite -- }
\index[general]{Installing and Configuring SQLite -- Phase I }
-\addcontentsline{toc}{subsection}{Installing and Configuring SQLite -- Phase
I}
If you use the {\bf ./configure \verb:--:with-sqlite} statement for configuring {\bf
Please note that the {\bf ./configure} used to build {\bf Bacula} will need to
include {\bf \verb:--:with-sqlite}.
-\subsection*{Installing and Configuring SQLite -- Phase II}
+\section{Installing and Configuring SQLite -- Phase II}
\label{phase2}
\index[general]{Phase II!Installing and Configuring SQLite -- }
\index[general]{Installing and Configuring SQLite -- Phase II }
-\addcontentsline{toc}{subsection}{Installing and Configuring SQLite -- Phase
II}
This phase is done {\bf after} you have run the {\bf ./configure} command to
directory.
\end{enumerate}
-\subsection*{Linking Bacula with SQLite}
+\section{Linking Bacula with SQLite}
\index[general]{SQLite!Linking Bacula with }
\index[general]{Linking Bacula with SQLite }
-\addcontentsline{toc}{subsection}{Linking Bacula with SQLite}
If you have followed the above steps, this will all happen automatically and
the SQLite libraries will be linked into {\bf Bacula}.
-\subsection*{Testing SQLite}
+\section{Testing SQLite}
\index[general]{SQLite!Testing }
\index[general]{Testing SQLite }
-\addcontentsline{toc}{subsection}{Testing SQLite}
We have much less "production" experience
using SQLite than using MySQL. SQLite has
to start Bacula in a current directory where it has write permission.
-\subsection*{Re-initializing the Catalog Database}
+\section{Re-initializing the Catalog Database}
\index[general]{Database!Re-initializing the Catalog }
\index[general]{Re-initializing the Catalog Database }
-\addcontentsline{toc}{subsection}{Re-initializing the Catalog Database}
After you have done some initial testing with {\bf Bacula}, you will probably
want to re-initialize the catalog database and throw away all the test Jobs
%%
%%
-\section*{The Current State of Bacula -- \input{version}}
+\chapter{The Current State of Bacula}
\label{_ChapterStart2}
\index[general]{Current State of Bacula }
-\addcontentsline{toc}{section}{Current State of Bacula}
In other words, what is and what is not currently implemented and functional.
-\subsection*{What is Implemented}
+\section{What is Implemented}
\index[general]{Implemented!What}
\index[general]{What is Implemented}
-\addcontentsline{toc}{subsection}{What is Implemented}
\begin{itemize}
\item Job Control
\end{itemize}
\end{itemize}
-\subsection*{Advantages of Bacula Over Other Backup Programs}
+\section{Advantages Over Other Backup Programs}
\index[general]{Advantages of Bacula Over Other Backup Programs }
\index[general]{Programs!Advantages of Bacula Over Other Backup }
-\addcontentsline{toc}{subsection}{Advantages of Bacula Over Other Backup
Programs}
\begin{itemize}
\end{itemize}
-\subsection*{Current Implementation Restrictions}
+\section{Current Implementation Restrictions}
\index[general]{Current Implementation Restrictions }
\index[general]{Restrictions!Current Implementation }
-\addcontentsline{toc}{subsection}{Current Implementation Restrictions}
\begin{itemize}
\item If you have over 4 billion file entries stored in your database, the
files) are not yet implemented.
\end{itemize}
-\subsection*{Design Limitations or Restrictions}
+\section{Design Limitations or Restrictions}
\index[general]{Restrictions!Design Limitations or }
\index[general]{Design Limitations or Restrictions }
-\addcontentsline{toc}{subsection}{Design Limitations or Restrictions}
\begin{itemize}
\item Names (resource names, Volume names, and such) defined in Bacula
%%
%%
-\section*{Storage Daemon Configuration}
+\chapter{Storage Daemon Configuration}
\label{_ChapterStart31}
\index[general]{Storage Daemon Configuration}
\index[general]{Configuration!Storage Daemon}
-\addcontentsline{toc}{section}{Storage Daemon Configuration}
-\subsection*{General}
+\section{General}
\index[general]{General}
-\addcontentsline{toc}{subsection}{General}
The Storage Daemon configuration file has relatively few resource definitions.
However, due to the great variation in backup media and system capabilities,
information messages are to be sent.
\end{itemize}
-\subsection*{Storage Resource}
+\section{Storage Resource}
\label{StorageResource}
\index[general]{Resource!Storage}
\index[general]{Storage Resource}
-\addcontentsline{toc}{subsection}{Storage Resource}
In general, the properties specified under the Storage resource define global
properties of the Storage daemon. Each Storage daemon configuration file must
\end{verbatim}
\normalsize
-\subsection*{Director Resource}
+\section{Director Resource}
\label{DirectorResource1}
\index[general]{Director Resource}
\index[general]{Resource!Director}
-\addcontentsline{toc}{subsection}{Director Resource}
The Director resource specifies the Name of the Director which is permitted
to use the services of the Storage daemon. There may be multiple Director
\normalsize
\label{DeviceResource}
-\subsection*{Device Resource}
+\section{Device Resource}
\index[general]{Resource!Device}
\index[general]{Device Resource}
-\addcontentsline{toc}{subsection}{Device Resource}
The Device Resource specifies the details of each device (normally a tape
drive) that can be used by the Storage daemon. There may be multiple
Bacula will invalidate the Volume slot number stored in the catalog and
try again. If no additional changer volumes exist, Bacula will ask the
operator to intervene. The default is 5 minutes.
+% TODO: if this is the format, then maybe "5 minutes" should be in
+% TODO: quotes? define style. see others.
\item [Maximum Rewind Wait = {\it time}]
\index[sd]{Maximum Rewind Wait}
\end{description}
\label{mountcodes}
-\subsection*{Edit Codes for Mount and Unmount Directives}
+\section{Edit Codes for Mount and Unmount Directives}
\index[general]{Directives!Edit Codes}
\index[general]{Edit Codes for Mount and Unmount Directives }
-\addcontentsline{toc}{subsection}{Edit Codes for Mount and Unmount Directives}
Before submitting the {\bf Mount Command}, {\bf Unmount Command},
{\bf Write Part Command}, or {\bf Free Space Command} directives
\normalsize
-\subsection*{Devices that require a mount (DVD)}
+\section{Devices that require a mount (DVD)}
\index[general]{Devices that require a mount (DVD)}
\index[general]{DVD!Devices that require a mount}
-\addcontentsline{toc}{subsection}{Devices that require a mount (DVD)}
All the directives in this section are implemented only in
Bacula version 1.37 and later and hence are available in version 1.38.6.
-\subsection*{Capabilities}
+\section{Capabilities}
\index[general]{Capabilities}
-\addcontentsline{toc}{subsection}{Capabilities}
\begin{description}
\end{description}
-\subsection*{Messages Resource}
+\section{Messages Resource}
\label{MessagesResource1}
\index[general]{Resource!Messages}
\index[general]{Messages Resource}
-\addcontentsline{toc}{subsection}{Messages Resource}
For a description of the Messages Resource, please see the
\ilink{Messages Resource}{_ChapterStart15} Chapter of this
manual.
-\subsection*{Sample Storage Daemon Configuration File}
+\section{Sample Storage Daemon Configuration File}
\label{SampleConfiguration}
\index[general]{File!Sample Storage Daemon Configuration}
\index[general]{Sample Storage Daemon Configuration File}
-\addcontentsline{toc}{subsection}{Sample Storage Daemon Configuration File}
A example Storage Daemon configuration file might be the following:
%%
%%
-\section*{Backup Strategies}
+\chapter{Backup Strategies}
\label{_ChapterStart3}
\index[general]{Strategies!Backup }
\index[general]{Backup Strategies }
-\addcontentsline{toc}{section}{Backup Strategies}
Although Recycling and Backing Up to Disk Volume have been discussed in
previous chapters, this chapter is meant to give you an overall view of
possible backup strategies and to explain their advantages and disadvantages.
\label{Simple}
-\subsection*{Simple One Tape Backup}
+\section{Simple One Tape Backup}
\index[general]{Backup!Simple One Tape }
\index[general]{Simple One Tape Backup }
-\addcontentsline{toc}{subsection}{Simple One Tape Backup}
Probably the simplest strategy is to back everything up to a single tape and
insert a new (or recycled) tape when it fills and Bacula requests a new one.
-\subsubsection*{Advantages}
+\subsection{Advantages}
\index[general]{Advantages }
-\addcontentsline{toc}{subsubsection}{Advantages}
\begin{itemize}
\item The operator intervenes only when a tape change is needed. (once a
time.
\end{itemize}
-\subsubsection*{Disadvantages}
+\subsection{Disadvantages}
\index[general]{Disadvantages }
-\addcontentsline{toc}{subsubsection}{Disadvantages}
\begin{itemize}
\item If your site burns down, you will lose your current backups, and in my
continue, and this will generally happen during working hours.
\end{itemize}
-\subsubsection*{Practical Details}
+\subsection{Practical Details}
\index[general]{Details!Practical }
\index[general]{Practical Details }
-\addcontentsline{toc}{subsubsection}{Practical Details}
This system is very simple. When the tape fills and Bacula requests a new
tape, you {\bf unmount} the tape from the Console program, insert a new tape
incremental backups the rest of the week.
\label{Manual}
-\subsection*{Manually Changing Tapes}
+\section{Manually Changing Tapes}
\index[general]{Tapes!Manually Changing }
\index[general]{Manually Changing Tapes }
-\addcontentsline{toc}{subsection}{Manually Changing Tapes}
If you use the strategy presented above, Bacula will ask you to change the
tape, and you will {\bf unmount} it and then remount it when you have inserted
\label{Daily}
-\subsection*{Daily Tape Rotation}
+\section{Daily Tape Rotation}
\index[general]{Rotation!Daily Tape }
\index[general]{Daily Tape Rotation }
-\addcontentsline{toc}{subsection}{Daily Tape Rotation}
This scheme is quite different from the one mentioned above in that a Full
backup is done to a different tape every day of the week. Generally, the
run this way, or using modifications of it based on two week cycles or longer.
-\subsubsection*{Advantages}
+\subsection{Advantages}
\index[general]{Advantages }
-\addcontentsline{toc}{subsubsection}{Advantages}
\begin{itemize}
\item All the data is stored on a single tape, so recoveries are simple and
of one days data will be lost if the site burns down.
\end{itemize}
-\subsubsection*{Disadvantages}
+\subsection{Disadvantages}
\index[general]{Disadvantages }
-\addcontentsline{toc}{subsubsection}{Disadvantages}
\begin{itemize}
\item The tape must be changed every day requiring a lot of operator
reasons of tape capacity.
\end{itemize}
-\subsubsection*{Practical Details}
+\subsection{Practical Details}
\index[general]{Details!Practical }
\index[general]{Practical Details }
-\addcontentsline{toc}{subsubsection}{Practical Details}
The simplest way to "force" Bacula to use a different tape each day is to
define a different Pool for each day of the the week a backup is done. In
%%
%%
-\section*{Using stunnel to Encrypt Communications to Clients}
+\chapter{Using Stunnel to Encrypt Communications}
\label{_ChapterStart6}
-\index[general]{Clients!Using Bacula to Encrypt Communications to }
-\index[general]{Using Bacula to Encrypt Communications to Clients }
-\addcontentsline{toc}{section}{Using Bacula to Encrypt Communications to
+\index[general]{Using Stunnel to Encrypt Communications to Clients }
Clients}
Prior to version 1.37, Bacula did not have built-in communications encryption.
machines. This example was developed between two Linux machines running
stunnel version 4.04-4 on a Red Hat Enterprise 3.0 system.
-\subsection*{Communications Ports Used}
+\section{Communications Ports Used}
\index[general]{Used!Communications Ports }
\index[general]{Communications Ports Used }
-\addcontentsline{toc}{subsection}{Communications Ports Used}
First, you must know that with the standard Bacula configuration, the Director
will contact the File daemon on port 9102. The File daemon then contacts the
Director to contact it), and the Storage daemon is a server to the File
daemon.
-\subsection*{Encryption}
+\section{Encryption}
\index[general]{Encryption }
-\addcontentsline{toc}{subsection}{Encryption}
The encryption is accomplished between the Director and the File daemon by
using an stunnel on the Director's machine (server) to encrypt the data and to
for stunnel, and we will need to make some minor modifications to the
Director's conf file. None of the other conf files need to be changed.
-\subsection*{A Picture}
+\section{A Picture}
\index[general]{Picture }
-\addcontentsline{toc}{subsection}{Picture}
Since pictures usually help a lot, here is an overview of what we will be
doing. Don't worry about all the details of the port numbers and such for the
\end{verbatim}
\normalsize
-\subsection*{Certificates}
+\section{Certificates}
\index[general]{Certificates }
-\addcontentsline{toc}{subsection}{Certificates}
In order for stunnel to function as a server, which it does in our diagram for
Stunnel 1 and Stunnel 4, you must have a certificate and the key. It is
See below for how to create a self-signed certificate.
-\subsection*{Securing the Data Channel}
+\section{Securing the Data Channel}
\index[general]{Channel!Securing the Data }
\index[general]{Securing the Data Channel }
-\addcontentsline{toc}{subsection}{Securing the Data Channel}
To simplify things a bit, let's for the moment consider only the data channel.
That is the connection between the File daemon and the Storage daemon, which
machine, we run Stunnel 4, which listens on port 29103, decrypts the data and
sends it to the Storage daemon, which is listening on port 9103.
-\subsection*{Modification of bacula-dir.conf for the Data Channel}
+\section{Data Channel Configuration}
\index[general]{Modification of bacula-dir.conf for the Data Channel }
-\index[general]{Channel!Modification of bacula-dir.conf for the Data }
-\addcontentsline{toc}{subsection}{Modification of bacula-dir.conf for the Data
-Channel}
+\index[general]{baculoa-dir.conf!Modification for the Data Channel }
The Storage resource of the bacula-dir.conf normally looks something like the
following:
localhost (the client machine). We could have used client as the address as
well.
-\subsection*{config Files for stunnel to Encrypt the Data Channel}
-\index[general]{Config Files for stunnel to Encrypt the Data Channel }
-\index[general]{Channel!config Files for stunnel to Encrypt the Data }
-\addcontentsline{toc}{subsection}{config Files for stunnel to Encrypt the Data
+\section{Stunnel Configuration for the Data Channel}
+\index[general]{Stunnel Configuration for the Data Channel }
Channel}
In the diagram above, we see above Stunnel 2 that we use stunnel-fd2.conf on the
\end{verbatim}
\normalsize
-\subsection*{Starting and Testing the Data Encryption}
+\section{Starting and Testing the Data Encryption}
\index[general]{Starting and Testing the Data Encryption }
\index[general]{Encryption!Starting and Testing the Data }
-\addcontentsline{toc}{subsection}{Starting and Testing the Data Encryption}
It will most likely be the simplest to implement the Data Channel encryption
in the following order:
the stunnels, rerun the job, repeat until it works.
\end{itemize}
-\subsection*{Encrypting the Control Channel}
+\section{Encrypting the Control Channel}
\index[general]{Channel!Encrypting the Control }
\index[general]{Encrypting the Control Channel }
-\addcontentsline{toc}{subsection}{Encrypting the Control Channel}
The Job control channel is between the Director and the File daemon, and as
mentioned above, it is not really necessary to encrypt, but it is good
machine can decrypt the data before passing it on to port 9102 where the File
daemon is listening.
-\subsection*{Modification of bacula-dir.conf for the Control Channel}
-\index[general]{Channel!Modification of bacula-dir.conf for the Control }
-\index[general]{Modification of bacula-dir.conf for the Control Channel }
-\addcontentsline{toc}{subsection}{Modification of bacula-dir.conf for the
-Control Channel}
+\section{Control Channel Configuration}
+\index[general]{Control Channel Configuration }
We need to modify the standard Client resource, which would normally look
something like:
This will cause the Director to send the control information to
localhost:29102 instead of directly to the client.
-\subsection*{config Files for stunnel to Encrypt the Control Channel}
+\section{Stunnel Configuration for the Control Channel}
\index[general]{Config Files for stunnel to Encrypt the Control Channel }
-\index[general]{Channel!config Files for stunnel to Encrypt the Control }
-\addcontentsline{toc}{subsection}{config Files for stunnel to Encrypt the
Control Channel}
The stunnel config file, stunnel-dir.conf, for the Director's machine would
\end{verbatim}
\normalsize
-\subsection*{Starting and Testing the Control Channel}
+\section{Starting and Testing the Control Channel}
\index[general]{Starting and Testing the Control Channel }
\index[general]{Channel!Starting and Testing the Control }
-\addcontentsline{toc}{subsection}{Starting and Testing the Control Channel}
It will most likely be the simplest to implement the Control Channel
encryption in the following order:
the stunnels, rerun the job, repeat until it works.
\end{itemize}
-\subsection*{Using stunnel to Encrypt to a Second Client}
+\section{Using stunnel to Encrypt to a Second Client}
\index[general]{Using stunnel to Encrypt to a Second Client }
\index[general]{Client!Using stunnel to Encrypt to a Second }
-\addcontentsline{toc}{subsection}{Using stunnel to Encrypt to a Second Client}
On the client machine, you can just duplicate the setup that you have on the
first client file for file and it should work fine.
There are no changes necessary to the Storage daemon or the other stunnel so
that this new client can talk to our Storage daemon.
-\subsection*{Creating a Self-signed Certificate}
+\section{Creating a Self-signed Certificate}
\index[general]{Creating a Self-signed Certificate }
\index[general]{Certificate!Creating a Self-signed }
-\addcontentsline{toc}{subsection}{Creating a Self-signed Certificate}
You may create a self-signed certificate for use with stunnel that will permit
you to make it function, but will not allow certificate validation. The .pem
each of them by entering a return, or if you wish you may enter your own data.
-\subsection*{Getting a CA Signed Certificate}
+\section{Getting a CA Signed Certificate}
\index[general]{Certificate!Getting a CA Signed }
\index[general]{Getting a CA Signed Certificate }
-\addcontentsline{toc}{subsection}{Getting a CA Signed Certificate}
The process of getting a certificate that is signed by a CA is quite a bit
more complicated. You can purchase one from quite a number of PKI vendors, but
{http://ospkibook.sourceforge.net/docs/OSPKI-2.4.7/OSPKI-html/ospki-book.htm}.
Note, this link may change.
-\subsection*{Using ssh to Secure the Communications}
+\section{Using ssh to Secure the Communications}
\index[general]{Communications!Using ssh to Secure the }
\index[general]{Using ssh to Secure the Communications }
-\addcontentsline{toc}{subsection}{Using ssh to Secure the Communications}
Please see the script {\bf ssh-tunnel.sh} in the {\bf examples} directory. It
was contributed by Stephan Holl.
%%
%%
-\section*{Supported Autochangers}
+\chapter{Supported Autochangers}
\label{_ChapterStart21}
-\addcontentsline{toc}{section}{Supported Autochangers}
-\subsection*{Supported Autochanger Models}
+\section{Supported Autochanger Models}
\label{Models}
\index[general]{Supported Autochanger Models}
\index[general]{Autochangers!Supported}
-\addcontentsline{toc}{subsection}{Supported Autochanger Models}
I hesitate to call these "supported" autochangers because the only
autochangers that I have in my possession and am able to test are the HP
%%
%%
-\section*{Supported Tape Drives}
+\chapter{Supported Tape Drives}
\label{_ChapterStart19}
\index[general]{Drives!Supported Tape }
\index[general]{Supported Tape Drives }
-\addcontentsline{toc}{section}{Supported Tape Drives}
-\subsection*{Supported Tape Drives}
+\section{Supported Tape Drives}
\label{SupportedDrives}
\index[general]{Drives!Supported Tape }
\index[general]{Supported Tape Drives }
-\addcontentsline{toc}{subsection}{Supported Tape Drives}
Even if your drive is on the list below, please check the
\ilink{Tape Testing Chapter}{btape1} of this manual for
Autochangers chapter of this document, where you will find other tape drives
that work with Bacula.
-\subsection*{Unsupported Tape Drives}
+\section{Unsupported Tape Drives}
\label{UnSupportedDrives}
\index[general]{Unsupported Tape Drives }
\index[general]{Drives!Unsupported Tape }
-\addcontentsline{toc}{subsection}{Unsupported Tape Drives}
Previously OnStream IDE-SCSI tape drives did not work with Bacula. As of
Bacula version 1.33 and the osst kernel driver version 0.9.14 or later, they
need to take a lot of care in configuring them to make them work correctly
with Bacula.
-\subsection*{FreeBSD Users Be Aware!!!}
+\section{FreeBSD Users Be Aware!!!}
\index[general]{FreeBSD Users Be Aware }
\index[general]{Aware!FreeBSD Users Be }
-\addcontentsline{toc}{subsection}{FreeBSD Users Be Aware!!!}
Unless you have patched the pthreads library on FreeBSD 4.11 systems, you will
lose data when Bacula spans tapes. This is because the unpatched pthreads
{\bf important} information on how to configure your tape drive for
compatibility with Bacula.
-\subsection*{Supported Autochangers}
+\section{Supported Autochangers}
\index[general]{Autochangers!Supported }
\index[general]{Supported Autochangers }
-\addcontentsline{toc}{subsection}{Supported Autochangers}
For information on supported autochangers, please see the
\ilink{Autochangers Known to Work with Bacula}{Models}
section of the Supported Autochangers chapter of this manual.
-\subsection*{Tape Specifications}
+\section{Tape Specifications}
\index[general]{Specifications!Tape}
\index[general]{Tape Specifications}
-\addcontentsline{toc}{subsection}{Tape Specifications}
If you want to know what tape drive to buy that will work with Bacula,
we really cannot tell you. However, we can say that if you are going
to buy a drive, you should try to avoid DDS drives. The technology is
%%
%%
-\section*{Supported Operating Systems}
+\chapter{Supported Operating Systems}
\label{_ChapterStart46}
\index[general]{Systems!Supported Operating }
\index[general]{Supported Operating Systems }
-\addcontentsline{toc}{section}{Supported Operating Systems}
-\subsection*{Supported Operating Systems}
+\section{Supported Operating Systems}
\label{SupportedOSes}
\index[general]{Systems!Supported Operating }
\index[general]{Supported Operating Systems }
-\addcontentsline{toc}{subsection}{Supported Operating Systems}
\begin{itemize}
\item Linux systems (built and tested on SuSE 10.1).
%%
%%
-\section*{Testing Your Tape Drive With Bacula}
+\chapter{Testing Your Tape Drive With Bacula}
\label{_ChapterStart27}
\index[general]{Testing Your Tape Drive With Bacula}
-\addcontentsline{toc}{section}{Testing Your Tape Drive With Bacula}
This chapter is concerned with testing and configuring your tape drive to make
sure that it will work properly with Bacula using the {\bf btape} program.
\label{summary}
-\subsection*{Summary of Steps to Take to Get Your Tape Drive Working}
-\index[general]{Working!Summary of Steps to Take to Get Your Tape Drive}
-\index[general]{Summary of Steps to Take to Get Your Tape Drive Working}
-\addcontentsline{toc}{subsection}{Summary of Steps to Take to Get Your Tape
-Drive Working}
+\section{Get Your Tape Drive Working}
In general, you should follow the following steps to get your tape drive to
work with Bacula. Start with a tape mounted in your drive. If you have an
\ilink{ Tips for Resolving Problems}{problems1} section below.
\label{NoTapeInDrive}
-\subsubsection*{Problems When no Tape in Drive}
+\subsection{Problems When no Tape in Drive}
\index[general]{Problems When no Tape in Drive}
-\addcontentsline{toc}{subsubsection}{Problems When no Tape in Drive}
When Bacula was first written the Linux 2.4 kernel permitted opening the
drive whether or not there was a tape in the drive. Thus the Bacula code is
based on the concept that if the drive cannot be opened, there is a serious
which will give you more time to mount the next tape before the job is
failed.
-\subsubsection*{Specifying the Configuration File}
+\subsection{Specifying the Configuration File}
\index[general]{File!Specifying the Configuration}
\index[general]{Specifying the Configuration File}
-\addcontentsline{toc}{subsubsection}{Specifying the Configuration File}
Starting with version 1.27, each of the tape utility programs including the
{\bf btape} program requires a valid Storage daemon configuration file
in the current directory, but you may specify a different configuration file
using the {\bf -c} option.
-\subsubsection*{Specifying a Device Name For a Tape}
+\subsection{Specifying a Device Name For a Tape}
\index[general]{Tape!Specifying a Device Name For a}
\index[general]{Specifying a Device Name For a Tape}
-\addcontentsline{toc}{subsubsection}{Specifying a Device Name For a Tape}
{\bf btape} {\bf device-name} where the Volume can be found. In the case of a
tape, this is the physical device name such as {\bf /dev/nst0} or {\bf
See below for specifying Volume names.
-\subsubsection*{Specifying a Device Name For a File}
+\subsection{Specifying a Device Name For a File}
\index[general]{File!Specifying a Device Name For a}
\index[general]{Specifying a Device Name For a File}
-\addcontentsline{toc}{subsubsection}{Specifying a Device Name For a File}
If you are attempting to read or write an archive file rather than a tape, the
{\bf device-name} should be the full path to the archive location including
to the archive device name, and the filename is equivalent to the volume name.
-\subsection*{btape}
+\section{btape}
\label{btape1}
\index[general]{Btape}
-\addcontentsline{toc}{subsection}{btape}
This program permits a number of elementary tape operations via a tty command
interface. The {\bf test} command, described below, can be very useful for
\end{verbatim}
\normalsize
-\subsubsection*{Using btape to Verify your Tape Drive}
+\subsection{Using btape to Verify your Tape Drive}
\index[general]{Using btape to Verify your Tape Drive}
\index[general]{Drive!Using btape to Verify your Tape}
-\addcontentsline{toc}{subsubsection}{Using btape to Verify your Tape Drive}
An important reason for this program is to ensure that a Storage daemon
configuration file is defined so that Bacula will correctly read and write
For FreeBSD users, please see the notes below for doing further testing of
your tape drive.
-\subsubsection*{Linux SCSI Tricks}
+\subsection{Linux SCSI Tricks}
\index[general]{Tricks!Linux SCSI}
\index[general]{Linux SCSI Tricks}
-\addcontentsline{toc}{subsubsection}{Linux SCSI Tricks}
You can find out what SCSI devices you have by doing:
\label{problems1}
-\subsection*{Tips for Resolving Problems}
+\section{Tips for Resolving Problems}
\index[general]{Problems!Tips for Resolving}
\index[general]{Tips for Resolving Problems}
-\addcontentsline{toc}{subsection}{Tips for Resolving Problems}
\label{CannotRestore}
-\subsubsection*{Bacula Saves But Cannot Restore Files}
+\subsection{Bacula Saves But Cannot Restore Files}
\index[general]{Files!Bacula Saves But Cannot Restore}
\index[general]{Bacula Saves But Cannot Restore Files}
-\addcontentsline{toc}{subsubsection}{Bacula Saves But Cannot Restore Files}
If you are getting error messages such as:
\label{opendevice}
-\subsubsection*{Bacula Cannot Open the Device}
+\subsection{Bacula Cannot Open the Device}
\index[general]{Device!Bacula Cannot Open the}
\index[general]{Bacula Cannot Open the Device}
-\addcontentsline{toc}{subsubsection}{Bacula Cannot Open the Device}
If you get an error message such as:
for this tip.
\label{IncorrectFiles}
-\subsubsection*{Incorrect File Number}
+\subsection{Incorrect File Number}
\index[general]{Number!Incorrect File}
\index[general]{Incorrect File Number}
-\addcontentsline{toc}{subsubsection}{Incorrect File Number}
When Bacula moves to the end of the medium, it normally uses the {\bf
ioctl(MTEOM)} function. Then Bacula uses the {\bf ioctl(MTIOCGET)} function to
\end{itemize}
\label{IncorrectBlocks}
-\subsubsection*{Incorrect Number of Blocks or Positioning Errors during btape
+\subsection{Incorrect Number of Blocks or Positioning Errors during btape
Testing}
\index[general]{Testing!Incorrect Number of Blocks or Positioning Errors
during btape}
\index[general]{Incorrect Number of Blocks or Positioning Errors during btape
Testing}
-\addcontentsline{toc}{subsubsection}{Incorrect Number of Blocks or Positioning
Errors during btape Testing}
{\bf Bacula's} preferred method of working with tape drives (sequential
To recover files from tapes written in fixed block mode, see below.
\label{TapeModes}
-\subsubsection*{Ensuring that the Tape Modes Are Properly Set -- {\bf Linux
+\subsection{Ensuring that the Tape Modes Are Properly Set -- {\bf Linux
Only}}
\index[general]{Ensuring that the Tape Modes Are Properly Set -- Linux Only}
\index[general]{Only!Ensuring that the Tape Modes Are Properly Set -- Linux}
-\addcontentsline{toc}{subsubsection}{Ensuring that the Tape Modes Are Properly
Set -- Linux Only}
If you have a modern SCSI tape drive and you are having problems with the {\bf
the other modes that Bacula needs to function properly.
\label{compression}
-\subsubsection*{Checking and Setting Tape Hardware Compression and Blocking
+\subsection{Checking and Setting Tape Hardware Compression and Blocking
Size}
\index[general]{Checking and Setting Tape Hardware Compression and Blocking
Size}
\index[general]{Size!Checking and Setting Tape Hardware Compression and
Blocking}
-\addcontentsline{toc}{subsubsection}{Checking and Setting Tape Hardware
Compression and Blocking Size}
As far as I can tell, there is no way with the {\bf mt} program to check if
To recover files from tapes written in fixed block mode, see below.
\label{FreeBSDTapes}
-\subsubsection*{Tape Modes on FreeBSD}
+\subsection{Tape Modes on FreeBSD}
\index[general]{FreeBSD!Tape Modes on}
\index[general]{Tape Modes on FreeBSD}
-\addcontentsline{toc}{subsubsection}{Tape Modes on FreeBSD}
On most FreeBSD systems such as 4.9 and most tape drives, Bacula should run
with:
-\subsubsection*{Finding your Tape Drives and Autochangers on FreeBSD}
+\subsection{Finding your Tape Drives and Autochangers on FreeBSD}
\index[general]{FreeBSD!Finding your Tape Drives and Autochangers}
\index[general]{Finding your Tape Drives and Autochangers on FreeBSD}
-\addcontentsline{toc}{subsubsection}{Finding your Tape Drives and
Autochangers on FreeBSD}
On FreeBSD, you can do a {\bf camcontrol devlist} as root to determine what
\label{onstream}
-\subsubsection*{Using the OnStream driver on Linux Systems}
+\subsection{Using the OnStream driver on Linux Systems}
\index[general]{Using the OnStream driver on Linux Systems}
\index[general]{Systems!Using the OnStream driver on Linux}
-\addcontentsline{toc}{subsubsection}{Using the OnStream driver on Linux
Systems}
Bacula version 1.33 (not 1.32x) is now working and ready for testing with the
\end{verbatim}
\normalsize
-\subsection*{Hardware Compression on EXB-8900}
+\section{Hardware Compression on EXB-8900}
\index[general]{Hardware Compression on EXB-8900}
\index[general]{EXB-8900!Hardware Compression}
-\addcontentsline{to}{subsection}{Hardware Compression on EXB-8900}
To active, check, or disable the hardware compression feature
on an EXB-8900, use the exabyte MammothTool. You can get it here:
\elink{http://www.exabyte.com/support/online/downloads/index.cfm}
options for a small reference.
\label{fill}
-\subsubsection*{Using btape to Simulate Filling a Tape}
+\subsection{Using btape to Simulate Filling a Tape}
\index[general]{Using btape to Simulate Filling a Tape}
\index[general]{Tape!Using btape to Simulate Filling a}
-\addcontentsline{toc}{subsubsection}{Using btape to Simulate Filling a
Tape}
Because there are often problems with certain tape drives or systems when end
Bacula.
\label{RecoveringFiles}
-\subsection*{Recovering Files Written to Tape With Fixed Block Sizes}
+\section{Recovering Files Written With Fixed Block Sizes}
\index[general]{Recovering Files Written to Tape With Fixed Block Sizes}
-\index[general]{Sizes!Recovering Files Written to Tape With Fixed Block}
-\addcontentsline{toc}{subsection}{Recovering Files Written to Tape With Fixed
Block Sizes}
If you have been previously running your tape drive in fixed block mode
your files.
\label{BlockModes}
-\subsection*{Tape Blocking Modes}
+\section{Tape Blocking Modes}
\index[general]{Modes!Tape Blocking}
\index[general]{Tape Blocking Modes}
-\addcontentsline{toc}{subsection}{Tape Blocking Modes}
SCSI tapes may either be written in {\bf variable} or {\bf fixed} block sizes.
Newer drives support both modes, but some drives such as the QIC devices
sequentially recover each of the blocks it has written by using the same
number of sequential reads as it had written.
-\subsection*{Details of Tape Modes}
+\section{Details of Tape Modes}
\index[general]{Modes!Details}
\index[general]{Details of Tape Modes}
-\addcontentsline{toc}{subsection}{Details of Tape Modes}
Rudolf Cejka has provided the following information concerning
certain tape modes and MTEOM.
\end{description}
-\subsection*{Autochanger Errors}
+\section{Autochanger Errors}
\index[general]{Errors!Autochanger}
\index[general]{Autochanger Errors}
-\addcontentsline{toc}{subsection}{Autochanger Errors}
If you are getting errors such as:
SCSI disk drives (including SATA drives), you might want to change
the permissions on /dev/sg*.
-\subsection*{Syslog Errors}
+\section{Syslog Errors}
\index[general]{Errors!Syslog}
\index[general]{Syslog Errors}
-\addcontentsline{toc}{subsection}{Syslog Errors}
If you are getting errors such as:
%%
%%
-\section*{Thanks}
+\chapter{Thanks}
\label{_ChapterStart44}
\index[general]{Thanks }
-\addcontentsline{toc}{section}{Thanks}
I thank everyone who has helped this project. Unfortunately, I cannot
thank everyone (bad memory). However, the AUTHORS file in the main source
code directory should include the names of all persons who have contributed
Thanks to the Free Software Foundation Europe e.V. for assuming the
responsibilities of protecting the Bacula copyright.
-\subsection*{Copyrights and Trademarks}
+% TODO: remove this from the book?
+\section*{Copyrights and Trademarks}
\index[general]{Trademarks!Copyrights and }
\index[general]{Copyrights and Trademarks }
-\addcontentsline{toc}{subsection}{Copyrights and Trademarks}
Certain words and/or products are Copyrighted or Trademarked such as Windows
(by Microsoft). Since they are numerous, and we are not necessarily aware of
%%
%%
-\section*{Tips and Suggestions}
+\chapter{Tips and Suggestions}
\label{_ChapterStart8}
\index[general]{Tips and Suggestions }
\index[general]{Suggestions!Tips and }
-\addcontentsline{toc}{section}{Tips and Suggestions}
-\subsection*{Examples}
+\section{Examples}
\label{examples}
\index[general]{Examples }
-\addcontentsline{toc}{subsection}{Examples}
There are a number of example scripts for various things that can be found in
the {\bf example} subdirectory and its subdirectories of the Bacula source
distribution.
-\subsection*{Upgrading Bacula Versions}
+\section{Upgrading Bacula Versions}
\label{upgrading}
\index[general]{Upgrading Bacula Versions }
\index[general]{Versions!Upgrading Bacula }
-\addcontentsline{toc}{subsection}{Upgrading Bacula Versions}
The first thing to do before upgrading from one version to another is to
ensure that you don't overwrite or delete your production (current) version of Bacula until
or alternatively, you can find it in the
{\bf \lt{}bacula-source\gt{}/src/cats} directory.
-\subsection*{Getting Notified of Job Completion}
+\section{Getting Notified of Job Completion}
\label{notification}
\index[general]{Getting Notified of Job Completion }
\index[general]{Completion!Getting Notified of Job }
-\addcontentsline{toc}{subsection}{Getting Notified of Job Completion}
One of the first things you should do is to ensure that you are being properly
notified of the status of each Job run by Bacula, or at a minimum of each Job
message will be sent, but the output will still be appended to the log file as
well as sent to the Console program.
-\subsection*{Getting Email Notification to Work}
+\section{Getting Email Notification to Work}
\label{email}
\index[general]{Work!Getting Email Notification to }
\index[general]{Getting Email Notification to Work }
-\addcontentsline{toc}{subsection}{Getting Email Notification to Work}
The section above describes how to get email notification of job status.
Occasionally, however, users have problems receiving any email at all. In that
\end{itemize}
-\subsection*{Getting Notified that Bacula is Running}
+\section{Getting Notified that Bacula is Running}
\label{JobNotification}
\index[general]{Running!Getting Notified that Bacula is }
\index[general]{Getting Notified that Bacula is Running }
-\addcontentsline{toc}{subsection}{Getting Notified that Bacula is Running}
If like me, you have setup Bacula so that email is sent only when a Job has
errors, as described in the previous section of this chapter, inevitably, one
\end{verbatim}
\normalsize
-\subsection*{Maintaining a Valid Bootstrap File}
+\section{Maintaining a Valid Bootstrap File}
\label{bootstrap}
\index[general]{Maintaining a Valid Bootstrap File }
\index[general]{File!Maintaining a Valid Bootstrap }
-\addcontentsline{toc}{subsection}{Maintaining a Valid Bootstrap File}
By using a
\ilink{ WriteBootstrap}{writebootstrap} record in each of your
\end{verbatim}
\normalsize
-\subsection*{Rejected Volumes After a Crash}
+\section{Rejected Volumes After a Crash}
\label{RejectedVolumes}
\index[general]{Crash!Rejected Volumes After a }
\index[general]{Rejected Volumes After a Crash }
-\addcontentsline{toc}{subsection}{Rejected Volumes After a Crash}
Bacula keeps a count of the number of files on each Volume in its Catalog
database so that before appending to a tape, it can verify that the number of
files the catalog claims are actually stored on that Volume, and back them up
to another tape and recycle this tape.
-\subsection*{Security Considerations}
+\section{Security Considerations}
\label{security}
\index[general]{Considerations!Security }
\index[general]{Security Considerations }
-\addcontentsline{toc}{subsection}{Security Considerations}
Only the File daemon needs to run with root permission (so that it can access
all files). As a consequence, you may run your Director, Storage daemon, and
assign the user {\bf bacula} a userid and add it to your Director's
configuration file in the appropriate Catalog resource.
-\subsection*{Creating Holiday Schedules}
+\section{Creating Holiday Schedules}
\label{holiday}
\index[general]{Schedules!Creating Holiday }
\index[general]{Creating Holiday Schedules }
-\addcontentsline{toc}{subsection}{Creating Holiday Schedules}
If you normally change tapes every day or at least every Friday, but Thursday
is a holiday, you can use a trick proposed by Lutz Kittler to ensure that no
modify the script to return non-zero on any day when you do not want Bacula to
run the job.
-\subsection*{Automatic Labeling Using Your Autochanger}
+\section{Automatic Labeling Using Your Autochanger}
\label{autolabel}
\index[general]{Automatic Labeling Using Your Autochanger }
\index[general]{Autochanger!Automatic Labeling Using Your }
-\addcontentsline{toc}{subsection}{Automatic Labeling Using Your Autochanger}
If you have an autochanger but it does not support barcodes, using a "trick"
you can make Bacula automatically label all the volumes in your autochanger's
and you should see all the volumes nicely created.
-\subsection*{Backing Up Portables Using DHCP}
+\section{Backing Up Portables Using DHCP}
\label{DNS}
\index[general]{DHCP!Backing Up Portables Using }
\index[general]{Backing Up Portables Using DHCP }
-\addcontentsline{toc}{subsection}{Backing Up Portables Using DHCP}
You may want to backup laptops or portables that are not always connected to
the network. If you are using DHCP to assign an IP address to those machines
to assign a name to those machines that can be used in the Address field of
the Client resource in the Director's conf file.
-\subsection*{Going on Vacation}
+\section{Going on Vacation}
\label{Vacation}
\index[general]{Vacation!Going on }
\index[general]{Going on Vacation }
-\addcontentsline{toc}{subsection}{Going on Vacation}
At some point, you may want to be absent for a week or two and you want to
make sure Bacula has enough tape left so that the backups will complete. You
replaced it with a fresh tape that I labeled as DLT-28Jun03, thus assuring
myself that the backups would all complete without my intervention.
-\subsection*{How to Exclude File on Windows Regardless of Case}
+\section{Exclude Files on Windows Regardless of Case}
\label{Case}
-\index[general]{How to Exclude File on Windows Regardless of Case }
-\index[general]{Case!How to Exclude File on Windows Regardless of }
-\addcontentsline{toc}{subsection}{How to Exclude File on Windows Regardless of
+\index[general]{Exclude Files on Windows Regardless of Case }
Case}
+% TODO: should this be put in the win32 chapter?
+% TODO: should all these tips be placed in other chapters?
This tip was submitted by Marc Brueckner who wasn't sure of the case of some
of his files on Win32, which is case insensitive. The problem is that Bacula
Please note that this works only in Bacula Exclude statement and not in
Include.
-\subsection*{Executing Scripts on a Remote Machine}
+\section{Executing Scripts on a Remote Machine}
\label{RemoteExecution}
\index[general]{Machine!Executing Scripts on a Remote }
\index[general]{Executing Scripts on a Remote Machine }
-\addcontentsline{toc}{subsection}{Executing Scripts on a Remote Machine}
This tip also comes from Marc Brueckner. (Note, this tip is probably outdated
by the addition of {\bf ClientRunBeforJob} and {\bf ClientRunAfterJob} Job
could be useful for updating all the Bacula clients on several remote machines
in a single script.
-\subsection*{Recycling All Your Volumes}
+\section{Recycling All Your Volumes}
\label{recycle}
\index[general]{Recycling All Your Volumes }
\index[general]{Volumes!Recycling All Your }
-\addcontentsline{toc}{subsection}{Recycling All Your Volumes}
This tip comes from Phil Stracchino.
Bacula will then ignore the data already stored on the tapes and just re-use
each tape without further objection.
-\subsection*{Backing up ACLs on ext3 or XFS filesystems}
+\section{Backing up ACLs on ext3 or XFS filesystems}
\label{ACLs}
\index[general]{Filesystems!Backing up ACLs on ext3 or XFS }
\index[general]{Backing up ACLs on ext3 or XFS filesystems }
-\addcontentsline{toc}{subsection}{Backing up ACLs on ext3 or XFS filesystems}
This tip comes from Volker Sauer.
\end{verbatim}
\normalsize
-\subsection*{Total Automation of Bacula Tape Handling}
+\section{Total Automation of Bacula Tape Handling}
\label{automate}
\index[general]{Handling!Total Automation of Bacula Tape }
\index[general]{Total Automation of Bacula Tape Handling }
-\addcontentsline{toc}{subsection}{Total Automation of Bacula Tape Handling}
This tip was provided by Alexander Kuehn.
The script also maintains a logfile (/var/log/mtx.log) where you can monitor
its operation.
-\subsection*{Running Concurrent Jobs}
+\section{Running Concurrent Jobs}
\label{ConcurrentJobs}
\index[general]{Jobs!Running Concurrent}
\index[general]{Running Concurrent Jobs}
\index[general]{Concurrent Jobs}
-\addcontentsline{toc}{subsection}{Running Concurrent Jobs}
Bacula can run multiple concurrent jobs, but the default configuration files
are not set to do so. Using the {\bf Maximum Concurrent Jobs} directive, you
-\section*{Bacula TLS -- Communications Encryption}
+\chapter{Bacula TLS -- Communications Encryption}
\label{CommEncryption}
\index[general]{TLS -- Communications Encryption}
\index[general]{Communications Encryption}
\index[general]{Encryption!Transport}
\index[general]{Transport Encryption}
\index[general]{TLS}
-\addcontentsline{toc}{section}{TLS -- Communications Encryption}
Bacula TLS (Transport Layer Security) is built-in network
encryption code to provide secure network transport similar to
Appropriate autoconf macros have been added to detect and use OpenSSL
if enabled on the {\bf ./configure} line with {\bf \verb?--?enable-openssl}
-\subsection*{TLS Configuration Directives}
-\addcontentsline{toc}{section}{TLS Configuration Directives}
+\section{TLS Configuration Directives}
Additional configuration directives have been added to all the daemons
(Director, File daemon, and Storage daemon) as well as the various
different Console programs.
\end{description}
-\subsection*{Creating a Self-signed Certificate}
+\section{Creating a Self-signed Certificate}
\index[general]{Creating a Self-signed Certificate }
\index[general]{Certificate!Creating a Self-signed }
-\addcontentsline{toc}{subsection}{Creating a Self-signed Certificate}
You may create a self-signed certificate for use with the Bacula TLS that
will permit you to make it function, but will not allow certificate
\elink{http://tinyca.sm-zone.net/}{http://tinyca.sm-zone.net/}.
-\subsection*{Getting a CA Signed Certificate}
+\section{Getting a CA Signed Certificate}
\index[general]{Certificate!Getting a CA Signed }
\index[general]{Getting a CA Signed Certificate }
-\addcontentsline{toc}{subsection}{Getting a CA Signed Certificate}
The process of getting a certificate that is signed by a CA is quite a bit
more complicated. You can purchase one from quite a number of PKI vendors, but
{http://ospkibook.sourceforge.net/docs/OSPKI-2.4.7/OSPKI-html/ospki-book.htm}.
Note, this link may change.
-\subsection*{Example TLS Configuration Files}
+\section{Example TLS Configuration Files}
\index[general]{Example!TLS Configuration Files}
\index[general]{TLS Configuration Files}
-\addcontentsline{toc}{subsection}{Example TLS Configuration Files}
Landon has supplied us with the TLS portions of his configuration
files, which should help you setting up your own.
%%
%%
-\section*{A Brief Tutorial}
+\chapter{A Brief Tutorial}
\label{_ChapterStart1}
\index[general]{Brief Tutorial }
\index[general]{Tutorial!Brief }
-\addcontentsline{toc}{section}{Brief Tutorial}
This chapter will guide you through running Bacula. To do so, we assume you
have installed Bacula, possibly in a single file as shown in the previous
these tests as non-root. Please note, in production, your File daemon(s) must
run as root. See the Security chapter for more information on this subject.
+% TODO: use crossreferences above
+% TODO: add a section here
+
The general flow of running Bacula is:
\begin{enumerate}
Each of these steps is described in more detail below.
-\subsection*{Before Running Bacula}
+\section{Before Running Bacula}
\index[general]{Bacula!Before Running }
\index[general]{Before Running Bacula }
-\addcontentsline{toc}{subsection}{Before Running Bacula}
+
+% TODO: some of this content is already covered once or twice critical
+% TODO: or quickstart. Consolidate!
Before running Bacula for the first time in production, we recommend that you
run the {\bf test} command in the {\bf btape} program as described in the
next tape. You should consider trying this command as well, but be forewarned,
it can take hours (about four hours on my drive) to fill a large capacity tape.
-\subsection*{Starting the Database}
+\section{Starting the Database}
\label{StartDB}
\index[general]{Starting the Database }
\index[general]{Database!Starting the }
-\addcontentsline{toc}{subsection}{Starting the Database}
If you are using MySQL or PostgreSQL as the Bacula database, you should start
it before you attempt to run a job to avoid getting error messages from Bacula
on the {\bf ./configure} command, you need do nothing. SQLite is automatically
started by {\bf Bacula}.
-\subsection*{Starting the Daemons}
+\section{Starting the Daemons}
\label{StartDaemon}
\index[general]{Starting the Daemons }
\index[general]{Daemons!Starting the }
-\addcontentsline{toc}{subsection}{Starting the Daemons}
Assuming you have built from source or have installed the rpms,
to start the three daemons, from your installation directory, simply enter:
explains how you can install scripts that will automatically restart the
daemons when the system starts.
-\subsection*{Interacting with the Director to Query or Start Jobs}
+\section{Using the Director to Query and Start Jobs}
\index[general]{Jobs!Interacting with the Director to Query or Start }
\index[general]{Interacting with the Director to Query or Start Jobs }
-\addcontentsline{toc}{subsection}{Interacting with the Director to Query or
Start Jobs}
+% TODO: section name is too long; maybe use "Using the Console Program" ??
To communicate with the director and to query the state of Bacula or run jobs,
from the top level directory, simply enter:
Details of the console program's commands are explained in the
\ilink{Console Chapter}{_ConsoleChapter} of this manual.
-\subsection*{Running a Job}
+\section{Running a Job}
\label{Running}
\index[general]{Job!Running a }
\index[general]{Running a Job }
-\addcontentsline{toc}{subsection}{Running a Job}
At this point, we assume you have done the following:
following section.
\label{restoring}
-\subsection*{Restoring Your Files}
+\section{Restoring Your Files}
\index[general]{Files!Restoring Your }
\index[general]{Restoring Your Files }
-\addcontentsline{toc}{subsection}{Restoring Your Files}
If you have run the default configuration and the save of the Bacula source
code as demonstrated above, you can restore the backed up files in the Console
\end{verbatim}
\normalsize
-\subsection*{Quitting the Console Program}
+\section{Quitting the Console Program}
\index[general]{Program!Quitting the Console }
\index[general]{Quitting the Console Program }
-\addcontentsline{toc}{subsection}{Quitting the Console Program}
Simply enter the command {\bf quit}.
\label{SecondClient}
-\subsection*{Adding a Second Client}
+\section{Adding a Second Client}
\index[general]{Client!Adding a Second }
\index[general]{Adding a Second Client }
-\addcontentsline{toc}{subsection}{Adding a Second Client}
If you have gotten the example shown above to work on your system, you may be
ready to add a second Client (File daemon). That is you have a second machine
the fully qualified domain name and not to something like "localhost". The
address specified is sent to the File daemon (client) and it must be a fully
qualified domain name. If you pass something like "localhost" it will not
+% TODO: s/will/may/ ??
resolve correctly and will result in a time out when the File daemon fails to
connect to the Storage daemon.
\ilink{Authorization Errors}{AuthorizationErrors} in the FAQ chapter
of this manual.
-\subsection*{When The Tape Fills}
+\section{When The Tape Fills}
\label{FullTape}
\index[general]{Fills!When The Tape }
\index[general]{When The Tape Fills }
-\addcontentsline{toc}{subsection}{When The Tape Fills}
If you have scheduled your job, typically nightly, there will come a time when
the tape fills up and {\bf Bacula} cannot continue. In this case, Bacula will
done, so that Bacula starts using your newly labeled tape.
\end{itemize}
-\subsection*{Other Useful Console Commands}
+\section{Other Useful Console Commands}
\index[general]{Commands!Other Useful Console }
\index[general]{Other Useful Console Commands }
-\addcontentsline{toc}{subsection}{Other Useful Console Commands}
\begin{description}
Most of the commands given above, with the exception of {\bf list}, will
prompt you for the necessary arguments if you simply enter the command name.
-\subsection*{Debug Daemon Output}
+\section{Debug Daemon Output}
\index[general]{Debug Daemon Output }
\index[general]{Output!Debug Daemon }
-\addcontentsline{toc}{subsection}{Debug Daemon Output}
If you want debug output from the daemons as they are running, start the
daemons from the install directory as follows:
permit non-root access. MySQL and PostgreSQL can be installed and run with any
userid; root privilege is not necessary.
-\subsection*{Have Patience When Starting the Daemons or Mounting Blank Tapes}
-\index[general]{Have Patience When Starting the Daemons or Mounting Blank
-Tapes }
-\index[general]{Tapes!Have Patience When Starting the Daemons or Mounting
-Blank }
-\addcontentsline{toc}{subsection}{Have Patience When Starting the Daemons or
+\section{Patience When Starting Daemons or Mounting Blank Tapes}
Mounting Blank Tapes}
When you start the Bacula daemons, the Storage daemon attempts to open all
consequence, you are again urged to have patience when inserting blank tapes.
Let the device settle down before attempting to access it.
-\subsection*{Difficulties Connecting from the FD to the SD}
+\section{Difficulties Connecting from the FD to the SD}
\index[general]{Difficulties Connecting from the FD to the SD }
\index[general]{SD!Difficulties Connecting from the FD to the }
-\addcontentsline{toc}{subsection}{Difficulties Connecting from the FD to the
SD}
If you are having difficulties getting one or more of your File daemons to
daemon's machine can determine who is using the 9103 port (used for FD to SD
communications in Bacula).
-\subsection*{Daemon Command Line Options}
+\section{Daemon Command Line Options}
\index[general]{Daemon Command Line Options }
\index[general]{Options!Daemon Command Line }
-\addcontentsline{toc}{subsection}{Daemon Command Line Options}
Each of the three daemons (Director, File, Storage) accepts a small set of
options on the command line. In general, each of the daemons as well as the
The Console program has no console specific options.
-\subsection*{Creating a Pool}
+\section{Creating a Pool}
\label{Pool}
\index[general]{Pool!Creating a }
\index[general]{Creating a Pool }
-\addcontentsline{toc}{subsection}{Creating a Pool}
Creating the Pool is automatically done when {\bf Bacula} starts, so if you
understand Pools, you can skip to the next section.
\label{Labeling}
-\subsection*{Labeling Your Volumes}
+\section{Labeling Your Volumes}
\index[general]{Volumes!Labeling Your }
\index[general]{Labeling Your Volumes }
-\addcontentsline{toc}{subsection}{Labeling Your Volumes}
Bacula requires that each Volume contains a software label. There are several
strategies for labeling volumes. The one I use is to label them as they are
case, I label my tapes with the date, for example: {\bf DLT-18April02}. See
below for the details of using the {\bf label} command.
-\subsection*{Labeling Volumes with the Console Program}
+\section{Labeling Volumes with the Console Program}
\index[general]{Labeling Volumes with the Console Program }
\index[general]{Program!Labeling Volumes with the Console }
-\addcontentsline{toc}{subsection}{Labeling Volumes with the Console Program}
Labeling volumes is normally done by using the console program.
%%
%%
-\section*{Variable Expansion}
+\chapter{Variable Expansion}
\label{_ChapterStart50}
\index[general]{Variable Expansion }
\index[general]{Expansion!Variable }
-\addcontentsline{toc}{section}{Variable Expansion}
+
+% TODO: does the following mean that this should not be in book?
Please note that as of version 1.37, the Variable Expansion
is deprecated and replaced by Python scripting (not yet
Currently (version 1.31), it is used only in format labels, but in the future,
it will most likely be used in more places.
-\subsection*{General Functionality}
+\section{General Functionality}
\index[general]{Functionality!General }
\index[general]{General Functionality }
-\addcontentsline{toc}{subsection}{General Functionality}
This is basically a string expansion capability that permits referencing
variables, indexing arrays, conditional replacement of variables, case
contents of {\bf xxx} to a length of seven characters filling with the
character {\bf Y} giving {\bf YYYTest}.
-\subsection*{Bacula Variables}
+\section{Bacula Variables}
\index[general]{Bacula Variables }
\index[general]{Variables!Bacula }
-\addcontentsline{toc}{subsection}{Bacula Variables}
Within Bacula, there are three main classes of variables with some minor
variations within the classes. The classes are:
differing lengths.
\end{description}
-\subsection*{Full Syntax}
+\section{Full Syntax}
\index[general]{Syntax!Full }
\index[general]{Full Syntax }
-\addcontentsline{toc}{subsection}{Full Syntax}
Since the syntax is quite extensive, below, you will find the pseudo BNF. The
special characters have the following meaning:
\end{verbatim}
\normalsize
-\subsection*{Semantics}
+\section{Semantics}
\index[general]{Semantics }
-\addcontentsline{toc}{subsection}{Semantics}
The items listed in {\bf command} above, which always follow a colon ({\bf :})
have the following meanings:
A counter variable name followed immediately by a plus ({\bf +}) will cause
the counter to be incremented by one.
-\subsection*{Examples}
+\section{Examples}
\index[general]{Examples }
-\addcontentsline{toc}{subsection}{Examples}
To create an ISO date:
%%
%%
-\section*{Using Bacula to Improve Computer Security}
+% TODO: this chapter name is confusing ... maybe rename to
+% TODO: "File Integrity Checking with Bacula"?
+\chapter{Using Bacula to Improve Computer Security}
\label{_ChapterStart45}
\index[general]{Security!Using Bacula to Improve Computer }
\index[general]{Using Bacula to Improve Computer Security }
-\addcontentsline{toc}{section}{Using Bacula to Improve Computer Security}
+% TODO: only those two digest algorithms?
+% TODO: can it use multiple at a time? (record and use both SHA1 and MD5?)
Since Bacula maintains a catalog of files, their attributes, and either SHA1
or MD5 signatures, it can be an ideal tool for improving computer security.
This is done by making a snapshot of your system files with a {\bf Verify} Job
comparison options on the {\bf Include} statements that you use in the {\bf
FileSet} resource of your {\bf Catalog} Jobs.
-\subsection*{The Details}
+\section{The Details}
\index[general]{Details }
-\addcontentsline{toc}{subsection}{Details}
In the discussion that follows, we will make reference to the Verify
Configuration Example that is included below in the {\bf A Verify
me). On the other hand, as long as I don't load any new packages, none of
these files change during normal operation of the system.
-\subsection*{Running the Verify}
+\section{Running the Verify}
\index[general]{Running the Verify }
\index[general]{Verify!Running the }
-\addcontentsline{toc}{subsection}{Running the Verify}
The first thing you will want to do is to run an {\bf InitCatalog} level
Verify Job. This will initialize the catalog to contain the file information
Verify {\bf Catalog} which will be the default. No differences should be
found.
-\subsection*{What To Do When Differences Are Found}
+\section{What To Do When Differences Are Found}
\index[general]{What To Do When Differences Are Found }
\index[general]{Found!What To Do When Differences Are }
-\addcontentsline{toc}{subsection}{What To Do When Differences Are Found}
If you have setup your messages correctly, you should be notified if there are
any differences and exactly what they are. For example, below is the email
bit more thought, you can probably add quite a number of additional files that
should be monitored.
-\subsection*{A Verify Configuration Example}
+\section{A Verify Configuration Example}
\index[general]{Verify Configuration Example }
\index[general]{Example!Verify Configuration }
-\addcontentsline{toc}{subsection}{Verify Configuration Example}
\footnotesize
\begin{verbatim}
-1.39.32 (20 December 2006)
+1.39.29 (24 November 2006)
%%
%%
-\section*{The Windows Version of Bacula}
+\chapter{The Windows Version of Bacula}
\label{_ChapterStart7}
\index[general]{Windows Version of Bacula}
-\addcontentsline{toc}{section}{Windows Version of Bacula}
-\subsection*{General}
+\section{General}
\index[general]{General}
-\addcontentsline{toc}{subsection}{General}
At the current time only the File daemon or Client program has been tested on
Windows. As a consequence, when we speak of the Windows version of Bacula
immediately started by the operating system when the system is booted, and
runs in the background even if there is no user logged into the system.
-\subsection*{Win32 Installation}
+\section{Win32 Installation}
\label{installation}
\index[general]{Installation}
\index[general]{Win32!Installation}
-\addcontentsline{toc}{subsection}{Win32 Installation}
Normally, you will install the Windows version of Bacula from the binaries.
This install is standard Windows .exe that runs an install wizard using the
warned that that tray icon does not always appear. It will always be visible
when you log into the console, but the remote desktop may not display it.
-\subsection*{Post Win32 Installation}
+\section{Post Win32 Installation}
\index[general]{Post Win32 Installation}
\index[general]{Win32!Post Installation}
-\addcontentsline{toc}{subsection}{Post Win32 Installation}
After installing Bacula and before running it, you should check the contents
of the configuration files to ensure that they correspond to your
Administrator, and hence it will be unlikely that Bacula can access
all the system files.
-\subsection*{Uninstalling Bacula on Win32}
+\section{Uninstalling Bacula on Win32}
\index[general]{Win32!Uninstalling Bacula}
\index[general]{Uninstalling Bacula on Win32}
-\addcontentsline{toc}{subsection}{Uninstalling Bacula on Win32}
Once Bacula has been installed, it can be uninstalled using the standard
Windows Add/Remove Programs dialog found on the Control panel.
-\subsection*{Dealing with Win32 Problems}
+\section{Dealing with Win32 Problems}
\label{problems}
\index[general]{Win32!Dealing with Problems}
\index[general]{Dealing with Win32 Problems}
-\addcontentsline{toc}{subsection}{Dealing with Win32 Problems}
The most likely source of problems is authentication when the Director
attempts to connect to the File daemon that you installed. This can occur if
\normalsize
\label{Compatibility}
-\subsection*{Windows Compatibility Considerations}
+\section{Windows Compatibility Considerations}
\index[general]{Windows Compatibility Considerations}
\index[general]{Considerations!Windows Compatibility}
-\addcontentsline{toc}{subsection}{Windows Compatibility Considerations}
If you are not using the VSS (Volume Shadow Copy) option described in the
next section of this chapter, and if any applications are running during
\label{VSS}
-\subsection*{Volume Shadow Copy Service}
+\section{Volume Shadow Copy Service}
\index[general]{Volume Shadow Copy Service}
\index[general]{VSS}
-\addcontentsline{toc}{subsection}{Volume Shadow Copy Service}
In version 1.37.30 and greater, you can turn on Microsoft's Volume
Shadow Copy Service (VSS).
reports from each of the writer program. Here they all report VSS\_WS\_STABLE, which means
that you will get a consistent snapshot of the data handled by that writer.
-\subsection*{VSS Problems}
+\section{VSS Problems}
\index[general]{Problems!VSS}
\index[fd] {Problems!VSS}
\index[general]{VSS Problems}
\index[fd]{VSS Problems}
-\addcontentsline{toc}{subsection}{VSS Problems}
If you are experiencing problems such as VSS hanging on MSDE, first try
running {\bf vssadmin} to check for problems, then try running {\bf
\end{itemize}
-\subsection*{Windows Firewalls}
+\section{Windows Firewalls}
\index[general]{Firewalls!Windows}
\index[general]{Windows Firewalls}
-\addcontentsline{toc}{subsection}{Windows Firewalls}
If you turn on the firewalling feature on Windows (default in WinXP SP2), you
are likely to find that the Bacula ports are blocked and you cannot
is purported to disable the firewall, but this command is not accepted on my
WinXP Home machine.
-\subsection*{Windows Port Usage}
+\section{Windows Port Usage}
\index[general]{Windows Port Usage}
\index[general]{Usage!Windows Port}
-\addcontentsline{toc}{subsection}{Windows Port Usage}
If you want to see if the File daemon has properly opened the port and is
listening, you can enter the following command in a shell window:
TopView is another program that has been recommend, but it is not a
standard Win32 program, so you must find and download it from the Internet.
-\subsection*{Windows Disaster Recovery}
+\section{Windows Disaster Recovery}
\index[general]{Recovery!Windows Disaster}
\index[general]{Windows Disaster Recovery}
-\addcontentsline{toc}{subsection}{Windows Disaster Recovery}
We don't currently have a good solution for disaster recovery on Windows as we
do on Linux. The main piece lacking is a Windows boot floppy or a Windows boot
recovery system for Win32. This distribution can be found at
\elink{http://www.nu2.nu/pebuilder/}{http://www.nu2.nu/pebuilder/}.
-\subsection*{Windows Restore Problems}
+\section{Windows Restore Problems}
\index[general]{Problems!Windows Restore}
\index[general]{Windows Restore Problems}
-\addcontentsline{toc}{subsection}{Windows Restore Problems}
Please see the
\ilink{Restore Chapter}{Windows} of this manual for problems
that you might encounter doing a restore.
-subsection*{Windows Backup Problems}
+section{Windows Backup Problems}
\index[general]{Problems!Windows Backup}
\index[general]{Windows Backup Problems}
-\addcontentsline{toc}{subsection}{Windows Backup Problems}
If during a Backup, you get the message:
{\bf ERR=Access is denied} and you are using the portable option,
you should try both adding both the non-portable (backup API) and
Thanks to Georger Araujo for the above information.
-\subsection*{Windows Ownership and Permissions Problems}
+\section{Windows Ownership and Permissions Problems}
\index[general]{Problems!Windows Ownership and Permissions}
\index[general]{Windows Ownership and Permissions Problems}
-\addcontentsline{toc}{subsection}{Windows Ownership and Permissions
Problems}
If you restore files backed up from WinNT/XP/2K to an alternate directory,
the problem.
-\subsection*{Manually resetting the Permissions}
+\section{Manually resetting the Permissions}
\index[general]{Manually resetting the Permissions}
\index[general]{Permissions!Manually resetting the}
-\addcontentsline{toc}{subsection}{Manually resetting the Permissions}
The following solution was provided by Dan Langille \lt{}dan at langille in
the dot org domain\gt{}. The steps are performed using Windows 2000 Server but
In addition to the above methods of changing permissions, there is a Microsoft
program named {\bf cacls} that can perform similar functions.
-\subsection*{Backing Up the WinNT/XP/2K System State}
+\section{Backing Up the WinNT/XP/2K System State}
\index[general]{State!Backing Up the WinNT/XP/2K System}
\index[general]{Backing Up the WinNT/XP/2K System State}
-\addcontentsline{toc}{subsection}{Backing Up the WinNT/XP/2K System State}
A suggestion by Damian Coutts using Microsoft's NTBackup utility in
conjunction with Bacula should permit a full restore of any damaged system
To the best of my knowledge, this has not yet been tested. If you test it,
please report your results to the Bacula email list.
-\subsection*{Windows Considerations for Filename Specifications}
-\index[general]{Specifications!Windows Considerations for Filename}
-\index[general]{Windows Considerations for Filename Specifications}
-\addcontentsline{toc}{subsection}{Windows Considerations for Filename
+\section{Considerations for Filename Specifications}
+\index[general]{Windows!Considerations for Filename Specifications}
Specifications}
Please see the
Path/filenames longer than 260 characters (up to 32,000) are supported
beginning with Bacula version 1.39.20.
-\subsection*{Win32 Specific File daemon Command Line Options}
+\section{Win32 Specific File daemon Command Line}
\index[general]{Client!Win32 Specific File daemon Command Line Options}
\index[general]{Win32 Specific File daemon Command Line Options}
-\addcontentsline{toc}{subsection}{Win32 Specific File daemon Command Line
-Options}
These options are not normally seen or used by the user, and are documented
here only for information purposes. At the current time, to change the default
automatically once Bacula is installed. However, you may note these options in
some of the .bat files that have been created for your use.
-\subsection*{Shutting down Windows Systems}
+\section{Shutting down Windows Systems}
\index[general]{Shutting down Windows Systems}
\index[general]{Systems!Shutting down Windows}
-\addcontentsline{toc}{subsection}{Shutting down Windows Systems}
Some users like to shutdown their Windows machines after a backup using a
Client Run After Job directive. If you want to do something similar, you might