The Current State of Bacula
In other words, what is and what is not currently implemented and functional.
- Job Control
- Network backup/restore with centralized Director.
- Internal scheduler for automatic
- Scheduling of multiple Jobs at the same time.
- You may run one Job at a time or multiple simultaneous Jobs
(sometimes called multiplexing).
- Job sequencing using priorities.
- ConsoleUADef interface to the Director allowing complete
control. A shell, Qt4 GUI, wxWidgets GUI and Web versions of
the Console program are available. Note, the Qt4 GUI program called
the Bacula Administration tool or bat, offers many additional
features over the shell program.
- Verification of files previously cataloged, permitting a Tripwire like
capability (system break-in detection).
- CRAM-MD5 password authentication between each component (daemon).
TLS (SSL) communications encryptionCommEncryption between each
Data (on Volume) encryptionDataEncryption
on a Client by Client basis.
- Computation of MD5 or SHA1 signatures of the file data if requested.
- Restore Features
- Restore of one or more files selected interactively either for the
current backup or a backup prior to a specified time and date.
- Restore of a complete system starting from bare metal. This is mostly
automated for Linux systems and partially automated for Solaris. See
Disaster Recovery Using BaculaRescueChapter. This is also
reported to work on Win2K/XP systems.
- Listing and Restoration of files using stand-alone bls and bextract tool programs. Among other things, this permits extraction of
files when Bacula and/or the catalog are not available. Note, the
recommended way to restore files is using the restore command in the
Console. These programs are designed for use as a last resort.
- Ability to restore the catalog database rapidly by using bootstrap
files (previously saved).
- Ability to recreate the catalog database by scanning backup Volumes
using the bscan program.
- SQL Catalog
- Catalog database facility for remembering Volumes, Pools, Jobs, and
Files backed up.
- Support for MySQL, PostgreSQL, and SQLite Catalog databases.
- User extensible queries to the MySQL, PostgreSQL and SQLite databases.
- Advanced Volume and Pool Management
- Labeled Volumes, preventing accidental overwriting (at least by
- Any number of Jobs and Clients can be backed up to a single Volume.
That is, you can backup and restore Linux, Unix, Sun, and Windows machines to
the same Volume.
- Multi-volume saves. When a Volume is full, Bacula automatically
requests the next Volume and continues the backup.
- Pool and VolumePoolResource library management
providing Volume flexibility (e.g. monthly, weekly, daily Volume sets, Volume
sets segregated by Client, ...).
- Machine independent Volume data format. Linux, Solaris, and Windows
clients can all be backed up to the same Volume if desired.
- The Volume data format is upwards compatible so that old Volumes
can always be read.
- A flexible
messageMessagesChapter handler including routing
of messages from any daemon back to the Director and automatic email
- Data spooling to disk during backup with subsequent write to tape from
the spooled disk files. This prevents tape "shoe shine" during
- Advanced Support for most Storage Devices
- Autochanger support using a simple shell interface that can interface
to virtually any autoloader program. A script for mtx is provided.
- Support for autochanger barcodes - automatic tape labeling from
- Automatic support for multiple autochanger magazines either using
barcodes or by reading the tapes.
- Support for multiple drive autochangers.
- Raw device backup/restore. Restore must be to the same device.
- All Volume blocks (approximately 64K bytes) contain a data checksum.
- Migration support - move data from one Pool to another or
one Volume to another.
- Supports writing to DVD.
- Multi-Operating System Support
- Programmed to handle arbitrarily long filenames and messages.
- GZIP compression on a file by file basis done by the Client program if
requested before network transit.
- Saves and restores POSIX ACLs and Extended Attributes on most OSes if
- Access control lists for Consoles that permit restricting user access
to only their data.
- Support for save/restore of files larger than 2GB.
- Support for 64 bit machines, e.g. amd64, Sparc.
- Support ANSI and IBM tape labels.
- Support for Unicode filenames (e.g. Chinese) on Win32 machines
- Consistent backup of open files on Win32 systems (WinXP, Win2003,
but not Win2000, using Volume Shadow Copy (VSS).
- Support for path/filename lengths of up to 64K on Win32 machines
(unlimited on Unix/Linux machines).
- Multi-threaded implementation.
- A comprehensive and extensible
configuration fileDirectorChapter for each daemon.
- Since there is a client for each machine, you can backup
and restore clients of any type ensuring that all attributes
of files are properly saved and restored.
- It is also possible to backup clients without any client
software by using NFS or Samba. However, if possible, we
recommend running a Client File daemon on each machine to be
- Bacula handles multi-volume backups.
- A full comprehensive SQL standard database of all files backed up. This
permits online viewing of files saved on any particular Volume.
- Automatic pruning of the database (removal of old records) thus
simplifying database administration.
- Any SQL database engine can be used making Bacula very flexible.
Drivers currently exist for MySQL, PostgreSQL, and SQLite.
- The modular but integrated design makes Bacula very scalable.
- Since Bacula uses client file servers, any database or
other application can be properly shutdown by Bacula using the
native tools of the system, backed up, then restarted (all
within a Bacula Job).
- Bacula has a built-in Job scheduler.
- The Volume format is documented and there are simple C programs to
- Bacula uses well defined (IANA registered) TCP/IP ports - no rpcs, no
- Bacula installation and configuration is relatively simple compared to
other comparable products.
- According to one user Bacula is as fast as the big major commercial
- According to another user Bacula is four times as fast as another
commercial application, probably because that application stores its catalog
information in a large number of individual files rather than an SQL database
as Bacula does.
- Aside from several GUI administrative interfaces, Bacula has a
comprehensive shell administrative interface, which allows the
administrator to use tools such as ssh to administrate any part of
Bacula from anywhere (even from home).
- Bacula has a Rescue CD for Linux systems with the following features:
- You build it on your own system from scratch with one simple command:
make - well, then make burn.
- It uses your kernel
- It captures your current disk parameters and builds scripts that allow
you to automatically repartition a disk and format it to put it back to what
you had before.
- It has a script that will restart your networking (with the right IP
- It has a script to automatically mount your hard disks.
- It has a full Bacula FD statically linked
- You can easily add additional data/programs, ... to the disk.
- It is very unusual to attempt to restore two Jobs
that ran simultaneously in a single restore, but if
you do, please be aware that unless you had
data spooling turned on and the spool file held the full
contents of both Jobs during the backup, the restore will not
work correctly. In other terms, Bacula cannot restore
two jobs in the same restore if the Jobs' data blocks were
intermixed on the backup medium. The problem is resolved by
simply doing two restores, one for each Job.
Normally this can happen only if you manually enter specific
JobIds to be restored in a single restore Job.
- Bacula can generally restore any backup made from one client
to any other client. However, if the architecture is significantly
different (i.e. 32 bit architecture to 64 bit or Win32 to Unix),
some restrictions may apply (e.g. Solaris door files do not exist
on other Unix/Linux machines; there are reports that Zlib compression
written with 64 bit machines does not always read correctly on a 32 bit
- Names (resource names, Volume names, and such) defined in Bacula
configuration files are limited to a fixed number of
characters. Currently the limit is defined as 127 characters. Note,
this does not apply to filenames, which may be arbitrarily long.
- Command line input to some of the stand alone tools - e.g. btape,
bconsole is restricted to several hundred characters maximum.
Normally, this is not a restriction, except in the case of listing
multiple Volume names for programs such as bscan. To avoid
this command line length restriction, please use a .bsr
file to specify the Volume names.
- Bacula configuration files for each of the components can be
any length. However, the length of an individual line is limited
to 500 characters after which it is truncated. If you need lines
longer than 500 characters for directives such as ACLs where
they permit a list of names are character strings simply
specify multiple short lines repeating the directive on
each line but with different list values.
- Bacula's Differential and Incremental normal 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. This problem is corrected by using Accurate mode backups
or by explicitly updating the date/time stamp on all moved files.
- In older versions of Bacula ( 3.0.x), if you have over 4 billion file
entries stored in your database, the database FileId is likely to overflow.
This limitation does not apply to current Bacula versions.
- In non Accurate mode, files deleted after a Full save will be
included in a restoration. This is typical for most similar backup programs.
To avoid this, use Accurate mode backup.