+\chapter{New Features in 7.4.0}
+This chapter presents the new features that have been added to
+the various versions of Bacula.
+
+\section{New Features in 7.4.3}
+\subsection{RunScripts}
+There are two new RunScript short cut directives implemented in
+the Director. They are:
+
+\begin{verbatim}
+Job {
+ ...
+ ConsoleRunBeforeJob = "console-command"
+ ...
+}
+\end{verbatim}
+
+\begin{verbatim}
+Job {
+ ...
+ ConsoleRunAfterJob = "console-command"
+ ...
+}
+\end{verbatim}
+
+As with other RunScript commands, you may have multiple copies
+of either the {\bf ConsoleRunBeforeJob} or the {\bf ConsoleRunAfterJob}
+in the same Job resource definition.
+\smallskip
+Please note that not all console commands are permitted, and that
+if you run a console command that requires a response, the results
+are not determined (i.e. it will probably fail).
+
+
+\section{New Features in 7.4.0}
+\subsection{Verify Volume Data}
+
+It is now possible to have a Verify Job configured with \texttt{level=Data} to
+reread all records from a job and optionally check the size and the checksum
+of all files.
+
+\begin{verbatim}
+# Verify Job definition
+Job {
+ Name = VerifyData
+ Level = Data
+ Client = 127.0.0.1-fd # Use local file daemon
+ FileSet = Dummy # Will be adapted during the job
+ Storage = File # Should be the right one
+ Messages = Standard
+ Pool = Default
+}
+
+# Backup Job definition
+Job {
+ Name = MyBackupJob
+ Type = Backup
+ Client = windows1
+ FileSet = MyFileSet
+ Pool = 1Month
+ Storage = File
+}
+
+FileSet {
+ Name = MyFileSet
+ Include {
+ Options {
+ Verify = s5
+ Signature = MD5
+ }
+ File = /
+}
+\end{verbatim}
+
+To run the Verify job, it is possible to use the ``jobid'' parameter of the ``run'' command.
+
+\begin{verbatim}
+*run job=VerifyData jobid=10
+Run Verify Job
+JobName: VerifyData
+Level: Data
+Client: 127.0.0.1-fd
+FileSet: Dummy
+Pool: Default (From Job resource)
+Storage: File (From Job resource)
+Verify Job: MyBackupJob.2015-11-11_09.41.55_03
+Verify List: /opt/bacula/working/working/VerifyVol.bsr
+When: 2015-11-11 09:47:38
+Priority: 10
+OK to run? (yes/mod/no): yes
+Job queued. JobId=14
+
+...
+
+11-Nov 09:46 my-dir JobId 13: Bacula 7.4.0 (13Nov15):
+ Build OS: x86_64-unknown-linux-gnu archlinux
+ JobId: 14
+ Job: VerifyData.2015-11-11_09.46.29_03
+ FileSet: MyFileSet
+ Verify Level: Data
+ Client: 127.0.0.1-fd
+ Verify JobId: 10
+ Verify Job:q
+ Start time: 11-Nov-2015 09:46:31
+ End time: 11-Nov-2015 09:46:32
+ Files Expected: 1,116
+ Files Examined: 1,116
+ Non-fatal FD errors: 0
+ SD Errors: 0
+ FD termination status: Verify differences
+ SD termination status: OK
+ Termination: Verify Differences
+\end{verbatim}
+
+The current Verify Data implementation requires specifying the correct Storage
+resource in the Verify job. The Storage resource can be changed with the bconsole
+command line and with the menu.
+
+\subsection{Bconsole ``list jobs'' command options}
+
+The \texttt{list jobs} bconsole command now accepts new command line options:
+
+\begin{itemize}
+\item \textbf{joberrors} Display jobs with JobErrors
+\item \textbf{jobstatus=T} Display jobs with the specified status code
+\item \textbf{client=cli} Display jobs for a specified client
+\item \textbf{order=asc/desc} Change the output format of the job list. The
+ jobs are sorted by start time and JobId, the sort can use ascendant (asc) or
+ descendant (desc) (default) value.
+\end{itemize}
+
+\subsection{Minor Enhancements}
+
+\subsubsection{New Bconsole "Tee All" Command}
+
+The ``@tall'' command allows logging all input/output from a console session.
+
+\begin{verbatim}
+*@tall /tmp/log
+*st dir
+...
+\end{verbatim}
+
+\subsection{Windows Encrypted File System (EFS) Support}
+
+The Bacula Enterprise Windows File Daemon for the community version
+7.4.0 now automatically supports files and
+directories that are encrypted on Windows filesystem.
+
+\subsection{SSL Connections to MySQL}
+
+There are five new Directives for the Catalog resource in the
+{\bf bacula-dir.conf} file that you can use to encrypt the
+communications between Bacula and MySQL for additional
+security.
+
+\begin{description}
+\item [dbsslkey] takes a string variable that specifies the filename of an
+SSL key file.
+\item [dbsslcert] takes a string variable that specifies the filename of an
+SSL certificate file.
+\item [dbsslca] takes a string variable that specifies the filename of a
+SSL CA (certificate authority) certificate.
+\item [dbsslcipher] takes a string variable that specifies the cipher
+to be used.
+\end{description}
+
+\subsection{Max Virtual Full Interval}
+This is a new Job resource directive that specifies the time in seconds
+that is a maximum time between Virtual Full jobs. It is much like the
+Max Full Interval directive but applies to Virtual Full jobs rather
+that Full jobs.
+
+\subsection{New List Volumes Output}
+The {\bf list} and {\bf llist} commands have been modified so that when
+listing Volumes a new pseudo field {\bf expiresin} will be printed. This
+field is the number of seconds in which the retention period will expire.
+If the retention period has already expired the value will be zero. Any
+non-zero value means that the retention period is still in effect.
+
+An example with many columns shorted for display purpose is:
+
+\begin{verbatim}
+*list volumes
+Pool: Default
+*list volumes
+Pool: Default
++----+---------------+-----------+---------+-------------+-----------+
+| id | volumename | volstatus | enabled | volbytes | expiresin |
++----+---------------+-----------+---------+-------------+-----------+
+| 1 | TestVolume001 | Full | 1 | 249,940,696 | 0 |
+| 2 | TestVolume002 | Full | 1 | 249,961,704 | 1 |
+| 3 | TestVolume003 | Full | 1 | 249,961,704 | 2 |
+| 4 | TestVolume004 | Append | 1 | 127,367,896 | 3 |
++----+---------------+-----------+---------+-------------+-----------+
+\end{verbatim}
+
+%%
+%%
\chapter{New Features in 7.2.0}
This chapter presents the new features that have been added to
the various versions of Bacula.
Read Only = yes
\end{verbatim}
-\subsection{Catalog Performance Improvements}
-There is a new Bacula database format (schema) in this version
-of Bacula that eliminates the FileName table by placing the
-Filename into the File record of the File table.
-This substantiallly improves performance,
-particularly for large (1GB or greater) databases.
-
-% waa - 20150317 - Is 1GB _really_ considered to be a large database? Do we mean to say 100GB??
-
-The \texttt{update\_xxx\_catalog} script will automatically update the
-Bacula database format, but you should realize that for
-very large databases (greater than 1GB), it may take some
-time, and there are several different options for doing the
-update: 1. Shudown the database and update it. 2. Update the
-database while production jobs are running. See the Bacula Systems
-White Paper ``Migration-to-6.6'' on this subject.
-
-\smallskip
-This database format change can provide very significant improvements in
-the speed of metadata insertion into the database, and in some cases
-(backup of large email servers) can significantly reduce the size of the
-database.
-
\subsection{New Truncate Command}
We have added a new truncate command to bconsole which
will truncate a volume if the volume is purged, and if
\subsection{Changes in the Pruning Algorithm}
-We rewrote the job pruning algorithm in this version. Previously, in some users
-reported that the pruning process at the end of jobs was very long. It should
-not be longer the case. Now, Bacula won't prune automatically a Job if this
-particular Job is needed to restore data. Example:
+We rewrote the job pruning algorithm in this version. Previously, in some
+users reported that the pruning process at the end of jobs was very long.
+It should not be longer the case. Now, Bacula won't prune automatically a
+Job if this particular Job is needed to restore data. Example:
\begin{verbatim}
JobId: 1 Level: Full
detect that JobId 1 and 4 are essential to restore data at the current state
and will prune only JobId 2 and 3.
-\texttt{Important}, this change affect only the automatic pruning step after a
-Job and the \texttt{prune jobs} Bconsole command. If a volume expires after the
-\texttt{VolumeRetention} period, important jobs can be pruned.
+\texttt{Important}, this change affect only the automatic pruning step
+after a Job and the \texttt{prune jobs} Bconsole command. If a volume
+expires after the \texttt{VolumeRetention} period, important jobs can be
+pruned.
\subsection{Ability to Verify any specified Job}
You now have the ability to tell Bacula which Job should verify instead of