-2.0.0 (04 January 2007)
+2.0.3 (28 February 2007)
-2.0.0 (04 January 2007)
+2.0.3 (28 February 2007)
Maximum Volume Files
Maximum Volume Bytes
Recycle Flag
+ Recycle Pool
Slot
InChanger Flag
Pool
existing pool to the pool specified.
For {\bf Volume from Pool} and {\bf All Volumes from Pool}, the
- following values are updated from the Pool record: Recycle,
+ following values are updated from the Pool record: Recycle, RecyclePool,
VolRetention, VolUseDuration, MaxVolJobs, MaxVolFiles, and MaxVolBytes.
+ (RecyclePool feature is available with bacula 2.1.4 or higher.)
The full form of the update command with all command line arguments is:
\begin{verbatim}
update volume=xxx pool=yyy slots volstatus=xxx VolRetention=ddd
VolUse=ddd MaxVolJobs=nnn MaxVolBytes=nnn Recycle=yes|no
- slot=nnn enabled=n
+ slot=nnn enabled=n recyclepool=zzz
\end{verbatim}
\normalsize
with -dir, -fd, and -sd. Standard shell expansion of the {\bf
Directory} is done when the configuration file is read so that values such
as {\bf \$HOME} will be properly expanded. This directive is required.
+ The working directory specified must already exist and be
+ readable and writable by the Bacula daemon referencing it.
If you have specified a Director user and/or a Director group on your
./configure line with {\bf {-}{-}with-dir-user} and/or
\index[dir]{Pid Directory}
\index[dir]{Directive!Pid Directory}
This directive is mandatory and specifies a directory in which the Director
-may put its process Id file. The process Id file is used to shutdown
-Bacula and to prevent multiple copies of Bacula from running simultaneously.
-Standard shell expansion of the {\bf Directory} is done when the
-configuration file is read so that values such as {\bf \$HOME} will be
-properly expanded.
+ may put its process Id file. The process Id file is used to shutdown
+ Bacula and to prevent multiple copies of Bacula from running simultaneously.
+ Standard shell expansion of the {\bf Directory} is done when the
+ configuration file is read so that values such as {\bf \$HOME} will be
+ properly expanded.
-Typically on Linux systems, you will set this to: {\bf /var/run}. If you are
-not installing Bacula in the system directories, you can use the {\bf Working
-Directory} as defined above. This directive is required.
+ The PID directory specified must already exist and be
+ readable and writable by the Bacula daemon referencing it
+
+ Typically on Linux systems, you will set this to: {\bf /var/run}. If you are
+ not installing Bacula in the system directories, you can use the {\bf Working
+ Directory} as defined above. This directive is required.
\item [Scripts Directory = \lt{}Directory\gt{}]
\index[dir]{Scripts Directory}
\index[general]{Simultaneous Jobs}
\index[general]{Concurrent Jobs}
where \lt{}number\gt{} is the maximum number of total Director Jobs that
-should run concurrently. The default is set to 1, but you may set it to a
-larger number.
-
-Please note that the Volume format becomes much more complicated with
-multiple simultaneous jobs, consequently, restores can take much longer if
-Bacula must sort through interleaved volume blocks from multiple simultaneous
-jobs. This can be avoided by having each simultaneously running job write to
-a different volume or by using data spooling, which will first spool the data
-to disk simultaneously, then write each spool file to the volume in
-sequence.
+ should run concurrently. The default is set to 1, but you may set it to a
+ larger number.
-There may also still be some cases where directives such as {\bf Maximum
-Volume Jobs} are not properly synchronized with multiple simultaneous jobs
-(subtle timing issues can arise), so careful testing is recommended.
+ Please note that the Volume format becomes much more complicated with
+ multiple simultaneous jobs, consequently, restores can take much longer if
+ Bacula must sort through interleaved volume blocks from multiple simultaneous
+ jobs. This can be avoided by having each simultaneously running job write to
+ a different volume or by using data spooling, which will first spool the data
+ to disk simultaneously, then write each spool file to the volume in
+ sequence.
-At the current time, there is no configuration parameter set to limit the
-number of console connections. A maximum of five simultaneous console
-connections are permitted.
+ There may also still be some cases where directives such as {\bf Maximum
+ Volume Jobs} are not properly synchronized with multiple simultaneous jobs
+ (subtle timing issues can arise), so careful testing is recommended.
-For more details on getting concurrent jobs to run, please see
-\ilink{Running Concurrent Jobs}{ConcurrentJobs} in the Tips chapter
-of this manual.
+ At the current time, there is no configuration parameter set to limit the
+ number of console connections. A maximum of five simultaneous console
+ connections are permitted.
\item [FD Connect Timeout = \lt{}time\gt{}]
\index[dir]{FD Connect Timeout}
it will pipe the bootstrap record. It could for example be a shell
script that emails you the bootstrap record.
- On versions 1.39.22 or greater, before opening the file or execute the
+ On versions 1.39.22 or greater, before opening the file or executing the
specified command, Bacula performs
\ilink{character substitution}{character substitution} like in RunScript
directive. To automatically manage your bootstrap files, you can use
\index[dir]{RunScript}
\index[dir]{Directive!Run Script}
- This directive is only implemented in version 1.39.22 and later.
- The RunScript directive behaves more like a resource in that it
+ This directive is implemented in version 1.39.22 and later.
+ The RunScript directive behaves like a resource in that it
requires opening and closing braces around a number of directives
that make up the body of the runscript.
Bacula job report. The command string must be a valid program name or name
of a shell script.
- In addition, the command string is parsed then fed to the execvp() function,
+ In addition, the command string is parsed then fed to the OS,
which means that the path will be searched to execute your specified
command, but there is no shell interpretation, as a consequence, if you
invoke complicated commands or want any shell features such as redirection
{\bf Special Windows Considerations}
In addition, for a Windows client on version 1.33 and above, please take
- careful note that you must ensure a correct path to your script. The
- script or program can be a .com, .exe or a .bat file. However, if you
- specify a path, you must also specify the full extension. Unix like
- commands will not work unless you have installed and properly configured
- Cygwin in addition to and separately from Bacula.
-
+ note that you must ensure a correct path to your script. The script or
+ program can be a .com, .exe or a .bat file. If you just put the program
+ name in then Bacula will search using the same rules that cmd.exe uses
+ (current directory, Bacula bin directory, and PATH). It will even try the
+ different extensions in the same order as cmd.exe.
The command can be anything that cmd.exe or command.com will recognize
- as an executable file. Specifying the executable's extension is
- optional, unless there is an ambiguity. (i.e. ls.bat, ls.exe)
+ as an executable file.
+
+ However, if you have slashes in the program name then Bacula figures you
+ are fully specifying the name, so you must also explicitly add the three
+ character extension.
+
+ The command is run in a Win32 environment, so Unix like commands will not
+ work unless you have installed and properly configured Cygwin in addition
+ to and separately from Bacula.
The System \%Path\% will be searched for the command. (under the
environment variable dialog you have have both System Environment and
available to bacula-fd, if it is running as a service.)
System environment variables can be referenced with \%var\% and
- used as either part of the command name or arguments.
+ used as either part of the command name or arguments.
+
+ So if you have a script in the Bacula\\bin directory then the following lines
+ should work fine:
+\footnotesize
+\begin{verbatim}
+ Client Run Before Job = systemstate
+or
+ Client Run Before Job = systemstate.bat
+or
+ Client Run Before Job = "systemstate"
+or
+ Client Run Before Job = "systemstate.bat"
+or
+ ClientRunBeforeJob = "\"C:/Program Files/Bacula/systemstate.bat\""
+\end{verbatim}
+\normalsize
+
+The outer set of quotes is removed when the configuration file is parsed.
+You need to escape the inner quotes so that they are there when the code
+that parses the command line for execution runs so it can tell what the
+program name is.
+
\footnotesize
\begin{verbatim}
For Win32, please note that there are certain limitations:
-
ClientRunBeforeJob = "C:/Program Files/Bacula/bin/pre-exec.bat"
Lines like the above do not work because there are limitations of
be rescheduled. The default is {\bf no} (i.e. the job will not be
rescheduled).
-
This specification can be useful for portables, laptops, or other
machines that are not always connected to the network or switched on.
created, changing the value in the bacula-dir.conf file will not change what
is stored for the Volume. To change the value for an existing Volume you
must use the {\bf update} command in the Console.
+
+\label{PoolRecyclePool}
+\item [RecyclePool = \lt{}pool-resource-name\gt{}]
+ \index[dir]{RecyclePool}
+ \index[dir]{Directive!RecyclePool}
+
+ On versions 2.1.4 or greater, Bacula can recycle media in the pool of your
+ choice. The most useful setup is to use \ilink{Scratch}{TheScratchPool}.
\label{PoolRecycle}
\item [Recycle = \lt{}yes|no\gt{}]
\normalsize
\subsection{The Scratch Pool}
+\label{TheScratchPool}
\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
explain how to write to disk, but was expanded to include volume
management. It is, however, still quite a good chapter to read.
+\label{testbackup}
+\section{Can I use a dummy device to test the backup?}
+ Yes, to have a {\sl Virtual} device which just consumes data, you can use a
+ FIFO device (see \ilink{Stored configuration}{SetupFifo}).
+ It's useful to test a backup.
+\footnotesize
+\begin{verbatim}
+Device {
+ Name = NULL
+ Media Type = NULL
+ Device Type = Fifo
+ Archive Device = /dev/null
+ LabelMedia = yes
+ Random Access = no
+ AutomaticMount = no
+ RemovableMedia = no
+ MaximumOpenWait = 60
+ AlwaysOpen = no
+}
+\end{verbatim}
+\normalsize
+
\label{bigfiles}
-\section{Can Bacula Backup and Restore Files Greater than 2 Gigabytes?}
-\item [Can Bacula Backup and Restore Files Greater than 2 Gigabytes in
- Size? ]
+\section{Can Bacula Backup and Restore Files Bigger than 2 Gigabytes?}
+\item [Can Bacula Backup and Restore Files Bigger than 2 Gigabytes?]
\index[general]{Large file support}
If your operating system permits it, and you are running Bacula version
1.26 or later, the answer is yes. To the best of our knowledge all client
-system supported by Bacula can handle files larger than 2 Gigabytes.
+system supported by Bacula can handle files bigger 2 Gigabytes.
\label{cancel}
\section{I want to stop a job.}
in all respects with the program defined here.
\label{docversion}
-\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?]
+\section{Why is the Online Document for Version 1.39 but the Released Version is 1.38?}
+\item [Why is the Online Document for Version 1.39 of Bacula when the
+ Current Version is 1.38?]
\index[general]{Multiple manuals}
As Bacula is being developed, the document is also being enhanced, more
often than not it has clarifications of existing features that can be very
\index[fd]{Client (or FileDaemon)}
\index[fd]{Directive!Client (or FileDaemon)}
Start of the Client records. There must be one and only one Client resource
-in the configuration file, since it defines the properties of the current
-client program.
+ in the configuration file, since it defines the properties of the current
+ client program.
\item [Name = \lt{}name\gt{}]
\index[fd]{Name}
\index[fd]{FDPort}
\index[fd]{Directive!FDPort}
This specifies the port number on which the Client listens for Director
-connections. It must agree with the FDPort specified in the Client resource
-of the Director's configuration file. The default is 9102.
+ connections. It must agree with the FDPort specified in the Client resource
+ of the Director's configuration file. The default is 9102.
\item [FDAddress = \lt{}IP-Address\gt{}]
\index[fd]{FDAddress}
\index[fd]{Directive!FDAddress}
This record is optional, and if it is specified, it will cause the File
-daemon server (for Director connections) to bind to the specified {\bf
-IP-Address}, which is either a domain name or an IP address specified as a
-dotted quadruple. If this record is not specified, the File daemon will bind
-to any available address (the default).
+ daemon server (for Director connections) to bind to the specified {\bf
+ IP-Address}, which is either a domain name or an IP address specified as a
+ dotted quadruple. If this record is not specified, the File daemon will bind
+ to any available address (the default).
\item [SDConnectTimeout = \lt{}time-interval\gt{}]
\index[fd]{SDConnectTimeout}
\index[fd]{Directive!SDConnectTimeout}
This record defines an interval of time that the File daemon will try to
-connect to the Storage daemon. The default is 30 minutes. If no connection
-is made in the specified time interval, the File daemon cancels the Job.
+ connect to the Storage daemon. The default is 30 minutes. If no connection
+ is made in the specified time interval, the File daemon cancels the Job.
\item [Maximum Network Buffer Size = \lt{}bytes\gt{}]
\index[fd]{Maximum Network Buffer Size}
\index[fd]{Directive!Maximum Network Buffer Size}
where \lt{}bytes\gt{} specifies the initial network buffer size to use with
-the File daemon. This size will be adjusted down if it is too large until it
-is accepted by the OS. Please use care in setting this value since if it is
-too large, it will be trimmed by 512 bytes until the OS is happy, which may
-require a large number of system calls. The default value is 32,768 bytes.
+ the File daemon. This size will be adjusted down if it is too large until it
+ is accepted by the OS. Please use care in setting this value since if it is
+ too large, it will be trimmed by 512 bytes until the OS is happy, which may
+ require a large number of system calls. The default value is 65,536 bytes.
+
+ Note, on certain Windows machines, there are reports that the
+ transfer rates are very slow and this seems to be related to
+ the default 65,536 size. On systems where the transfer rates
+ seem abnormally slow compared to other systems, you might try
+ setting the Maximum Network Buffer Size to 32,768 in both the
+ File daemon and in the Storage daemon.
\end{description}
The following is an example of a valid Client resource definition:
\index[fd]{Director}
\index[fd]{Directive!Director}
Start of the Director records. There may be any number of Director resources
-in the Client configuration file. Each one specifies a Director that is
-allowed to connect to this Client.
+ in the Client configuration file. Each one specifies a Director that is
+ allowed to connect to this Client.
\item [Name = \lt{}name\gt{}]
\index[fd]{Name}
\index[fd]{Directive!Name}
The name of the Director that may contact this Client. This name must be the
-same as the name specified on the Director resource in the Director's
-configuration file. Note, the case (upper/lower) of the characters in
-the name are significant (i.e. S is not the same as s). This directive
-is required.
+ same as the name specified on the Director resource in the Director's
+ configuration file. Note, the case (upper/lower) of the characters in
+ the name are significant (i.e. S is not the same as s). This directive
+ is required.
\item [Password = \lt{}password\gt{}]
\index[fd]{Password}
\index[fd]{Monitor}
\index[fd]{Directive!Monitor}
If Monitor is set to {\bf no} (default), this director will have full access
-to this Client. If Monitor is set to {\bf yes}, this director will only be
-able to fetch the current status of this Client.
+ to this Client. If Monitor is set to {\bf yes}, this director will only be
+ able to fetch the current status of this Client.
-Please note that if this director is being used by a Monitor, we highly
-recommend to set this directive to {\bf yes} to avoid serious security
-problems.
+ Please note that if this director is being used by a Monitor, we highly
+ recommend to set this directive to {\bf yes} to avoid serious security
+ problems.
\end{description}
Thus multiple Directors may be authorized to use this Client's services. Each
\index[general]{Bacula!What is }
\index[general]{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
+Bacula is a set of computer programs that permits the system
+administrator to manage backup, recovery, and verification of computer data
across a network of computers of different kinds. Bacula can also run entirely
-upon a single computer, and can backup to various types of media, including tape
+upon a single computer and can backup to various types of media, including tape
and disk.
In technical terms, it is a
\index[general]{Who Needs Bacula? }
\index[general]{Bacula!Who Needs }
-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
+If you are currently using a program such as tar, dump, or
+bru to backup your computer data, and you would like a network solution, more
flexibility, or catalog services, Bacula will most likely provide the
additional features you want. However, if you are new to Unix systems or do
-not have offsetting experience with a sophisticated backup package, we do not
-recommend using Bacula as it is much more difficult to setup and use than {\bf
-tar} or {\bf dump}.
+not have offsetting experience with a sophisticated backup package, the Bacula project does not
+recommend using Bacula as it is much more difficult to setup and use than
+tar or dump.
If you want Bacula to behave like the above mentioned simple
programs and write over any tape that you put in the drive, then you will find
over any tape in the drive, but it is easier and more efficient to use a
simpler program for that kind of operation.
-If you are running {\bf Amanda} and would like a backup program that can write
+If you are running Amanda and would like a backup program that can write
to multiple volumes (i.e. is not limited by your tape drive capacity), Bacula
-can most likely fill your needs. In addition, quite a number of our users
+can most likely fill your needs. In addition, quite a number of Bacula users
report that Bacula is simpler to setup and use than other equivalent programs.
If you are currently using a sophisticated commercial package such as Legato
Networker. ARCserveIT, Arkeia, or PerfectBackup+, you may be interested in
-Bacula, which provides many of the same features, and is free software
+Bacula, which provides many of the same features and is free software
available under the GNU Version 2 software license.
\section{Bacula Components or Services}
\index[general]{Bacula Components or Services }
\index[general]{Services!Bacula Components or }
-Bacula is made up of the following five major components or services:
+Bacula is made up of the following five major components or services:
+Director, Console, File, Storage, and Monitor services.
+
\addcontentsline{lof}{figure}{Bacula Applications}
\includegraphics{./bacula-applications.eps}
(thanks to Aristedes Maniatis for this graphic and the one below)
+% TODO: move the thanks to Credits section in preface
-\begin{itemize}
-\item
+\subsection*{Bacula Director}
\label{DirDef}
- {\bf Bacula Director} service consists of the program that supervises
+ The Bacula Director service is the program that supervises
all the backup, restore, verify and archive operations. The system
administrator uses the Bacula Director to schedule backups and to
recover files. For more details see the Director Services Daemon Design
Document in the Bacula Developer's Guide. The Director runs as a daemon
- or a service (i.e. in the background).
-\item
+ (or service) in the background.
+% TODO: tell reader where this Developer's Guide is at?
\label{UADef}
- {\bf Bacula Console} services is the program that allows the
- administrator or user to communicate with the {\bf Bacula Director} (see
- above). Currently, the Bacula Console is available in three versions.
+
+\subsection*{Bacula Console}
+
+ The Bacula Console service is the program that allows the
+ administrator or user to communicate with the Bacula Director
+ Currently, the Bacula Console is available in three versions:
+ text-based console interface, GNOME-based interface, and a
+ wxWidgets graphical interface.
The first and simplest is to run the Console program in a shell window
(i.e. TTY interface). Most system administrators will find this
completely adequate. The second version is a GNOME GUI interface that
of the shell console, allows command completion with tabulation, and
gives you instant help about the command you are typing. For more
details see the \ilink{Bacula Console Design Document}{_ConsoleChapter}.
-\item
+
+\subsection*{Bacula File}
\label{FDDef}
- {\bf Bacula File} services (or Client program) is the software program
- that is installed on the machine to be backed up. It is specific to the
+ The Bacula File service (also known as the Client program) is the software
+ program that is installed on the machine to be backed up.
+ It is specific to the
operating system on which it runs and is responsible for providing the
file attributes and data when requested by the Director. The File
services are also responsible for the file system dependent part of
restoring the file attributes and data during a recovery operation. For
more details see the File Services Daemon Design Document in the Bacula
Developer's Guide. This program runs as a daemon on the machine to be
- backed up, and in some of the documentation, the File daemon is referred
- to as the Client (for example in Bacula's configuration file). In
- addition to Unix/Linux File daemons, there is a Windows File daemon
+ backed up.
+ In addition to Unix/Linux File daemons, there is a Windows File daemon
(normally distributed in binary format). The Windows File daemon runs
on current Windows versions (NT, 2000, XP, 2003, and possibly Me and
98).
-\item
+% TODO: maybe do not list Windows here as that is listed elsewhere
+% TODO: remove "possibly"?
+% TODO: mention Vista?
+
+\subsection*{Bacula Storage}
\label{SDDef}
- {\bf Bacula Storage} services consist of the software programs that
+ The Bacula Storage services consist of the software programs that
perform the storage and recovery of the file attributes and data to the
physical backup media or volumes. In other words, the Storage daemon is
responsible for reading and writing your tapes (or other storage media,
Document in the Bacula Developer's Guide. The Storage services runs as
a daemon on the machine that has the backup device (usually a tape
drive).
-\item
+% TODO: may switch e.g. to "for example" or "such as" as appropriate
+% TODO: is "usually" correct? Maybe "such as" instead?
+
+\subsection*{Catalog}
\label{DBDefinition}
- {\bf Catalog} services are comprised of the software programs
+ The Catalog services are comprised of the software programs
responsible for maintaining the file indexes and volume databases for
- all files backed up. The Catalog services permit the System
- Administrator or user to quickly locate and restore any desired file.
+ all files backed up. The Catalog services permit the system
+ administrator or user to quickly locate and restore any desired file.
The Catalog services sets Bacula apart from simple backup programs like
tar and bru, because the catalog maintains a record of all Volumes used,
all Jobs run, and all Files saved, permitting efficient restoration and
Volume management. Bacula currently supports three different databases,
MySQL, PostgreSQL, and SQLite, one of which must be chosen when building
- {\bf Bacula}.
+ Bacula.
The three SQL databases currently supported (MySQL, PostgreSQL or
SQLite) provide quite a number of features, including rapid indexing,
- arbitrary queries, and security. Although we plan to support other
+ arbitrary queries, and security. Although the Bacula project plans to support other
major SQL databases, the current Bacula implementation interfaces only
to MySQL, PostgreSQL and SQLite. For the technical and porting details
see the Catalog Services Design Document in the developer's documented.
- The RPMs for MySQL and PostgreSQL ship as part of Red Hat Linux and
- several other releases. Alternatively, building the rpms from the
+ The packages for MySQL and PostgreSQL are available for several operating
+ systems.
+ Alternatively, installing from the
source is quite easy, see the \ilink{ Installing and Configuring
MySQL}{MySqlChapter} chapter of this document for the details. For
more information on MySQL, please see:
Configuring and building SQLite is even easier. For the details of
configuring SQLite, please see the \ilink{ Installing and Configuring
SQLite}{SqlLiteChapter} chapter of this document.
-\item
+
+\subsection*{Bacula Monitor}
\label{MonDef}
- {\bf Bacula Monitor} services is the program that allows the
- administrator or user to watch current status of {\bf Bacula Directors},
- {\bf Bacula File Daemons} and {\bf Bacula Storage Daemons} (see above).
- Currently, only a GTK+ version is available, which works with Gnome and
- KDE (or any window manager that supports the FreeDesktop.org system tray
- standard). \end{itemize}
+ A Bacula Monitor service is the program that allows the
+ administrator or user to watch current status of Bacula Directors,
+ Bacula File Daemons and Bacula Storage Daemons
+ Currently, only a GTK+ version is available, which works with Gnome,
+ KDE, or any window manager that supports the FreeDesktop.org system tray
+ standard.
To perform a successful save or restore, the following four daemons must be
configured and running: the Director daemon, the File daemon, the Storage
- daemon, and MySQL, PostgreSQL or SQLite.
+ daemon, and the Catalog service (MySQL, PostgreSQL or SQLite).
\section{Bacula Configuration}
\index[general]{Configuration!Bacula }
\index[general]{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
+up and how, you must create a number of configuration files containing
resources (or objects). The following presents an overall picture of this:
\addcontentsline{lof}{figure}{Bacula Objects}
\index[general]{Conventions Used in this Document }
\index[general]{Document!Conventions Used in this }
-{\bf Bacula} is in a state of evolution, and as a consequence, this manual
+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
an asterisk (*), it indicates that the particular feature is not implemented.
If it is preceded by a plus sign (+), it indicates that the feature may be
partially implemented.
+% TODO: search for plus sign and asterisk and "IMPLEMENTED" and fix for printed book
If you are reading this manual as supplied in a released version of the
software, the above paragraph holds true. If you are reading the online
mind that this version describes the current version in development (in the
CVS) that may contain features not in the released version. Just the same, it
generally lags behind the code a bit.
+% TODO: is this still true? there are separate websites
\section{Quick Start}
\index[general]{Quick Start }
\index[general]{Start!Quick }
-To get Bacula up and running quickly, we recommend that you first scan the
+To get Bacula up and running quickly, the author recommends
+that you first scan the
Terminology section below, then quickly review the next chapter entitled
\ilink{The Current State of Bacula}{StateChapter}, then the
\ilink{Getting Started with Bacula}{QuickStartChapter}, which will
\section{Terminology}
\index[general]{Terminology }
-To facilitate communication about this project, we provide here the
-definitions of the terminology that we use.
-
\begin{description}
\item [Administrator]
\item [Backup]
\index[fd]{Backup }
- We use the term {\bf Backup} to refer to a Bacula Job that saves files.
+ The term Backup refers to a Bacula Job that saves files.
\item [Bootstrap File]
\index[fd]{Bootstrap File }
The bootstrap file is an ASCII file containing a compact form of
commands that allow Bacula or the stand-alone file extraction utility
- ({\bf bextract}) to restore the contents of one or more Volumes, for
+ (bextract) to restore the contents of one or more Volumes, for
example, the current state of a system just backed up. With a bootstrap
file, Bacula can restore your system without a Catalog. You can create
a bootstrap file from a Catalog to extract any file or files you wish.
copy of the file data in addition to the File Attributes (see below).
The catalog feature is one part of Bacula that distinguishes it from
- simple backup and archive programs such as {\bf dump} and {\bf tar}.
+ simple backup and archive programs such as dump and tar.
\item [Client]
\index[fd]{Client }
In Bacula's terminology, the word Client refers to the machine being
backed up, and it is synonymous with the File services or File daemon,
- and quite often, we refer to it as the FD. A Client is defined in a
+ and quite often, it is referred to it as the FD. A Client is defined in a
configuration file resource.
\item [Console]
\item [Daemon]
\index[fd]{Daemon }
Unix terminology for a program that is always present in the background to
-carry out a designated task. On Windows systems, as well as some Linux
-systems, daemons are called {\bf Services}.
+ carry out a designated task. On Windows systems, as well as some Unix
+ systems, daemons are called Services.
\item [Directive]
\index[fd]{Directive }
The term directive is used to refer to a statement or a record within a
- Resource in a configuration file that defines one specific thing. For
+ Resource in a configuration file that defines one specific setting. For
example, the {\bf Name} directive defines the name of the Resource.
\item [Director]
\index[fd]{Director }
The main Bacula server daemon that schedules and directs all Bacula
- operations. Occasionally, we refer to the Director as DIR.
+ operations. Occasionally, the project refers to the Director as DIR.
\item [Differential]
\index[fd]{Differential }
files are to be backed up (Storage device, Media Pool). For more
details, see the \ilink{Job Resource definition}{JobResource} in the
Director chapter of this document.
+% TODO: clean up "..." for book
\item [Monitor]
\index[fd]{Monitor }
directives (individual configuration statements). For example, the {\bf
Job} resource defines all the properties of a specific Job: name,
schedule, Volume pool, backup type, backup level, ...
+% TODO: clean up "..." for book
\item [Restore]
\index[fd]{Restore }
files to restore, while normally a Save backs up all the files on the
system. Of course, after a disk crash, Bacula can be called upon to do
a full Restore of all files that were on the system.
+% TODO: Why? Why say "Of course"??
+
+% TODO: define "Save"
+% TODO: define "Full"
\item [Schedule]
\index[fd]{Schedule }
\item [Service]
\index[fd]{Service }
- This is Windows terminology for a {\bf daemon} -- see above. It is now
+ This is Windows terminology for a {\bf daemon} -- see above. It is
frequently used in Unix environments as well.
+% TODO: maybe do not say this is "Windows" terminology because it is common
\item [Storage Coordinates]
\index[fd]{Storage Coordinates }
\index[sd]{Session }
Normally refers to the internal conversation between the File daemon and
the Storage daemon. The File daemon opens a {\bf session} with the
- Storage daemon to save a FileSet, or to restore it. A session has a one
- to one correspondence to a Bacula Job (see above).
+ Storage daemon to save a FileSet or to restore it. A session has a
+ one-to-one correspondence to a Bacula Job (see above).
\item [Verify]
\index[sd]{Verify }
A verify is a job that compares the current file attributes to the
attributes that have previously been stored in the Bacula Catalog. This
feature can be used for detecting changes to critical system files
- similar to what {\bf Tripwire} does. One of the major advantages of
+ similar to what a file integrity checker like Tripwire does.
+ One of the major advantages of
using Bacula to do this is that on the machine you want protected such
as a server, you can run just the File daemon, and the Director, Storage
daemon, and Catalog reside on a different machine. As a consequence, if
to a Volume agrees with what is stored in the Catalog (i.e. it compares
the file attributes), *or it can check the Volume contents against the
original files on disk.
+% TODO: fix book for asterisk above and below
\item [*Archive]
\index[fd]{*Archive }
in the Catalog database. This should not be confused with the time that
the data saved to a Volume is valid.
+% TODO: the following sentence is unclear to me
The File Retention Period determines the time that File records are kept
in the catalog database. This period is important because the volume of
the database File records by far use the most storage space in the
database. As a consequence, you must ensure that regular "pruning" of
the database file records is done. (See the Console {\bf retention}
command for more details on this subject).
+% TODO: Where?
The Job Retention Period is the length of time that Job records will be
kept in the database. Note, all the File records are tied to the Job
have a software label written to the Volume by Bacula so that it
identifies what Volume it is really reading. (Normally there should be
no confusion with disk files, but with tapes, it is easy to mount the
- wrong one).
+ wrong one.)
\end{description}
\section{What Bacula is Not}
\index[general]{What Bacula is Not}
-{\bf Bacula} is a backup, restore and verification program and is not a
+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
if you plan carefully and follow the instructions included in the
\ilink{ Disaster Recovery}{RescueChapter} Chapter of this manual.
-With proper planning, as mentioned in the Disaster Recovery chapter {\bf
-Bacula} can be a central component of your disaster recovery system. For
+With proper planning, as mentioned in the Disaster Recovery chapter,
+Bacula can be a central component of your disaster recovery system. For
example, if you have created an emergency boot disk, a Bacula Rescue disk to
save the current partitioning information of your hard disk, and maintain a
complete Bacula backup, it is possible to completely recover your system from
"bare metal" that is starting from an empty disk.
+% TODO: should is say "or" between boot disk and rescue disk?
If you have used the {\bf WriteBootstrap} record in your job or some other
means to save a valid bootstrap file, you will be able to use it to extract
MailCommand} are also done for this command. Normally, you will set this
command to the same value as specified for the {\bf MailCommand}.
-\item [Debug = \lt{}debug-level\gt{}]
- \index[fd]{Debug}
- This sets the debug message level to the debug level, which is an integer.
-Higher debug levels cause more debug information to be produced. You are
-requested not to use this record since it will be deprecated.
-
\item [\lt{}destination\gt{} = \lt{}message-type1\gt{},
\lt{}message-type2\gt{}, ...]
\index[fd]{\lt{}destination\gt{}}
By properly defining your Volume Pools with appropriate Retention periods,
Bacula can manage the recycling (such as defined above) automatically.
-Automatic recycling of Volumes is controlled by three records in the {\bf
-Pool} resource definition in the Director's configuration file. These three
+Automatic recycling of Volumes is controlled by four records in the {\bf
+Pool} resource definition in the Director's configuration file. These four
records are:
\begin{itemize}
\item AutoPrune = yes
\item VolumeRetention = \lt{}time\gt{}
-\item Recycle = yes
+\item Recycle = yes
+\item RecyclePool = \lt{}APool\gt{} (\textit{This require bacula 2.1.4 or greater})
\end{itemize}
The above three directives are all you need assuming that you fill
\ilink{Is there an easier way than sorting out all these command line options?}{faq7}
\item
\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}
+\item
+ \ilink{There are a lot of rpm packages. Which packages do I need for what?}{faq9}
\end{enumerate}
\section{Answers}
{\bf How do I build Bacula for platform xxx?}
The bacula spec file contains defines to build for several platforms:
Red Hat 7.x (rh7), Red Hat 8.0 (rh8), Red Hat 9 (rh9), Fedora Core (fc1,
- fc3, fc4, fc5), Whitebox Enterprise Linux 3.0 (wb3), Red Hat Enterprise Linux
+ fc3, fc4, fc5, fc6), Whitebox Enterprise Linux 3.0 (wb3), Red Hat Enterprise Linux
(rhel3, rhel4), Mandrake 10.x (mdk), Mandriva 2006.x (mdv) CentOS (centos3, centos4)
and SuSE (su9, su10). The package build is controlled by a mandatory define set at
the beginning of the file. These defines basically just control the
%define mysql 0
OR
%define mysql4 0
+ OR
+ %define mysql5 0
\end{verbatim}
\normalsize
%define mysql 1
OR
%define mysql4 1
+ OR
+ %define mysql5 1
\end{verbatim}
\normalsize
\begin{verbatim}
rpmbuild -ba --define "build_rh7 1" --define "build_mysql 1" bacula.spec
rpmbuild -ba --define "build_rh7 1" --define "build_mysql4 1" bacula.spec
+ rpmbuild -ba --define "build_rh7 1" --define "build_mysql5 1" bacula.spec
\end{verbatim}
\normalsize
Further, if you are using File storage volumes rather than tapes those files will also need to have ownership set to user bacula and group bacula.
+\item
+ \label{faq9}
+ {\bf There are a lot of rpm packages. Which packages do I need for what?} For a bacula server you need to select the packsge based upon your preferred catalog database: one of bacula-mysql, bacula-postgresql or bacula-sqlite. If your system does not provide an mtx package you also need bacula-mtx to satisfy that dependancy. For a client machine you need only install bacula-client. Optionally, for either server or client machines, you may install a graphical console bacula-gconsole and/or bacula-wxconsole. One last package, bacula-updatedb is required only when upgrading a server more than one database revision level.
+
+
\item {\bf Support for RHEL3/4, CentOS 3/4 and x86\_64}
The examples below show
--define "build_fc3 1"
--define "build_fc4 1"
--define "build_fc5 1"
+--define "build_fc6 1"
Whitebox Enterprise build
--define "build_wb3 1"
important purposes.
\begin{itemize}
-\item It take a long time for data to come in from the File daemon during
+\item It takes a long time for data to come in from the File daemon during
an Incremental backup. If it is directly written to tape, the tape will
start and stop or shoe-shine as it is often called causing tape wear.
By first writing the data to disk, then writing it to tape, the tape can
is typical for most similar backup programs (we have a project to
correct this).
\item Bacula's Differential and Incremental backups are based on
- time stamps. Consequently, if you move files into an existing directory or
- move a whole directory into the backup fileset after a Full backup, those
- files will probably not be backed up by an Incremental save because they
- will have old dates. You must explicitly update the date/time stamp on all
- moved files (we have a project to correct this).
-\item File System Modules (configurable routines for saving/restoring special
- files) are not yet implemented.
+ time stamps. Consequently, if you move files into an existing
+ directory or move a whole directory into the backup fileset
+ after a Full backup, those files will probably not be backed
+ up by an Incremental save because they will have old dates.
+ You must explicitly update the date/time stamp on all moved
+ files (we have a project to correct this).
+\item File System Modules (configurable routines for
+ saving/restoring special files) are not yet implemented.
+\item Bacula supports doing backups and restores to multiple
+ devices of different media type and multiple Storage daemons.
+ However, if you have backed up a job to multiple storage
+ devices, Bacula can do a restore from only one device, which
+ means that you will need to manually edit the bootstrap file
+ to split it into two restores if you split the backup across
+ storage devices.
+\item Bacula cannot restore two different jobs in the same
+ restore if those jobs were run simultaneously, unless you had
+ data spooling turned on and the spool file held the full
+ contents of both jobs. In other terms, Bacula cannot restore
+ two jobs in the same restore if the jobs' data blocks were
+ intermixed on the backup medium. This poses no restrictions
+ for normal backup jobs even if they are run simultaneously.
\end{itemize}
\section{Design Limitations or Restrictions}
If you want to write into more than one directory (i.e. to spread the load to
different disk drives), you will need to define two Device resources, each
containing an Archive Device with a different directory.
-
+ \label{SetupFifo}
In addition to a tape device name or a directory name, Bacula will accept the
name of a FIFO. A FIFO is a special kind of file that connects two programs
via kernel memory. If a FIFO device is specified for a backup operation, you
the Storage daemon to open it only when a job starts, so you must explicitly
set it to {\bf No}. Since a FIFO is a one way device, Bacula will not attempt
to read a label of a FIFO device, but will simply write on it. To create a
- FIFO Volume in the catalog, use the {\bf add} command rather than then {\bf
- label} command to avoid attempting to write a label.
-
+ FIFO Volume in the catalog, use the {\bf add} command rather than the {\bf
+ label} command to avoid attempting to write a label.
+
+\footnotesize
+\begin{verbatim}
+Device {
+ Name = FifoStorage
+ Media Type = Fifo
+ Device Type = Fifo
+ Archive Device = /tmp/fifo
+ LabelMedia = yes
+ Random Access = no
+ AutomaticMount = no
+ RemovableMedia = no
+ MaximumOpenWait = 60
+ AlwaysOpen = no
+}
+\end{verbatim}
+\normalsize
+
During a restore operation, if the Archive Device is a FIFO, Bacula will
attempt to read from the FIFO, so you must have an external program that
writes into the FIFO. Bacula will wait {\bf MaximumOpenWait} seconds for the
\index[general]{Supported Operating Systems }
\begin{itemize}
-\item Linux systems (built and tested on SuSE 10.1).
+\item Linux systems (built and tested on SuSE 10.2).
\item Most flavors of Linux (Gentoo, Red Hat, Fedora, Mandriva, Debian, Ubuntu, ...).
\item Solaris various versions.
\item FreeBSD (tape driver supported in 1.30 -- for FreeBSD older than
one.
\begin{enumerate}
+\item Make sure that Bacula (the Storage daemon) is not running
+ or that you have {\bf unmount}ed the drive you will use
+ for testing.
+
\item Use tar to write to, then read from your drive:
\footnotesize
Adjust your autochanger as necessary to ensure that it works correctly. See
the Autochanger chapter of this manual for a complete discussion of testing
your autochanger.
+
+\item We strongly recommend that you use a dedicated SCSI
+controller for your tape drives. Scanners are known to induce
+serious problems with the SCSI bus, causing it to reset. If the
+SCSI bus is reset while Bacula has the tape drive open, it will
+most likely be fatal to your tape since the drive will rewind.
+These kinds of problems show up in the system log. For example,
+the following was most likely caused by a scanner:
+
+\footnotesize
+\begin{verbatim}
+Feb 14 17:29:55 epohost kernel: (scsi0:A:2:0): No or incomplete CDB sent to device.
+Feb 14 17:29:55 epohost kernel: scsi0: Issued Channel A Bus Reset. 1 SCBs aborted
+\end{verbatim}
+\normalsize
+
\end{enumerate}
If you have reached this point, you stand a good chance of having everything
completed. In particular, you may want to look at the
\ilink{ Tips for Resolving Problems}{problems1} section below.
+
\label{NoTapeInDrive}
\subsection{Problems When no Tape in Drive}
\index[general]{Problems When no Tape in Drive}
Bacula supports a variety of tape changers through the use of mtx-changer
scripts/programs. This highly flexible approach allowed me to create
-\ilink{this shell script}{mtx-changer.txt} which does the following:
-% TODO: This link doesn't work; also need to include this in book appendix
-% TODO: and point to it.
+\elink{this shell script}{http://www.bacula.org/rel-manual/mtx-changer.txt} which does the following:
+% TODO: We need to include this in book appendix and point to it.
+% TODO:
Whenever a new tape is required it sends a mail to the operator to insert the
new tape. Then it waits until a tape has been inserted, sends a mail again to
say thank you and let's bacula continue its backup.
considerably less secure than PKI certificate-based authentication.
Appropriate autoconf macros have been added to detect and use OpenSSL
-if enabled on the {\bf ./configure} line with {\bf \verb?--?enable-openssl}
+if enabled on the {\bf ./configure} line with {\bf \verb?--?with-openssl}
\section{TLS Configuration Directives}
Additional configuration directives have been added to all the daemons
-2.0.1 (12 January 2007)
+2.0.3 (28 February 2007)
\label{Win32Chapter}
\index[general]{Windows Version of Bacula}
-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
-below, we are referring to the File daemon only. Please note that as of
-version 1.39.20, the installer is capable of installing not just the Client
-program, but also the Director and the Storage daemon and all the other
-programs that were previously available only on Unix systems.
+At the current time only the File daemon or Client program has
+been thouroughly tested on Windows and is suitable for a
+production environment. As a consequence, when we
+speak of the Windows version of Bacula below, we are referring to
+the File daemon (client) only.
+
+As of Bacula version 1.39.20 or greater, the installer is capable
+of installing not just the Client program, but also the Director
+and the Storage daemon and all the other programs that were
+previously available only on Unix systems. These additional
+programs, notably the Director and Storage daemon, have been
+tested, but still need to be documented. As a consequence, if you
+install and use them, please test them carefully before putting
+them into a critical production environment.
The Windows version of the Bacula File daemon has been tested on Win98, WinMe,
WinNT, WinXP, Win2000, and Windows 2003 systems. We have coded to support
-Win95, but no longer have a system for testing. The Windows version of
+Win95, but no longer have a system for testing. The Windows version of
Bacula is a native Win32 port, but there are very few source code changes
to the Unix code, which means that the Windows version is for the most part
running code that has long proved stable on Unix systems. When running, it
Finally, proceed with the installation.
\begin{itemize}
-\item You must be logged in as Administrator to do a correct installation,
- if not, please do so before continuing.
+\item You must be logged in as Administrator to the local machine
+to do a correct installation, if not, please do so before continuing.
+Some users have attempted to install logged in as a domain administrator
+account and experienced permissions problems attempting to run
+Bacula, so we don't recommend that option.
\item Simply double click on the {\bf winbacula-1.xx.0.exe} NSIS install
icon. The actual name of the icon will vary from one release version to
\index[general]{Win32!Dealing with Problems}
\index[general]{Dealing with Win32 Problems}
+If you are not using the portable option, and you have VSS
+(Volume Shadow Copy) enabled in the Director, and you experience
+problems with Bacula not being able to open files, it is most
+likely that you are running an antivirus program that blocks
+Bacula from doing certain operations. In this case, disable the
+antivirus program and try another backup. If it succeeds, either
+get a different (better) antivirus program or use something like
+RunClientJobBefore/After to turn off the antivirus program while
+the backup is running.
+
+If turning off anti-virus software does not resolve your VSS
+problems, you might have to turn on VSS debugging. The following
+link describes how to do this:
+\elink{http://support.microsoft.com/kb/887013/en-us}{http://support.microsoft.com/kb/887013/en-us}.
+
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
the names and the passwords defined in the File daemon's configuration file
One user had serious problems with the configuration file until he realized
that the Unix end of line conventions were used and Bacula wanted them in
-Windows format. This has not been confirmed though.
+Windows format. This has not been confirmed though, and Bacula version 2.0.0
+and above should now accept all end of line conventions (Win32,
+Unix, Mac).
Running Unix like programs on Windows machines is a bit frustrating because
the Windows command line shell (DOS Window) is rather primitive. As a