it always writes its own tape labels as well.
When using ANSI or IBM tape labeling, you must restrict your Volume
-names to a maximum of 6 characters.
+names to a maximum of six characters.
If you have labeled your Volumes outside of Bacula, then the
ANSI/IBM label will be recognized by Bacula only if you have created
\normalsize
I get {\bf 620,644} which means there are that many blocks containing 1024
-bytes each or approximately 635 MB of data. After doing the {\bf msqldump}, I
+bytes each or approximately 635 MB of data. After doing the {\bf mysqldump}, I
had a bacula.sql file that had {\bf 174,356} blocks, and after doing the {\bf
mysql} command to recreate the database, I ended up with a total of {\bf
210,464} blocks rather than the original {\bf 629,644}. In other words, the
of the database that had been in use for about a year.
As a consequence, I suggest you monitor the size of your database and from
-time to time (once every 6 months or year), compress it.
+time to time (once every six months or year), compress it.
\label{DatabaseRepair}
\label{RepairingMySQL}
\end{verbatim}
\normalsize
-If the column labeld "Max\_data\_length" is around 4Gb, this is likely
+If the column labeled "Max\_data\_length" is around 4Gb, this is likely
to be the source of your problem, and you can modify it with:
\footnotesize
{\bf File} table. The first index is on {\bf FileId} and is automatically
made because it is the unique key used to access the table. The other
two are the JobId index and the (Filename, PathId) index. If these Indexes
-are not present, your peformance may suffer a lot.
+are not present, your performance may suffer a lot.
\subsubsection*{PostgreSQL Indexes}
On PostgreSQL, you can check to see if you have the proper indexes using
\end{verbatim}
\normalsize
-where we have assumed 4 weeks in a month and 26 incremental backups per month.
+where we have assumed four weeks in a month and 26 incremental backups per month.
This would give the following:
\footnotesize
Clients beginning September 2001 through May 2002 (8.5 months) and File
records for the last 80 days. (Older File records have been pruned). For these
systems, only the user files and system files that change are backed up. The
-core part of the system is assumed to be easily reloaded from the RedHat rpms.
+core part of the system is assumed to be easily reloaded from the Red Hat rpms.
In the list below, the files (corresponding to Bacula Tables) with the
be accepted. Names may contain up to 127 characters. Currently, a name may
contain any ASCII character. Within a quoted string, any character following a
backslash (\textbackslash{}) is taken as itself (handy for inserting
-blackslashes and double quotes (").
+backslashes and double quotes (").
Please note, however, that Bacula resource names as well as certain other
names (e.g. Volume names) must contain only letters (including ISO accented
there are console messages pending, but they will not automatically be
displayed. The default for the gnome-console program is {\bf on}, which
means that messages will be displayed when they are received (usually
- within 5 seconds of them being generated).
+ within five seconds of them being generated).
When autodisplay is turned off, you must explicitly retrieve the
messages with the {\bf messages} command. When autodisplay is turned
will queued until all jobs that were running before issuing
the reload terminate, at which time the old config values will
be released from memory. The Directory permits keeping up to
- 10 prior set of configurations before it will refuse a reload
+ ten prior set of configurations before it will refuse a reload
command. Once at least one old set of config values has been
released it will again accept new reload commands.
\item [status]
\index[dir]{status}
This command will display the status of the next jobs that are scheduled
- during the next twenty-four hours as well as the status of currently
+ during the next 24 hours as well as the status of currently
running jobs. The full form of this command is:
status [all | dir=\lt{}dir-name\gt{} | director |
If you do a {\bf status dir}, the console will list any currently
running jobs, a summary of all jobs scheduled to be run in the next 24
- hours, and a listing of the last 10 terminated jobs with their statuses.
+ 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
+ should be aware of two things: 1. to obtain the volume name, the code
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
If you do a {\bf status dir}, it will by default list the first
occurrence of all jobs that are scheduled today and tomorrow. If you
- wish to see the jobs that are scheduled in the next 3 days (e.g. on
+ wish to see the jobs that are scheduled in the next three days (e.g. on
Friday you want to see the first occurrence of what tapes are scheduled
to be used on Friday, the weekend, and Monday), you can add the {\bf
days=3} option. Note, a {\bf days=0} shows the first occurrence of jobs
may take you a bit of time, but it will eliminate surprises.
\item Test the end of tape handling of your tape drive by using the
fill command in the \ilink{btape}{btape} program.
-\item If you are using a 2.4 kernel, make sure that /lib/tls is disabled. Bacula
+\item If you are using a Linux 2.4 kernel, make sure that /lib/tls is disabled. Bacula
does not work with this library. See the second point under
\ilink{ Supported Operating Systems.}{SupportedOSes}
\item Do at least one restore of files. If you backup multiple OS types
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 openning the file or execute the
+ On versions 1.39.22 or greater, before opening the file or execute the
specified command, Bacula performs
\ilink{character substitution}{character substitution} like in RunScript
directive. To automatically manage your bootstrap files, you can use
finding an unused drive, otherwise, each job started will append to the
same Volume (assuming the Pool is the same for all jobs). Setting
Prefer Mounted Volumes to no can be useful for those sites particularly
- with multiple drive autochangers that prefer to maximumize backup
+ with multiple drive autochangers that prefer to maximize backup
throughput at the expense of using additional drives and Volumes. As an
optimization, when using multiple drives, you will probably want to
start each of your jobs one after another with approximately 5 second
keep these points in mind:
\begin{itemize}
-\item To run concurrent jobs, you must set Maximum Concurrent Jobs = 2 in 5
- or 6 distinct places: in bacula-dir.conf in the Director, the Job, the
+\item To run concurrent jobs, you must set Maximum Concurrent Jobs = 2 in five
+ or six distinct places: in bacula-dir.conf in the Director, the Job, the
Client, the Storage resources; in bacula-fd in the FileDaemon (or
Client) resource, and in bacula-sd.conf in the Storage resource. If any
one is missing, it will throttle the jobs to one at a time. You may, of
hard disk failure, you are more likely to be able to recover more data
if they are in smaller Volumes.
-\item To limit the use time (i.e. write the Volume for a maximum of 5 days),
+\item To limit the use time (i.e. write the Volume for a maximum of five days),
use:
{\bf Volume Use Duration = ttt}.
The option {\bf -use-the-force-luke=4gms} was added in growisofs 5.20 to
override growisofs' behavior of always checking for the 4GB limit.
-Normally, this option is recommended for all Linux kernels 2.6.8 or
+Normally, this option is recommended for all Linux 2.6.8 kernels or
greater, since these newer kernels can handle writing more than 4GB.
See below for more details on this subject.
\subsection*{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 RedHat Linux (versions RH7.1-RHEL
+ {\bf Bacula} builds and executes on Red Hat Linux (versions RH7.1-RHEL
4.0, Fedora, SuSE, Gentoo, Debian, Mandriva, ...), FreeBSD, Solaris,
Alpha, SGI (client), NetBSD, OpenBSD, Mac OS X (client), and Win32.
Bacula has been my only backup tool for over seven years backing up 8
machines nightly (6 Linux boxes running SuSE, previously
- RedHat and Fedora, a WinXP machine, and a WinNT machine).
+ Red Hat and Fedora, a WinXP machine, and a WinNT machine).
\label{stable}
Client machine. Try configuring everything identical to how you run the
client on the same machine as the Director, but just change the Address. If
that works, make the other changes one step at a time until it works.
-\item You may also be having problems betwen your File daemon and your
+\item You may also be having problems between your File daemon and your
Storage daemon. The name you use in the Storage resource of your
Director's conf file must be known (resolvable) by the File daemon,
because it is passed symbolically to the File daemon, which then
\begin{enumerate}
\item You must have the zip development libraries loaded on your system
when building Bacula and Bacula must find this library, normally {\bf
- /usr/lib/libz.a}. On RedHat systems, this library is provided by the
+ /usr/lib/libz.a}. On Red Hat systems, this library is provided by the
{\bf zlib-devel} rpm.
If the library is found by Bacula during the {\bf ./configure} it will
This happens because Bacula leaves stdin, stdout, and stderr open for
debug purposes. To avoid it, the simplest thing to do is to redirect
the output of those files to {\bf /dev/null} or another file in your
- startup script (the RedHat autostart scripts do this automatically).
+ startup script (the Red Hat autostart scripts do this automatically).
For example, you start the Director with:
\footnotesize
hardware compression. As noted above, it is not generally a good idea
to do both software and hardware compression.
- Specifying {\bf GZIP} uses the default compression level six (i.e. {\bf
+ Specifying {\bf GZIP} uses the default compression level 6 (i.e. {\bf
GZIP} is identical to {\bf GZIP6}). If you want a different compression
level (1 through 9), you can specify it by appending the level number
with no intervening spaces to {\bf GZIP}. Thus {\bf compression=GZIP1}
would give minimum compression but the fastest algorithm, and {\bf
compression=GZIP9} would give the highest level of compression, but
requires more computation. According to the GZIP documentation,
- compression levels greater than 6 generally give very little extra
+ compression levels greater than six generally give very little extra
compression and are rather CPU intensive.
\item [signature=SHA1]
This option is particularly useful for sites where users are sensitive
to their MailBox file access time. It replaces both the {\bf keepatime}
- option without the inconvienences of that option (see below).
+ option without the inconveniences of that option (see below).
If your Operating System does not support this option, it will be
silently ignored by Bacula.
\end{verbatim}
\normalsize
- will produce a list of all the local partitions on a RedHat Linux system.
+ will produce a list of all the local partitions on a Red Hat Linux system.
Note, the above line was split, but should normally be written on one line.
Quoting is a real problem because you must quote for Bacula which consists of
preceding every \textbackslash{} and every " with a \textbackslash{}, and
business.
If you know what filesystems you have mounted on your system, e.g.
- for RedHat Linux normally only ext2 and ext3, you can backup
- all local fileystems using something like:
+ for Red Hat Linux normally only ext2 and ext3, you can backup
+ all local filesystems using something like:
\footnotesize
\begin{verbatim}
solution was to define two different Storage resources in the Director's
conf file each pointing to the same Storage daemon but with different
IP addresses. In Bacula 1.38.x this no longer works, because Bacula makes
-a 1 to 1 association between a Storage daemon resource and a Device (such
+a one-to-one association between a Storage daemon resource and a Device (such
as an Autochanger). As a consequence, I have modified his original
text to a method that I believe will work, but is as of yet untested
(KES - July 2006).
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 the Linux RedHat and
+ The RPMs for MySQL and PostgreSQL ship as part of Red Hat Linux and
several other releases. Alternatively, building the rpms from the
source is quite easy, see the \ilink{ Installing and Configuring
MySQL}{_ChapterStart} chapter of this document for the details. For
\item The code passes the regression testing on Linux,
FreeBSD, and Solaris machines. Including tape drive testing
on Linux and FreeBSD (not currently on Solaris).
-\item There are no known major bugs, or on the rare occassion that
+\item There are no known major bugs, or on the rare occasion that
there are, they will be documented.
\item Some of the new code/features may not yet be tested.
\item Bugs are expected to be found, especially in the new
If all goes well, the {\bf ./configure} will correctly determine which
operating system you are running and configure the source code appropriately.
-Currently, FreeBSD, Linux (RedHat), and Solaris are supported. The Bacula
+Currently, FreeBSD, Linux (Red Hat), and Solaris are supported. The Bacula
client (File daemon) is reported to work with MacOS X 10.3 is if
readline support is not enabled (default) when building the client.
configure} statement to ensure that the modules you want are built and that
everything is placed into the correct directories.
-For example, on Fedora, RedHat, or SuSE one could use the following:
+For example, on Fedora, Red Hat, or SuSE one could use the following:
\footnotesize
\begin{verbatim}
they provide a command line history and editing capability for the Console
program. If you have included either option in the build, either the {\bf
termcap} or the {\bf ncurses} package will be needed to link. On most
-systems, including RedHat and SuSE, you should include the ncurses package.
+systems, including Red Hat and SuSE, you should include the ncurses package.
If Bacula's configure process finds the ncurses libraries, it will use
those rather than the termcap library.
On some systems, such as SuSE, the termcap library is not in the standard
in the Security Chapter.
On SuSE, the libwrappers libraries needed to link Bacula are
- contained in the tcpd-devel package. On RedHat the package is named
+ contained in the tcpd-devel package. On Red Hat, the package is named
tcp\_wrappers.
\item [ {-}{-}with-working-dir=\lt{}working-directory-path\gt{} ]
running Bacula for the first time. See below for an example of how Kern does
it.
-\subsection*{RedHat}
-\index[general]{RedHat}
-\addcontentsline{toc}{subsection}{RedHat}
+\subsection*{Red Hat}
+\index[general]{Red Hat}
+\addcontentsline{toc}{subsection}{Red Hat}
Using SQLite:
\end{verbatim}
\normalsize
-or finally, a completely traditional RedHat Linux install:
+or finally, a completely traditional Red Hat Linux install:
\footnotesize
\begin{verbatim}
\normalsize
Please note, that the auto-start feature is implemented only on systems
-that we officially support (currently, FreeBSD, RedHat/Fedora Linux, and
+that we officially support (currently, FreeBSD, Red Hat/Fedora Linux, and
Solaris), and has only been fully tested on Fedora Linux.
The {\bf make install-autostart} will cause the appropriate startup scripts
-to be installed with the necessary symbolic links. On RedHat/Fedora Linux
+to be installed with the necessary symbolic links. On Red Hat/Fedora Linux
systems, these scripts reside in {\bf /etc/rc.d/init.d/bacula-dir} {\bf
/etc/rc.d/init.d/bacula-fd}, and {\bf /etc/rc.d/init.d/bacula-sd}. However
the exact location depends on what operating system you are using.
separated list in the {\bf address} field. Mail messages are grouped
together during a job and then sent as a single email message when the
job terminates. The advantage of this destination is that you are
- notified about every Job that runs. However, if you backup 5 or 10
+ notified about every Job that runs. However, if you backup five or ten
machines every night, the volume of email messages can be important.
Some users use filter programs such as {\bf procmail} to automatically
file this email based on the Job termination code (see {\bf
during the migration. In addition, the calculation of the total Pool
byte size is based on the Volume bytes saved in the Volume (Media)
database
- entries. The bytes caculate for Migration is based on the value stored
+ entries. The bytes calculate for Migration is based on the value stored
in the Job records of the Jobs to be migrated. These do not include the
Storage daemon overhead as is in the total Pool size. As a consequence,
normally, the migration will migrate more bytes than strictly necessary.
tray-monitor.conf as long as FD, SD and DIR are configured properly, so
the passwords contained in this file only gives access to the status of
the daemons. It could be a security problem if you consider the status
-information as potentially dangereous (I don't think it is the case).
+information as potentially dangerous (I don't think it is the case).
Concerning Director's configuration: \\
In tray-monitor.conf, the password in the Monitor resource must point to
\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 ususally found in a devel package, so you must
+libraries are usually found in a devel package, so you must
install:
\footnotesize
\end{verbatim}
\normalsize
-will produce a list of all the local partitions on a RedHat Linux system.
+will produce a list of all the local partitions on a Red Hat Linux system.
Note, the above line was split, but should normally be written on one line.
Quoting is a real problem because you must quote for Bacula which consists of
preceding every \textbackslash{} and every " with a \textbackslash{}, and
\addcontentsline{toc}{section}{Using Pools to Manage Volumes}
\addcontentsline{toc}{section}{Automated Disk Backup}
-If you manage 5 or 10 machines and have a nice tape backup, you don't need
+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
see that Pools can help you optimize disk storage space. The same techniques
can be applied to a shop that has multiple tape drives, or that wants to mount
\index[general]{Solution}
\addcontentsline{toc}{subsection}{Solution}
-They want to maintain 6 months of backup data, and be able to access the old
+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
-for 6 months. In addition, offsite capability was not needed (well perhaps
+for six months. In addition, offsite capability was not needed (well perhaps
it really is, but it was never used). Their daily changes amount to about
300MB on the average, or about 2GB per week.
Since these are disk Volumes, no space is lost by having separate Volumes for
each backup (done once a month in this case). The items to note are the
-retention period of six months (i.e. they are recycled after 6 months), that
+retention period of six months (i.e. they are recycled after six months), that
there is one job per volume (Maximum Volume Jobs = 1), the volumes will be
labeled Full-0001, ... Full-0006 automatically. One could have labeled these
manual from the start, but why not use the features of Bacula.
If running the script fails, it is probably because the database is
owned by a user other than yourself. On many systems, the database
- owner is {\bf pgsql} and on others such as RedHat and Fedora it is {\bf
+ owner is {\bf pgsql} and on others such as Red Hat and Fedora it is {\bf
postgres}. You can find out which it is by examining your /etc/passwd
file. To create a new user under either your name or with say the name
{\bf bacula}, you can do the following:
You should, always try to specify the tapes in the order they are written.
However, bscan can handle scanning tapes that are not sequential. Any
incomplete records at the end of the tape will simply be ignored in that
-case. If you are simply reparing an existing catalog, this may be OK, but
+case. If you are simply repairing an existing catalog, this may be OK, but
if you are creating a new catalog from scratch, it will leave your database
in an incorrect state. If you do not specify all necessary Volumes on a
single bscan command, bscan will not be able to correctly restore the
By the way, I personally run dbcheck only where I have messed up
my database due to a bug in developing Bacula code, so normally
-you should never need to run dbcheck inspite of the
+you should never need to run dbcheck in spite of the
recommendations given above, which are given so that users don't
waste their time running dbcheck too often.
users will vote on a list of new features. This vote is used
as the main element determining what new features will be
implemented for the next version. Generally, the development time
-for a new release is between 4 to 9 months. Sometimes it may be
+for a new release is between four to nine months. Sometimes it may be
a bit longer, but in that case, there will be a number of bug fix
updates to the currently released version.
file is updated approximately once every six months.
Separately from the project list, Kern maintains a current list of
-tasks as well as ideas, feature requests, and occassionally design
+tasks as well as ideas, feature requests, and occasionally design
notes. This list is updated roughly weekly (sometimes more often).
For a current list of tasks you can see {\bf kernstodo} in the Source Forge
CVS at \elink{http://cvs.sourceforge.net/viewcvs.py/*checkout*/bacula/bacula/kernstodo}
attributes, or set them. See below for a list of read-only attributes,
and those that are writable.
-In addition, the Bacula {\bf job} obbject in the Director has
+In addition, the Bacula {\bf job} object in the Director has
a number of methods (subroutines) that can be called. They
are:
\begin{description}
\item [set\_events] The set\_events method takes a single
- argument, which is the instantation of the Job Events class
+ argument, which is the instantiation of the Job Events class
that contains the methods that you want called. The method
names that will be called must correspond to the Bacula
defined events. You may define additional methods but Bacula
Most of the directives, such as FileSets, Pools, Schedules, can be mixed
and matched among the jobs. So you might have two different Job
definitions (resources) backing up different servers using the same
-Schedule, the same Fileset (backing up the same directories on 2 machines)
+Schedule, the same Fileset (backing up the same directories on two machines)
and maybe even the same Pools. The Schedule will define what type of
-backup will run when (e.g Full on Monday, incremental the rest of the
+backup will run when (e.g. Full on Monday, incremental the rest of the
week), and when more than one job uses the same schedule, the job priority
determines which actually runs first. If you have a lot of jobs, you might
want to use JobDefs, where you can set defaults for the jobs, which can
\addcontentsline{toc}{subsection}{Get Rid of the /lib/tls Directory}
The new pthreads library {\bf /lib/tls} installed by default on recent Red Hat
-systems running kernel 2.4.x is defective. You must remove it or rename it,
+systems running Linux kernel 2.4.x is defective. You must remove it or rename it,
then reboot your system before running Bacula otherwise after a week or so of
running, Bacula will either block for long periods or deadlock entirely.
You may want to use the loader environment variable override rather
Systems}{SupportedOSes} for more
information on this problem.
-This problem does not occur on systems running 2.6.x kernels.
+This problem does not occur on systems running Linux 2.6.x kernels.
\label{Running1}
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 {\bf scripts/logrotate} to {\bf /etc/logrotate.d/bacula}. This will cause
-the log file to be rotated once a month and kept for a maximum of 5 months.
+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}
\index[general]{Watch!Log}
\index[general]{Log Watch}
\addcontentsline{toc}{subsection}{Log Watch}
-Some systems such as RedHat and Fedora run the logwatch program
+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
jobs in that report, please look in the {\bf scripts/logwatch}
all the volumes are marked as recyclable, and the last Volume, {\bf File0007}
has been purged, so it may be immediately recycled. The other volumes are all
-marked recyclable and when their Volume Retention period (14400 seconds or 4
+marked recyclable and when their Volume Retention period (14400 seconds or four
hours) expires, they will be eligible for pruning, and possibly recycling.
Even though Volume {\bf File0007} has been purged, all the data on the Volume
is still recoverable. A purged Volume simply means that there are no entries
In this case, {\bf File0001} will never be automatically recycled. The same
effect can be achieved by setting the Volume Status to Read-Only.
-As you have noted, the Volume Status (VolStatus) colume in the
+As you have noted, the Volume Status (VolStatus) column in the
catalog database contains the current status of the Volume, which
is normally maintained automatically by Bacula. To give you an
idea of some of the values it can take during the life cycle of
\begin{itemize}
\item A single tape has more than enough capacity to do a full save.
-\item There are 10 tapes that are used on a daily basis for incremental
+\item There are ten tapes that are used on a daily basis for incremental
backups. They are prelabeled Daily1 ... Daily10.
-\item There are 4 tapes that are used on a weekly basis for full backups.
+\item There are four tapes that are used on a weekly basis for full backups.
They are labeled Week1 ... Week4.
\item There are 12 tapes that are used on a monthly basis for full backups.
They are numbered Month1 ... Month12
What does this give? Well, at any point, you will have the last complete
Full save plus several Incremental saves. For any given file you want to
recover (or your whole system), you will have a copy of that file every day
-for at least the last 14 days. For older versions, you will have at least 3
-and probably 4 Friday full saves of that file, and going back further, you
+for at least the last 14 days. For older versions, you will have at least three
+and probably four Friday full saves of that file, and going back further, you
will have a copy of that file made on the beginning of the month for at least
a year.
Where you will need to replace the {\bf ffffffffff}'s by the appropriate files
to be saved for your configuration. For the FileSet Include, choose a
directory that has one or two megabytes maximum since there will probably be
-approximately 8 copies of the directory that {\bf Bacula} will cycle through.
+approximately eight copies of the directory that {\bf Bacula} will cycle through.
In addition, you will need to add the following to your Storage daemon's
configuration file:
\addcontentsline{toc}{subsection}{System Requirements}
\begin{itemize}
-\item {\bf Bacula} has been compiled and run on Linux RedHat, FreeBSD, and
+\item {\bf Bacula} has been compiled and run on Red Hat Linux, FreeBSD, and
Solaris systems.
\item It requires GNU C++ version 2.95 or higher to compile. You can try with
other compilers and older versions, but you are on your own. We have
successfully compiled and used Bacula on RH8.0/RH9/RHEL 3.0/FC3 with GCC 3.4.
Note, in general GNU C++ is a separate package (e.g. RPM) from GNU C, so you
-need them both loaded. On RedHat systems, the C++ compiler is part of the
+need them both loaded. On Red Hat systems, the C++ compiler is part of the
{\bf gcc-c++} rpm package.
\item There are certain third party packages that Bacula needs. Except for
MySQL and PostgreSQL, they can all be found in the {\bf depkgs} and {\bf
packages. Do I need to be root?}{faq4}
\item
\ilink{I'm building my own rpms but on all platforms and compiles I get an
- unresolved dependancy for something called
+ unresolved dependency for something called
/usr/afsws/bin/pagsh.}{faq5}
\item
\ilink{I'm building my own rpms because you don't publish for my platform.
\label{faq1}
{\bf How do I build Bacula for platform xxx?}
The bacula spec file contains defines to build for several platforms:
- RedHat 7.x (rh7), RedHat 8.0 (rh8), RedHat 9 (rh9), Fedora Core (fc1,
+ 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
(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
dependency information that gets coded into the finished rpm package as well
as any special configure options required. The platform define may be edited
in the spec file directly (by default all defines are set to 0 or "not set").
- For example, to build the RedHat 7.x package find the line in the spec file
+ For example, to build the Red Hat 7.x package find the line in the spec file
which reads
\footnotesize
\end{verbatim}
\normalsize
-Another handy directive for the .rpmmacros file if you wish to supress the
+Another handy directive for the .rpmmacros file if you wish to suppress the
creation of debug rpm packages is:
\footnotesize
The spec file currently supports building on the following platforms:
\footnotesize
\begin{verbatim}
-RedHat builds
+Red Hat builds
--define "build_rh7 1"
--define "build_rh8 1"
--define "build_rh9 1"
Whitebox Enterprise build
--define "build_wb3 1"
-RedHat Enterprise builds
+Red Hat Enterprise builds
--define "build_rhel3 1"
--define "build_rhel4 1"
The exact name of the package you need loaded to build with TCP wrappers
depends on the system. For example,
on SuSE, the TCP wrappers libraries needed to link Bacula are
-contained in the tcpd-devel package. On RedHat the package is named
+contained in the tcpd-devel package. On Red Hat, the package is named
tcp\_wrappers.
Dan Langille has provided the following information on configuring and
\begin{verbatim}
PRAGMA synchronous = NORMAL;
\end{verbatim}
-otherwiset SQLite version 3.x is 4 to 10 times slower than version 2.8.16.
+otherwise SQLite version 3.x is four to ten times slower than version 2.8.16.
Installing and Configuring is quite easy.
barcodes or by reading the tapes.
\item Support for multiple drive autochangers.
\item Raw device backup/restore. Restore must be to the same device.
- \item All Volume blocks (approx 64K bytes) contain a data checksum.
+ \item All Volume blocks (approximately 64K bytes) contain a data checksum.
\item Migration support -- move data from one Pool to another or
one Volume to another.
\end{itemize}
If {\bf Yes}, this device belongs to an automatic tape changer, and you
must specify an {\bf Autochanger} resource that points to the {\bf
Device} resources. You must also specify a
- {\bf Changer Device}. If the Autochanger direcive is set to {\bf
+ {\bf Changer Device}. If the Autochanger directive is set to {\bf
No} (default), the volume must be manually changed. You should also
have an identical directive to the
\ilink{Storage resource}{Autochanger1} in the Director's
the case that you are transmitting data over Internet. It is clear that
on a high speed local network, you can increase this number and improve
performance. For example, some users have found that if you use a value
- of 65,536 bytes they get 5-10 times the throughput. Larger values for
+ of 65,536 bytes they get five to ten times the throughput. Larger values for
most users don't seem to improve performance. If you are interested
in improving your backup speeds, this is definitely a place to
experiment. You will probably also want to make the corresponding change
This is the maximum size of a volume part file. The default is no limit.
This directive is implemented only in version 1.37 and later.
- If the device requires mount, it is transfered to the device when this size
+ If the device requires mount, it is transferred to the device when this size
is reached. In this case, you must take care to have enough disk space left
in the spool directory.
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
-backup will cycle continuously through 5 or 6 tapes each week. Variations are
+backup will cycle continuously through five or six tapes each week. Variations are
to use a different tape each Friday, and possibly at the beginning of the
-month. Thus if backups are done Monday through Friday only, you need only 5
-tapes, and by having two Friday tapes, you need a total of 6 tapes. Many sites
+month. Thus if backups are done Monday through Friday only, you need only five
+tapes, and by having two Friday tapes, you need a total of six tapes. Many sites
run this way, or using modifications of it based on two week cycles or longer.
DAT-72 & DAT & 36 GB & 13 GB/hr \\ \hline
DLT IV & DLT8000 & 40 GB & 22 GB/hr \\ \hline
VXA-2 & Exabyte & 80 GB & 22 GB/hr \\ \hline
-Half-high Ultrum 1 & LTO 1 & 100 GB & 27 GB/hr \\ \hline
+Half-high Ultrium 1 & LTO 1 & 100 GB & 27 GB/hr \\ \hline
Ultrium 1 & LTO 1 & 100 GB & 54 GB/hr \\ \hline
Super DLT 1 & SDLT 220 & 110 GB & 40 GB/hr \\ \hline
VXA-3 & Exabyte & 160 GB & 43 GB/hr \\ \hline
\begin{itemize}
\item Linux systems (built and tested on SuSE 10.1).
-\item Most flavors of Linux (Gentoo, RedHat, Fedora, Mandriva, Debian, Ubuntu, ...).
+\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
version 5.0, please see some {\bf important} considerations in the
variable "LD\_ASSUME\_KERNEL=2.4.19" prior to executing Bacula. For this
option, you do not need to reboot, and all programs other than Bacula will
continue to use /lib/tls.
-\item The above mentioned {\bf /lib/tls} problem does not occur with 2.6 kernels.
+\item The above mentioned {\bf /lib/tls} problem does not occur with Linux 2.6 kernels.
\end{itemize}
\item Run the btape {\bf fill} command, preferably with two volumes. This
can take a long time. If you have an autochanger and it is configured, Bacula
will automatically use it. If you do not have it configured, you can manually
- issue the appopriate {\bf mtx} command, or press the autochanger buttons to
+ issue the appropriate {\bf mtx} command, or press the autochanger buttons to
change the tape when requested to do so.
\item FreeBSD users, if you have a pre-5.0 system run the {\bf tapetest}
problem, and the job is failed.
With version 2.6 of the Linux kernel, if there is no tape in the drive, the
-OS will wait 2 minutes (default) then return a failure, and consequently,
+OS will wait two minutes (default) and then return a failure, and consequently,
Bacula version 1.36 and below will fail the job. This is important to keep
in mind, because if you use an option such as {\bf Offline on Unmount =
yes}, there will be a point when there is no tape in the drive, and if
/dev/rmt/0ubn} depending on your system that you specify on the Archive Device
directive. For the program to work, it must find the identical name in the
Device resource of the configuration file. If the name is not found in the
-list of phsical names, the utility program will compare the name you entered
+list of physical names, the utility program will compare the name you entered
to the Device names (rather than the Archive device names).
When specifying a tape device, it is preferable that the "non-rewind"
\end{verbatim}
\normalsize
-\subsection*{Hardware Compresson on EXB-8900}
+\subsection*{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}
on an EXB-8900, use the exabyte MammothTool. You can get it here:
\elink{http://www.exabyte.com/support/online/downloads/index.cfm}
{http://www.exabyte.com/support/online/downloads/index.cfm}.
-There is a solaris version of this tool. With option -C 0 or 1 you
+There is a Solaris version of this tool. With option -C 0 or 1 you
can disable or activate compression. Start this tool without any
options for a small reference.
When I set {\bf Hardware End of Medium = no}
and {\bf Fast Forward Space File = no}
file positioning was very slow
- on my LTO-3 (about 10 to 100 minutes), but
+ on my LTO-3 (about ten to 100 minutes), but
with {\bf Hardware End of Medium = no} and
-{\bf Fast Forward Space File = yes}, the time is 10 to
-100 times faster (about 1 to 2 minutes).
+{\bf Fast Forward Space File = yes}, the time is ten to
+100 times faster (about one to two minutes).
\end{description}
scripts on the remote machine e.g. for stopping databases or other services
while doing the backup. (Of course I have to start the services again when the
backup has finished) I found the following solution: Bacula could execute
-scrips on the remote machine by using ssh. The authentication is done
-automatically using a private key. First You have to generate a keypair. I've
+scripts on the remote machine by using ssh. The authentication is done
+automatically using a private key. First you have to generate a keypair. I've
done this by:
\footnotesize
\ilink{this shell script}{mtx-changer.txt} which does the following:
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 it's backup.
+say thank you and let's bacula continue its backup.
So you can schedule and run backups without ever having to log on or see the
console.
To make the whole thing work you need to create a Device resource which looks
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
validation. The .pem file containing both the certificate and the key
-valid for 10 years can be made with the following:
+valid for ten years can be made with the following:
\footnotesize
\begin{verbatim}
Note, however, that self-signed certificates will only work for the
outgoing end of connections. For example, in the case of the Director
making a connection to a File Daemon, the File Daemon may be configured to
-allow self-signed certifictes, but the certificate used by the
+allow self-signed certificates, but the certificate used by the
Director must be signed by a certificate that is explicitly trusted on the
File Daemon end.
-This is neccessary to prevent ``man in the middle'' attacks from tools such
+This is necessary to prevent ``man in the middle'' attacks from tools such
as \elink{ettercap}{http://ettercap.sourceforge.net/}. Essentially, if the
Director does not verify that it is talking to a trusted remote endpoint,
it can be tricked into talking to a malicious 3rd party who is relaying and
run the test before continuing. {\bf btape} also has a {\bf fill} command that
attempts to duplicate what Bacula does when filling a tape and writing on the
next tape. You should consider trying this command as well, but be forewarned,
-it can take hours (about 4 hours on my drive) to fill a large capacity tape.
+it can take hours (about four hours on my drive) to fill a large capacity tape.
\subsection*{Starting the Database}
\label{StartDB}
./gnome-console
-Another possibilty is to run the wxWidgets program {\bf wx-console}.
+Another possibility is to run the wxWidgets program {\bf wx-console}.
For simplicity, here we will describe only the {\bf ./bconsole} program. Most
of what is described here applies equally well to {\bf ./gnome-console}
Until you create a new Volume, this message will be repeated an hour later,
then two hours later, and so on doubling the interval each time up to a
-maximum interval of 1 day.
+maximum interval of one day.
The obvious question at this point is: What do I do now?
such as an HP DLT. It can take a minute or two before the drive properly
recognizes that the tape is blank. If you attempt to {\bf mount} the tape with
the Console program during this recognition period, it is quite possible that
-you will hang your SCSI driver (at least on my RedHat Linux system). As a
+you will hang your SCSI driver (at least on my Red Hat Linux system). As a
consequence, you are again urged to have patience when inserting blank tapes.
Let the device settle down before attempting to access it.
changed, you will be notified, and you can determine if it changed because you
loaded a new package, or because someone has broken into your computer and
modified your files. The example below shows a list of files that I use on my
-RedHat 7.3 system. Since I didn't spend a lot of time working on it, it
+Red Hat 7.3 system. Since I didn't spend a lot of time working on it, it
probably is missing a few important files (if you find one, please send it to
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.
to modify the {\bf FileSet} to exclude that file (or not to Include it), and
then re-run the {\bf InitCatalog}.
-The FileSet that is shown below is what I use on my RedHat 7.3 system. With a
+The FileSet that is shown below is what I use on my Red Hat 7.3 system. With a
bit more thought, you can probably add quite a number of additional files that
should be monitored.