This chapter presents the new features added to the development 2.5.x
versions to be released as Bacula version 3.0.0 near the end of 2008.
+\section{Copy Jobs}
+\index[general]{Copy Jobs}
+A new {\bf Copy} job type has been implemented. It is essentially
+identical to the existing Migration feature with the exception that
+the Job that is copied is left unchanged. This essentially creates
+two identical copies of the same backup. The Copy Job runs without
+using the File daemon by copying the data from the old backup Volume to
+a different Volume in a different Pool. See the Migration documentation
+for additional details.
+
\section{Virtual Backup (Vbackup)}
\index[general]{Virtual Backup}
\index[general]{Vbackup}
state file might not contain all the run data. This version of
the Bacula daemons updates the state file on each job termination.
+\section{MaxFullInterval}
+\index[general]{MaxFullInterval}
+The new Job resource directive {\bf Max Full Interval = \lt{}time-interval\gt{}}
+can be used to specify the maximum time interval between {\bf Full} backup
+jobs. When a job starts, if the time since the last Full backup is
+greater than the specified interval, and the job would normally be an
+{\bf Incremental} or {\bf Differential}, it will be automatically
+upgraded to a {\bf Full} backup.
+
+\section{MaxDiffInterval}
+\index[general]{MaxDiffInterval}
+The new Job resource directive {\bf Max Diff Interval = \lt{}time-interval\gt{}}
+can be used to specify the maximum time interval between {\bf Differential} backup
+jobs. When a job starts, if the time since the last Differential backup is
+greater than the specified interval, and the job would normally be an
+{\bf Incremental}, it will be automatically
+upgraded to a {\bf Differential} backup.
+
+\section{No Dump Flag}
+\index[general]{MaxDiffInterval}
+On FreeBSD systems, each file has a {\bf no dump flag} that can be set
+by the user, and when it is set it is an indication to backup programs
+to not backup that particular file. This version of Bacula contains a
+new Options directive within a FileSet resource, which instructs Bacula to
+obey this flag. The new directive is:
+
+\begin{verbatim}
+ Honor No Dump Flag = yes|no
+\end{verbatim}
+
+The default value is {\bf no}.
+
+
\section{Duplicate Job Control}
\index[general]{Duplicate Jobs}
The new version of Bacula provides four new directives that
They are:
\begin{description}
-\item Allow Duplicate Jobs \\
+\item [Allow Duplicate Jobs = \lt{}yes|no\gt{}]
If this directive is enabled duplicate jobs will be run. If
the directive is set to {\bf no} (default) then only one job of a given name
may run at one time, and the action that Bacula takes to ensure only
one job runs is determined by the other directives (see below).
-\item Allow Higher Duplicates \\
+\item [Allow Higher Duplicates = \lt{}yes|no\gt{}]
If this directive is set to {\bf yes} (default) the job with a higher
priority (lower priority number) will be permitted to run. If the
priorities of the two jobs are the same, the outcome is determined by
other directives (see below).
-\item Cancel Queued Duplicates \\
+\item [Cancel Queued Duplicates = \lt{}yes|no\gt{}]
If this directive is set to {\bf yes} (default) any job that is
already queued to run but not yet running will be canceled.
-\item Cancel Running Duplicates \\
+\item [Cancel Running Duplicates = \lt{}yes|no\gt{}]
If this directive is set to {\bf yes} any job that is already running
will be canceled. The default is {\bf no}.
\end{description}
+\section{Ignore Dir}
+\index[general]{IgnoreDir}
+The {\bf Ignore Dir = \lt{}filename\gt{}} is a new directive that can be added to the Include
+section of the FileSet resource. If the specified
+filename is found on the Client in any directory to be backed up,
+the whole directory will be ignored (not backed up).
+For example:
+\begin{verbatim}
+ # List of files to be backed up
+ FileSet {
+ Name = "MyFileSet"
+ Include {
+ Options {
+ signature = MD5
+ }
+ File = /home
+ IgnoreDir = .excludeme
+ }
+ }
+\end{verbatim}
+But in /home, there may be hundreds of directories of users and some
+people want to indicate that they don't want to have certain
+directories backed up. For example, with the above FileSet, if
+the user or sysadmin creates a file named {\bf .excludeme} in
+specific directories, such as
+\begin{verbatim}
+ /home/user/www/cache/.excludeme
+ /home/user/temp/.excludeme
+\end{verbatim}
+then Bacula will not backup the two directories named:
-\section{Accurate Backup}
-\index[general]{Accurate Backup}
+\begin{verbatim}
+ /home/user/www/cache
+ /home/user/temp
+\end{verbatim}
-\section{Using bconsole to display autochanger content}
+\section{Accurate}
+\index[general]{Accurate Backup}
+As with most other backup programs, Bacula decides what files to backup
+for Incremental and Differental backup by comparing the creation and modification
+times of the file to the time the last backup completed. If one of those two times
+is later than the last backup time, then the file will be backed up. This does
+not, however, permit tracking what files have been deleted and will miss any file
+with an old time that may have been restored or moved on the client filesystem.
+
+If the {\bf Accurate = \lt{}yes|no\gt{}} directive is enabled (default no) in the
+Job resource, the job will be run as an Accurate Job. For a {\bf Full}
+backup, there is no difference, but for {\bf Differential} and {\bf Incremental}
+backups, the Director will send a list of all previous files backed up, and the
+File daemon will use that list to determine if any new files have been added or
+or moved and if any files have been deleted. This allows Bacula to make an accurate
+backup of your system to that point in time so that if you do a restore, it
+will restore your system exactly. The downside of using Accurate backup is that
+it requires significantly more resources (CPU and memory) on both the Director and
+the Client machine to create the list of previous files backed up, to send that
+list to the File daemon, and do comparisons on the File daemon between every file
+and the list.
+
+\section{Bacula Plugins}
+\index[general]{Plugin}
+Support for shared object plugins has been implemented in the Linux
+(and Unix) File daemon. The API will be documented separately in
+the Developer's Guide or in a new document. For the moment, there is
+a single plugin named {\bf bpipe} that allows an external program to
+get control to backup and restore a file.
+
+Plugins are also planned (partially implemented) in the Director and the
+Storage daemon. Also we plan (at some point) to port (partially implemented)
+the plugin code to Win32 machines.
+
+
+\section{Display Autochanger Content}
\index[general]{StatusSlots}
-The {\bf status slots storage=xxx} command displays autochanger content.
+The {\bf status slots storage=\lt{}storage-name\gt{}} command displays autochanger content.
\footnotesize
\begin{verbatim}
\end{verbatim}
\normalsize
-If you see a {\bf *} near the slot number, you have to run {\bf update slots}
+If you an asterisk ({\bf *}) appears after the slot number, you must run an {\bf update slots}
command to synchronize autochanger content with your catalog.
+
+\section{Miscellaneous}
+\index[general]{Misc New Features}
+\begin{description}
+\item [Virtual Tape Emulation]
+We now have a Virtual Tape emulator that allows us to run though 99.9\% of the
+tape code but actually reading and writing to a disk file. This feature is most
+useful in testing.
+It is enabled by using {\bf Device Type = vtape} in the Storage daemon's Device
+directive. This feature is only implemented on Linux machines.
+
+\item [Bat Enhancements]
+Bat (the Bacula Administration Tool) GUI program has been significantly
+enhanced and stabilized. In particular, there are new table based status
+commands; it can now be easily localized using Qt4 Linguist.
+
+The Bat communications protocol has been significantly enhanced to improve
+GUI handling.
+
+\item [RunScript Enhancements]
+The {\bf RunScript} resource has been enhanced to permit multiple
+commands per RunScript. Simply specify multiple {\bf Command} directives
+in your RunScript.
+
+A new Client RunScript {\bf RunsWhen} keyword of {\bf AfterVSS} has been implemented, which
+runs the command after the Volume Shadow Copy has been made.
+
+Console commands can be specified within a RunScript by using:
+{\bf Console = \lt{}command\gt{}}, however, this command has not been
+carefully tested and debugged and is known to easily crash the Director.
+We would appreciate feedback. Due to the recursive nature of this command, we
+may remove it before the final release.
+
+\item [Status Enhancements]
+The bconsole {\bf status dir} output has been enhanced to indicate
+Storage daemon job spooling and despooling activity.
+
+
+\end{description}
\ No newline at end of file