]> git.sur5r.net Git - bacula/docs/blobdiff - docs/manual/dirdconf.tex
remove old not recommended phrase
[bacula/docs] / docs / manual / dirdconf.tex
index 30acd54bc6edeb1fe3f3002bbf8cb6086035d5db..2ce259af24a00fcc80961814e16cecb7061c6e8d 100644 (file)
@@ -128,6 +128,11 @@ in the  graphical user interface. This directive is optional.
    Directory}  is done when the configuration file is read so that values such 
    as {\bf \$HOME} will be properly expanded. This directive is required.
 
+   If you have specified a Director user and/or a Director group on your
+   ./configure line with {\bf {-}{-}with-dir-user} and/or 
+   {\bf {-}{-}with-dir-group} the Working Directory owner and group will
+   be set to those values.
+
 \item [Pid Directory = \lt{}Directory\gt{}]
    \index[dir]{Pid Directory}
    \index[dir]{Directive!Pid Directory}
@@ -247,7 +252,7 @@ is not specified, the default will be used. If an ip  section is specified,
 the resolution can be made either by IPv4 or  IPv6. If ip4 is specified, then
 only IPv4 resolutions will be permitted,  and likewise with ip6. 
 
-Please note that if you use the DirAddresess directive, you must
+Please note that if you use the DirAddresses directive, you must
 not use either a DirPort or a DirAddress directive in the same 
 resource.
 
@@ -326,6 +331,12 @@ Clients, you must define a Job for each one.
    specify here followed by the date and time the  job was scheduled for
    execution. This directive is required. 
 
+\item [Enabled = \lt{}yes|no\gt{}]
+  \index[dir]{Enable}
+  \index[dir]Directive!Enable}
+  This directive allows you to enable or disable automatic execution
+  via the scheduler of a Job.
+
 \item [Type = \lt{}job-type\gt{}]
    \index[dir]{Type}
    \index[dir]{Directive!Type}
@@ -370,32 +381,32 @@ Although an Admin job is recorded in the  catalog, very little data is saved.
 \label{Level}
 
 \item [Level = \lt{}job-level\gt{}]
-   \index[dir]{Level}
-   \index[dir]{Directive!Level}
-   The Level directive specifies  the default Job level to be run. Each
-different
-Job Type (Backup, Restore, ...) has a different set of Levels  that can be
-specified. The Level is normally overridden  by a different value that is
-specified in the {\bf Schedule}  resource. This directive is not required, but
-must be specified either  by a {\bf Level} directive or as an override
-specified in the  {\bf Schedule} resource.  
+\index[dir]{Level}
+\index[dir]{Directive!Level}
+   The Level directive specifies the default Job level to be run.  Each
+   different Job Type (Backup, Restore, ...) has a different set of Levels
+   that can be specified.  The Level is normally overridden by a different
+   value that is specified in the {\bf Schedule} resource.  This directive
+   is not required, but must be specified either by a {\bf Level} directive
+   or as an override specified in the {\bf Schedule} resource.
 
 For a {\bf Backup} Job, the Level may be one of the  following:  
 
 \begin{description}
 
 \item [Full]
-   \index[dir]{Full}
-   is all files in the FileSet whether or not they  have changed.  
+\index[dir]{Full}
+   When the Level is set to Full all files in the FileSet whether or not
+   they have changed will be backed up.
 
 \item [Incremental]
    \index[dir]{Incremental}
-   is all files specified in the FileSet that have changed since the  last successful backup of the
-   the same Job using the same FileSet and Client.
-   If the  Director cannot find a previous valid Full backup then
-   the job will be  upgraded into a Full backup. When the Director looks for a 
-   valid backup record in the catalog database, it  looks for a previous
-   Job with:  
+   When the Level is set to Incremental all files specified in the FileSet
+   that have changed since the last successful backup of the the same Job
+   using the same FileSet and Client, will be backed up.  If the Director
+   cannot find a previous valid Full backup then the job will be upgraded
+   into a Full backup.  When the Director looks for a valid backup record
+   in the catalog database, it looks for a previous Job with:
 
 \begin{itemize}
 \item The same Job name.  
@@ -405,53 +416,52 @@ For a {\bf Backup} Job, the Level may be one of the  following:
    different FileSet.  
 \item The Job was a Full, Differential, or Incremental backup.  
 \item The Job terminated normally (i.e. did not fail or was not  canceled).  
-   \end{itemize}
+\end{itemize}
 
-If all the above conditions do not hold, the Director will upgrade  the
-Incremental to a Full save. Otherwise, the Incremental  backup will be
-performed as requested.  
-
-The File daemon (Client) decides which files to backup for an  Incremental
-backup by comparing start time of the prior Job  (Full, Differential, or
-Incremental) against the time each file  was last "modified" (st\_mtime) and
-the time its  attributes were last "changed"(st\_ctime). If the  file was
-modified or its attributes changed on or after this  start time, it will then
-be backed up.  
-
-Please note that some  virus scanning software may change st\_ctime while
-doing the  scan. For example, if the virus scanning program attempts  to
-reset the access time (st\_atime), which Bacula does not use,  it will cause
-st\_ctime to change and hence Bacula will backup  the file during an
-Incremental or Differential backup. In the  case of Sophos virus scanning, you
-can prevent it from  resetting the access time (st\_atime) and hence changing 
-st\_ctime by using the {\bf \verb:--:no-reset-atime} option. For  other
-software,
-please see their manual.  
-
-When Bacula does an Incremental backup, all modified  files that are still on
-the system are backed up.  However, any file that has been deleted since the
-last  Full backup remains in the Bacula catalog, which means  that if between
-a Full save and the time you do a  restore, some files are deleted, those
-deleted files  will also be restored. The deleted files will no longer  appear
-in the catalog after doing another Full save.  However, to remove deleted
-files from the catalog during an Incremental backup is quite a time consuming
-process  and not currently implemented in Bacula. 
-
-In addition, if you move a directory rather than copy it, the files in it do not
-have their modification time (st\_mtime) or their attribute change time
-(st\_ctime) 
-changed. As a consequence, those files will probably not be backed up by an
-Incremental
-or Differential backup which depend solely on these time stamps. If you move a
-directory,
-and wish it to be properly backed up, it is generally preferable to copy it,
-then
-delete the original.
+   If all the above conditions do not hold, the Director will upgrade  the
+   Incremental to a Full save. Otherwise, the Incremental  backup will be
+   performed as requested.  
+
+   The File daemon (Client) decides which files to backup for an
+   Incremental backup by comparing start time of the prior Job (Full,
+   Differential, or Incremental) against the time each file was last
+   "modified" (st\_mtime) and the time its attributes were last
+   "changed"(st\_ctime).  If the file was modified or its attributes
+   changed on or after this start time, it will then be backed up.
+
+   Some virus scanning software may change st\_ctime while
+   doing the scan.  For example, if the virus scanning program attempts to
+   reset the access time (st\_atime), which Bacula does not use, it will
+   cause st\_ctime to change and hence Bacula will backup the file during
+   an Incremental or Differential backup.  In the case of Sophos virus
+   scanning, you can prevent it from resetting the access time (st\_atime)
+   and hence changing st\_ctime by using the {\bf \verb:--:no-reset-atime}
+   option.  For other software, please see their manual.
+
+   When Bacula does an Incremental backup, all modified files that are
+   still on the system are backed up.  However, any file that has been
+   deleted since the last Full backup remains in the Bacula catalog, which
+   means that if between a Full save and the time you do a restore, some
+   files are deleted, those deleted files will also be restored.  The
+   deleted files will no longer appear in the catalog after doing another
+   Full save.  However, to remove deleted files from the catalog during an
+   Incremental backup is quite a time consuming process and not currently
+   implemented in Bacula.
+
+   In addition, if you move a directory rather than copy it, the files in
+   it do not have their modification time (st\_mtime) or their attribute
+   change time (st\_ctime) changed.  As a consequence, those files will
+   probably not be backed up by an Incremental or Differential backup which
+   depend solely on these time stamps.  If you move a directory, and wish
+   it to be properly backed up, it is generally preferable to copy it, then
+   delete the original.
 
 \item [Differential]
    \index[dir]{Differential}
-   is all files specified in the FileSet that have changed since the last
-   successful Full backup of the same Job.  If the Director cannot find a
+   When the Level is set to Differential
+   all files specified in the FileSet that have changed since the last
+   successful Full backup of the same Job will be backed up.
+   If the Director cannot find a
    valid previous Full backup for the same Job, FileSet, and Client,
    backup, then the Differential job will be upgraded into a Full backup.
    When the Director looks for a valid Full backup record in the catalog
@@ -467,57 +477,57 @@ delete the original.
 \item The Job terminated normally (i.e. did not fail or was not  canceled).  
 \end{itemize}
 
-If all the above conditions do not hold, the Director will  upgrade the
-Differential to a Full save. Otherwise, the  Differential backup will be
-performed as requested.  
-
-The File daemon (Client) decides which files to backup for a  differential
-backup by comparing the start time of the prior  Full backup Job against the
-time each file was last  "modified" (st\_mtime) and the time its attributes
-were  last "changed" (st\_ctime). If the file was modified or its attributes
-were changed on or after this start time, it will then be backed up. The
-start time used is displayed after the  {\bf Since} on the Job report. In rare
-cases, using the start  time of the prior backup may cause some files to be
-backed up  twice, but it ensures that no change is missed. As with the 
-Incremental option, you should ensure that the clocks on your  server and
-client are synchronized or as close as possible to  avoid the possibility of a
-file being skipped. Note, on  versions 1.33 or greater Bacula automatically
-makes the  necessary adjustments to the time between the server and the  client
-so that the times Bacula uses are synchronized.  
-
-When Bacula does a Differential backup, all modified files that are still
-on the system are backed up.  However, any file that has been deleted since
-the last Full backup remains in the Bacula catalog, which means that if
-between a Full save and the time you do a restore, some files are deleted,
-those deleted files will also be restored.  The deleted files will no
-longer appear in the catalog after doing another Full save.  However, to
-remove deleted files from the catalog during a Differential backup is quite
-a time consuming process and not currently implemented in Bacula.  It is,
-however, a planned future feature.
-
-
-As noted above, if you move a directory rather than copy it, the
-files in it do not have their modification time (st\_mtime) or
-their attribute change time (st\_ctime) changed.  As a
-consequence, those files will probably not be backed up by an
-Incremental or Differential backup which depend solely on these
-time stamps.  If you move a directory, and wish it to be
-properly backed up, it is generally preferable to copy it, then
-delete the original. Alternatively, you can move the directory, then
-use the {\bf touch} program to update the timestamps.
-
-Every once and a while, someone asks why we need Differential
-backups as long as Incremental backups pickup all changed files.
-There are possibly many answers to this question, but the one
-that is the most important for me is that it effectively combines
-all the Incremental and Differential backups since the last Full 
-backup into a single Differential backup. This has two effects:
-1. It gives some redundancy. 2. More importantly, it reduces the
-number of Volumes that are needed to do a restore effectively
-eliminating the need to read all the volumes on which the
-preceding Incremental and Differential backups since the last
-Full are done.
-
+   If all the above conditions do not hold, the Director will  upgrade the
+   Differential to a Full save. Otherwise, the  Differential backup will be
+   performed as requested.  
+
+   The File daemon (Client) decides which files to backup for a
+   differential backup by comparing the start time of the prior Full backup
+   Job against the time each file was last "modified" (st\_mtime) and the
+   time its attributes were last "changed" (st\_ctime).  If the file was
+   modified or its attributes were changed on or after this start time, it
+   will then be backed up.  The start time used is displayed after the {\bf
+   Since} on the Job report.  In rare cases, using the start time of the
+   prior backup may cause some files to be backed up twice, but it ensures
+   that no change is missed.  As with the Incremental option, you should
+   ensure that the clocks on your server and client are synchronized or as
+   close as possible to avoid the possibility of a file being skipped.
+   Note, on versions 1.33 or greater Bacula automatically makes the
+   necessary adjustments to the time between the server and the client so
+   that the times Bacula uses are synchronized.
+
+   When Bacula does a Differential backup, all modified files that are
+   still on the system are backed up.  However, any file that has been
+   deleted since the last Full backup remains in the Bacula catalog, which
+   means that if between a Full save and the time you do a restore, some
+   files are deleted, those deleted files will also be restored.  The
+   deleted files will no longer appear in the catalog after doing another
+   Full save.  However, to remove deleted files from the catalog during a
+   Differential backup is quite a time consuming process and not currently
+   implemented in Bacula.  It is, however, a planned future feature.
+
+   As noted above, if you move a directory rather than copy it, the
+   files in it do not have their modification time (st\_mtime) or
+   their attribute change time (st\_ctime) changed.  As a
+   consequence, those files will probably not be backed up by an
+   Incremental or Differential backup which depend solely on these
+   time stamps.  If you move a directory, and wish it to be
+   properly backed up, it is generally preferable to copy it, then
+   delete the original. Alternatively, you can move the directory, then
+   use the {\bf touch} program to update the timestamps.
+
+   Every once and a while, someone asks why we need Differential
+   backups as long as Incremental backups pickup all changed files.
+   There are possibly many answers to this question, but the one
+   that is the most important for me is that a Differential backup
+   effectively merges
+   all the Incremental and Differential backups since the last Full backup
+   into a single Differential backup.  This has two effects: 1.  It gives
+   some redundancy since the old backups could be used if the merged backup
+   cannot be read.  2.  More importantly, it reduces the number of Volumes
+   that are needed to do a restore effectively eliminating the need to read
+   all the volumes on which the preceding Incremental and Differential
+   backups since the last Full are done.
 
 \end{description}
 
@@ -528,7 +538,7 @@ For a {\bf Verify} Job, the Level may be one of the  following:
 \begin{description}
 
 \item [InitCatalog]
-   \index[dir]{InitCatalog}
+\index[dir]{InitCatalog}
    does a scan of the specified {\bf FileSet} and stores the file
    attributes in the Catalog database.  Since no file data is saved, you
    might ask why you would want to do this.  It turns out to be a very
@@ -547,7 +557,7 @@ For a {\bf Verify} Job, the Level may be one of the  following:
    the files.
 
 \item [Catalog]
-   \index[dir]{Catalog}
+\index[dir]{Catalog}
    Compares the current state of the files against the state previously
    saved during an {\bf InitCatalog}.  Any discrepancies are reported.  The
    items reported are determined by the {\bf verify} options specified on
@@ -562,109 +572,114 @@ For a {\bf Verify} Job, the Level may be one of the  following:
    track new files.
 
 \item [VolumeToCatalog]
-   \index[dir]{VolumeToCatalog}
-   This level causes Bacula to read  the file attribute data written to the
-Volume from the last Job.  The file attribute data are compared to the values
-saved in the  Catalog database and any differences are reported. This is 
-similar to the {\bf Catalog} level except that instead of  comparing the disk
-file attributes to the catalog database, the  attribute data written to the
-Volume is read and compared to the  catalog database. Although the attribute
-data including the  signatures (MD5 or SHA1) are compared, the actual file data
-is not  compared (it is not in the catalog). 
-
-Please note! If you  run two Verify VolumeToCatalog jobs on the same client at
-the  same time, the results will certainly be incorrect. This is  because the
-Verify VolumeToCatalog modifies the Catalog database  while running. 
+\index[dir]{VolumeToCatalog}
+   This level causes Bacula to read the file attribute data written to the
+   Volume from the last Job.  The file attribute data are compared to the
+   values saved in the Catalog database and any differences are reported.
+   This is similar to the {\bf Catalog} level except that instead of
+   comparing the disk file attributes to the catalog database, the
+   attribute data written to the Volume is read and compared to the catalog
+   database.  Although the attribute data including the signatures (MD5 or
+   SHA1) are compared, the actual file data is not compared (it is not in
+   the catalog).
+
+   Please note!  If you run two Verify VolumeToCatalog jobs on the same
+   client at the same time, the results will certainly be incorrect.  This
+   is because the Verify VolumeToCatalog modifies the Catalog database
+   while running.
 
 \item [DiskToCatalog]
-   \index[dir]{DiskToCatalog}
-   This level causes Bacula to read the  files as they currently are on disk,
-and
-to compare the  current file attributes with the attributes saved in the 
-catalog from the last backup for the job specified on  the {\bf VerifyJob}
-directive. This level differs from the  {\bf Catalog} level described above by
-the fact that it  doesn't compare against a previous Verify job but against a 
-previous backup. When you run this level, you must supply the  verify options
-on your Include statements. Those options  determine what attribute fields are
-compared.  
-
-This command can be very useful if you have disk problems  because it will
-compare the current state of your disk against  the last successful backup,
-which may be several jobs.  
-
-Note, the current implementation (1.32c) does not  identify files that have
-been deleted.  
+\index[dir]{DiskToCatalog}
+   This level causes Bacula to read the files as they currently are on
+   disk, and to compare the current file attributes with the attributes
+   saved in the catalog from the last backup for the job specified on the
+   {\bf VerifyJob} directive.  This level differs from the {\bf Catalog}
+   level described above by the fact that it doesn't compare against a
+   previous Verify job but against a previous backup.  When you run this
+   level, you must supply the verify options on your Include statements.
+   Those options determine what attribute fields are compared.
+
+   This command can be very useful if you have disk problems because it
+   will compare the current state of your disk against the last successful
+   backup, which may be several jobs.
+
+   Note, the current implementation (1.32c) does not identify files that
+   have been deleted.
 \end{description}
 
 \item [Verify Job = \lt{}Job-Resource-Name\gt{}]
    \index[dir]{Verify Job}
    \index[dir]{Directive!Verify Job}
-   If you run  a verify job without this directive, the last job run will  be
-compared with the catalog, which means that you must  immediately follow a
-backup by a verify command. If you  specify a {\bf Verify Job} Bacula will
-find the last  job with that name that ran. This permits you to run  all your
-backups, then run Verify jobs on those that  you wish to be verified (most
-often a {\bf VolumeToCatalog})  so that the tape just written is re-read. 
+   If you run a verify job without this directive, the last job run will be
+   compared with the catalog, which means that you must immediately follow
+   a backup by a verify command.  If you specify a {\bf Verify Job} Bacula
+   will find the last job with that name that ran.  This permits you to run
+   all your backups, then run Verify jobs on those that you wish to be
+   verified (most often a {\bf VolumeToCatalog}) so that the tape just
+   written is re-read.
 
 \item [JobDefs = \lt{}JobDefs-Resource-Name\gt{}]
-   \index[dir]{JobDefs}
-   \index[dir]{Directive!JobDefs}
-   If a JobDefs-Resource-Name  is specified, all the values contained in the
-named JobDefs resource  will be used as the defaults for the current Job. Any
-value that  you explicitly define in the current Job resource, will override 
-any defaults specified in the JobDefs resource. The use of this  directive
-permits writing much more compact Job resources where the  bulk of the
-directives are defined in one or more JobDefs. This  is particularly useful if
-you have many similar Jobs but with  minor variations such as different
-Clients. A simple example  of the use of JobDefs is provided in the default
-bacula-dir.conf  file. 
+\index[dir]{JobDefs}
+\index[dir]{Directive!JobDefs}
+   If a JobDefs-Resource-Name is specified, all the values contained in the
+   named JobDefs resource will be used as the defaults for the current Job.
+   Any value that you explicitly define in the current Job resource, will
+   override any defaults specified in the JobDefs resource.  The use of
+   this directive permits writing much more compact Job resources where the
+   bulk of the directives are defined in one or more JobDefs.  This is
+   particularly useful if you have many similar Jobs but with minor
+   variations such as different Clients.  A simple example of the use of
+   JobDefs is provided in the default bacula-dir.conf file.
 
 \item [Bootstrap = \lt{}bootstrap-file\gt{}]
-   \index[dir]{Bootstrap}
-   \index[dir]{Directive!Bootstrap}
-   The Bootstrap  directive specifies a bootstrap file that, if provided, will 
-be used during {\bf Restore} Jobs and is ignored in other  Job types. The {\bf
-bootstrap}  file contains the list of tapes to be used in a restore  Job as
-well as which files are to be restored. Specification  of this directive is
-optional, and  if specified, it is used only for a restore job. In addition, 
-when running a Restore job from the console, this value can  be changed.  
-
-If you use the {\bf Restore} command in the Console program,  to start a
-restore job, the {\bf bootstrap}  file will be created automatically from the
-files you  select to be restored.  
-
-For additional details of the {\bf bootstrap} file, please see  
-\ilink{Restoring Files with the Bootstrap File}{_ChapterStart43} 
-chapter of this manual. 
+\index[dir]{Bootstrap}
+\index[dir]{Directive!Bootstrap}
+   The Bootstrap directive specifies a bootstrap file that, if provided,
+   will be used during {\bf Restore} Jobs and is ignored in other Job
+   types.  The {\bf bootstrap} file contains the list of tapes to be used
+   in a restore Job as well as which files are to be restored.
+   Specification of this directive is optional, and if specified, it is
+   used only for a restore job.  In addition, when running a Restore job
+   from the console, this value can be changed.
+
+   If you use the {\bf Restore} command in the Console program, to start a
+   restore job, the {\bf bootstrap} file will be created automatically from
+   the files you select to be restored.
+
+   For additional details of the {\bf bootstrap} file, please see
+   \ilink{Restoring Files with the Bootstrap File}{_ChapterStart43} chapter
+   of this manual.
 
 \label{writebootstrap}
 \item [Write Bootstrap =  \lt{}bootstrap-file-specification\gt{}]
-   \index[dir]{Write Bootstrape}
-   \index[dir]{Directive!Write Bootstrape}
-   The  {\bf writebootstrap} directive specifies a file name where  Bacula will
-write a {\bf bootstrap} file for each Backup job  run. Thus this directive
-applies only to Backup Jobs. If the Backup  job is a Full save, Bacula will
-erase any current contents of  the specified file before writing the bootstrap
-records. If the Job  is an Incremental save, Bacula will append the current 
-bootstrap record to the end of the file.  
-
-Using this feature,  permits you to constantly have a bootstrap file that can
-recover the  current state of your system. Normally, the file specified should
-be a mounted drive on another machine, so that if your hard disk is  lost,
-you will immediately have a bootstrap record available.  Alternatively, you
-should copy the bootstrap file to another machine  after it is updated.  
-
-If the {\bf bootstrap-file-specification} begins with a  vertical bar (|),
-Bacula will use the specification as the  name of a program to which it will
-pipe the bootstrap record.  It could for example be a shell script that emails
-you the  bootstrap record. 
-
-For more details on using this file,  please see the chapter entitled 
-\ilink{The Bootstrap File}{_ChapterStart43} of this manual. 
+\index[dir]{Write Bootstrap}
+\index[dir]{Directive!Write Bootstrap}
+   The {\bf writebootstrap} directive specifies a file name where Bacula
+   will write a {\bf bootstrap} file for each Backup job run.  Thus this
+   directive applies only to Backup Jobs.  If the Backup job is a Full
+   save, Bacula will erase any current contents of the specified file
+   before writing the bootstrap records.  If the Job is an Incremental
+   save, Bacula will append the current bootstrap record to the end of the
+   file.
+
+   Using this feature, permits you to constantly have a bootstrap file that
+   can recover the current state of your system.  Normally, the file
+   specified should be a mounted drive on another machine, so that if your
+   hard disk is lost, you will immediately have a bootstrap record
+   available.  Alternatively, you should copy the bootstrap file to another
+   machine after it is updated.
+
+   If the {\bf bootstrap-file-specification} begins with a vertical bar
+   (|), Bacula will use the specification as the name of a program to which
+   it will pipe the bootstrap record.  It could for example be a shell
+   script that emails you the bootstrap record.
+
+   For more details on using this file, please see the chapter entitled
+   \ilink{The Bootstrap File}{_ChapterStart43} of this manual.
 
 \item [Client = \lt{}client-resource-name\gt{}]
-   \index[dir]{Client}
-   \index[dir]{Directive!Client}
+\index[dir]{Client}
+\index[dir]{Directive!Client}
    The Client directive  specifies the Client (File daemon) that will be used in
    the  current Job. Only a single Client may be specified in any one Job.  The
    Client runs on the machine to be backed up,  and sends the requested files to
@@ -674,8 +689,8 @@ For more details on using this file,  please see the chapter entitled
    This directive is required. 
 
 \item [FileSet = \lt{}FileSet-resource-name\gt{}]
-   \index[dir]{FileSet}
-   \index[dir]{FileSet}
+\index[dir]{FileSet}
+\index[dir]{FileSet}
    The FileSet directive specifies the FileSet that will be used in the
    current Job.  The FileSet specifies which directories (or files) are to
    be backed up, and what options to use (e.g.  compression, ...).  Only a
@@ -684,8 +699,8 @@ For more details on using this file,  please see the chapter entitled
    this chapter.  This directive is required.
 
 \item [Messages = \lt{}messages-resource-name\gt{}]
-   \index[dir]{Messages}
-   \index[dir]{Directive!Messages}
+\index[dir]{Messages}
+\index[dir]{Directive!Messages}
    The Messages directive defines what Messages resource should be used for
    this job, and thus how and where the various messages are to be
    delivered.  For example, you can direct some messages to a log file, and
@@ -694,8 +709,8 @@ For more details on using this file,  please see the chapter entitled
    directive is required.
 
 \item [Pool = \lt{}pool-resource-name\gt{}]
-   \index[dir]{Pool}
-   \index[dir]{Directive!Pool}
+\index[dir]{Pool}
+\index[dir]{Directive!Pool}
    The Pool directive defines the pool of Volumes where your data can be
    backed up.  Many Bacula installations will use only the {\bf Default}
    pool.  However, if you want to specify a different set of Volumes for
@@ -704,31 +719,29 @@ For more details on using this file,  please see the chapter entitled
    section}{PoolResource} of this chapter.  This directive is required.
 
 \item [Full Backup Pool = \lt{}pool-resource-name\gt{}]
-   \index[dir]{Full Backup Pool}
-   \index[dir]{Directive!Full Backup Pool}
-   The {\it Full Backup Pool} specifies a Pool to be used for  Full backups. It
-   will override any Pool specification during a  Full backup. This directive is
-   optional. 
+\index[dir]{Full Backup Pool}
+\index[dir]{Directive!Full Backup Pool}
+   The {\it Full Backup Pool} specifies a Pool to be used for Full backups.
+   It will override any Pool specification during a Full backup.  This
+   directive is optional.
    
 \item [Differential Backup Pool = \lt{}pool-resource-name\gt{}]  
-   \index[dir]{Differential Backup Pool}
-   \index[dir]{Directive!Differential Backup Pool}
-   The {\it Differential Backup Pool} specifies a Pool to be used for 
-   Differential backups. It will override any Pool specification during a 
-   Differential backup. This directive is optional. 
+\index[dir]{Differential Backup Pool}
+\index[dir]{Directive!Differential Backup Pool}
+   The {\it Differential Backup Pool} specifies a Pool to be used for
+   Differential backups.  It will override any Pool specification during a
+   Differential backup.  This directive is optional.
    
 \item [Incremental Backup Pool = \lt{}pool-resource-name\gt{}]  
-   \index[dir]{Incremental Backup Pool}
-   \index[dir]{Directive!Incremental Backup Pool}
-   The {\it Incremental Backup Pool} specifies a Pool to be used for 
-Incremental
-   backups. It will override any Pool specification during an  Incremental
-backup.
-   This directive is optional. 
+\index[dir]{Incremental Backup Pool}
+\index[dir]{Directive!Incremental Backup Pool}
+   The {\it Incremental Backup Pool} specifies a Pool to be used for
+   Incremental backups.  It will override any Pool specification during an
+   Incremental backup.  This directive is optional.
 
 \item [Schedule = \lt{}schedule-name\gt{}]
-   \index[dir]{Schedule}
-   \index[dir]{Directive!Schedule}
+\index[dir]{Schedule}
+\index[dir]{Directive!Schedule}
    The Schedule directive defines what schedule is to be used for the Job.
    The schedule in turn determines when the Job will be automatically
    started and what Job level (i.e.  Full, Incremental, ...) is to be run.
@@ -744,17 +757,16 @@ backup.
           
 
 \item [Storage = \lt{}storage-resource-name\gt{}]
-   \index[dir]{Storage}
-   \index[dir]{Directive!Storage}
-   The Storage directive  defines the name of the storage services where you
-want
-   to backup  the FileSet data. For additional details, see the 
+\index[dir]{Storage}
+\index[dir]{Directive!Storage}
+   The Storage directive defines the name of the storage services where you
+   want to backup the FileSet data.  For additional details, see the
    \ilink{Storage Resource Chapter}{StorageResource2} of this manual.
-    This directive is required.  
+   This directive is required.  
 
 \item [Max Start Delay = \lt{}time\gt{}]
-   \index[dir]{Max Start Delay}
-   \index[dir]{Directive!Max Start Delay}
+\index[dir]{Max Start Delay}
+\index[dir]{Directive!Max Start Delay}
    The time specifies the maximum delay between the scheduled time and the
    actual start time for the Job.  For example, a job can be scheduled to
    run at 1:00am, but because other jobs are running, it may wait to run.
@@ -764,16 +776,16 @@ want
    which indicates no limit.
 
 \item [Max Run Time = \lt{}time\gt{}]
-   \index[dir]{Max Run Time}
-   \index[dir]{Directive!Max Run Time}
+\index[dir]{Max Run Time}
+\index[dir]{Directive!Max Run Time}
    The time specifies the maximum allowed time that a job may run, counted
    from when the job starts, ({\bf not} necessarily the same as when the
    job was scheduled).  This directive is implemented in version 1.33 and
    later.
 
 \item [Max Wait Time = \lt{}time\gt{}]
-   \index[dir]{Max Wait Time}
-   \index[dir]{Directive!Max Wait Time}
+\index[dir]{Max Wait Time}
+\index[dir]{Directive!Max Wait Time}
    The time specifies the maximum allowed time that a job may block waiting
    for a resource (such as waiting for a tape to be mounted, or waiting for
    the storage or file daemons to perform their duties), counted from the
@@ -781,11 +793,9 @@ want
    scheduled).  This directive is implemented only in version 1.33 and
    later.
 
-
-
 \item [Incremental Max Wait Time = \lt{}time\gt{}]
-   \index[dir]{Incremental Max Wait Time}
-   \index[dir]{Directive!Incremental Max Wait Time}
+\index[dir]{Incremental Max Wait Time}
+\index[dir]{Directive!Incremental Max Wait Time}
    The time specifies the maximum allowed time that an Incremental backup
    job may block waiting for a resource (such as waiting for a tape to be
    mounted, or waiting for the storage or file daemons to perform their
@@ -794,8 +804,8 @@ want
    {\bf Max Wait Time} it may also be applied to the job.
 
 \item [Differential Max Wait Time = \lt{}time\gt{}]
-   \index[dir]{Differential Max Wait Time}
-   \index[dir]{Directive!Differential Max Wait Time}
+\index[dir]{Differential Max Wait Time}
+\index[dir]{Directive!Differential Max Wait Time}
    The time specifies the maximum allowed time that a Differential backup
    job may block waiting for a resource (such as waiting for a tape to be
    mounted, or waiting for the storage or file daemons to perform their
@@ -804,8 +814,8 @@ want
    {\bf Max Wait Time} it may also be applied to the job.
 
 \item [Prefer Mounted Volumes = \lt{}yes|no\gt{}]
-   \index[dir]{Prefer Mounted Volumes}
-   \index[dir]{Directive!Prefer Mounted Volumes}
+\index[dir]{Prefer Mounted Volumes}
+\index[dir]{Directive!Prefer Mounted Volumes}
    If the Prefer Mounted Volumes directive is set to {\bf yes} (default
    yes), the Storage daemon is requested to select either an Autochanger or
    a drive with a valid Volume already mounted in preference to a drive
@@ -826,8 +836,8 @@ want
 
 
 \item [Prune Jobs = \lt{}yes|no\gt{}]
-   \index[dir]{Prune Jobs}
-   \index[dir]{Directive!Prune Jobs}
+\index[dir]{Prune Jobs}
+\index[dir]{Directive!Prune Jobs}
    Normally, pruning of Jobs from the Catalog is specified on a Client by
    Client basis in the Client resource with the {\bf AutoPrune} directive.
    If this directive is specified (not normally) and the value is {\bf
@@ -836,8 +846,8 @@ want
 
 
 \item [Prune Files = \lt{}yes|no\gt{}]
-   \index[dir]{Prune Files}
-   \index[dir]{Directive!Prune Files}
+\index[dir]{Prune Files}
+\index[dir]{Directive!Prune Files}
    Normally, pruning of Files from the Catalog is specified on a Client by
    Client basis in the Client resource with the {\bf AutoPrune} directive.
    If this directive is specified (not normally) and the value is {\bf
@@ -845,29 +855,50 @@ want
    default is {\bf no}.
 
 \item [Prune Volumes = \lt{}yes|no\gt{}]
-   \index[dir]{Prune Volumes}
-   \index[dir]{Directive!Prune Volumes}
+\index[dir]{Prune Volumes}
+\index[dir]{Directive!Prune Volumes}
    Normally, pruning of Volumes from the Catalog is specified on a Client
    by Client basis in the Client resource with the {\bf AutoPrune}
    directive.  If this directive is specified (not normally) and the value
    is {\bf yes}, it will override the value specified in the Client
    resource.  The default is {\bf no}.
 
-\item [Run Before Job = \lt{}command\gt{}]
-   \index[dir]{Run Before Job}
-   \index[dir]{Directive!Run Before Job}
-   \index[dir]{Directive!Run Before Job}
-   The specified {\bf command} is run as an external program prior to
-   running the current Job.  Any output sent by the command to standard output
-   will be included in the Bacula job report.  The command string must be a
-   valid program name or name of a shell script.  This directive is not
-   required, but if it is defined, and if the exit code of the program run
-   is non-zero, the current Bacula job will be canceled.  In addition, the
-   command string is parsed then fed to the execvp() function, 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 or
-   piping, you must call a shell script and do it inside that script.
+\item [RunScript \{...\}]
+   \index[dir]{RunScript}
+   \index[dir]{Directive!Run Script}
+
+   The specified {\bf command} is run as an external program prior or after the
+   current Job. This directive is optional.
+
+   You can use following options :
+\begin{tabular}{|c|c|c|l}
+Options         & Value  & Default & Informations  \\
+\hline
+\hline
+Runs On Success & Yes/No & {\it Yes} & Run command if JobStatus is successful\\
+\hline
+Runs On Failure & Yes/No & {\it No} & Run command if JobStatus isn't successful\\
+\hline
+Runs On Client  & Yes/No & {\it Yes} & Run command on client\\
+\hline
+Runs When       & Before|After|Always & {\it Never} & When run commands\\
+\hline
+Abort Job On Error & Yes/No & {\it Yes} & Abort job if script return 
+                                          something different from 0 \\
+\hline
+Command          &       &          & Path to your script\\
+\hline
+\end{tabular}
+
+   Any output sent by the command to standard output will be included in the
+   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,
+   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
+   or piping, you must call a shell script and do it inside that script.
  
    Before submitting the specified command to the operating system, Bacula
    performs character substitution of the following characters:
@@ -903,80 +934,57 @@ The Job Exit Status code \%e edits the following values:
 
    Thus if you edit it on a command line, you will need to enclose 
    it within some sort of quotes.
-   
-   Bacula checks the exit status of the RunBeforeJob program.  If it is
-   non-zero, the job will be error terminated.  Lutz Kittler has pointed
-   out that using the RunBeforJob directive can be a simple way to modify
-   your schedules during a holiday.  For example, suppose that you normally
-   do Full backups on Fridays, but Thursday and Friday are holidays.  To
-   avoid having to change tapes between Thursday and Friday when no one is
-   in the office, you can create a RunBeforeJob that returns a non-zero
-   status on Thursday and zero on all other days.  That way, the Thursday
-   job will not run, and on Friday the tape you inserted on Wednesday
-   before leaving will be used.
 
-\item [Run After Job = \lt{}command\gt{}]
-   \index[dir]{Run After Job}
-   \index[dir]{Directive!Run After Job}
-   The specified {\bf command} is run as an external program if the current
-   job terminates normally (without error or without being canceled).  This
-   directive is not required.  The command string must be a valid program name
-   or name of a shell script.  If the exit code of the program run is
-   non-zero, Bacula will print a warning message.  Before submitting the
-   specified command to the operating system, Bacula performs character
-   substitution as described above for the {\bf Run Before Job} directive.
-   
-   An example of the use of this directive is given in the  
-   \ilink{Tips Chapter}{JobNotification} of this manual.  
-   See the {\bf Run After Failed Job} if you
-   want to run a script after the job has terminated with any
-   non-normal status.
 
-\item [Run After Failed Job = \lt{}command\gt{}]
-   \index[dir]{Run After Job}
-   \index[dir]{Directive!Run After Job}
-   The specified {\bf command} is run as an external program after the current
-   job terminates with any error status.  This directive is not required.  The
-   command string must be a valid program name or name of a shell script. If
-   the exit code of the program run is non-zero, Bacula will print a
-   warning message. Before submitting the specified command to the
-   operating system, Bacula performs character substitution as described above
-   for the {\bf Run Before Job} directive. Note, if you wish, you may
-   specify the same script as for {\bf Run After Job} so that your script
-   will run regardless of the exit status of the Job.
-   
-   An example of the use of this directive is given in the  
-   \ilink{Tips Chapter}{JobNotification} of this manual.
-  
-
-\item [Client Run Before Job = \lt{}command\gt{}]
-   \index[dir]{Client Run Before Job}
-   \index[dir]{Directive!Client Run Before Job}
-   This directive  is the same as {\bf Run Before Job} except that the program is  run on
-   the client machine. The same restrictions apply to  Unix systems as noted
-   above for the {\bf Run Before Job}. 
+You can use these following shortcuts :
+\begin{tabular}{|c|c|c|c|c|c}
+Keyword & RunsOnSuccess & RunsOnFailure  & AbortJobOnError & Runs On Client & RunsWhen  \\
+\hline
+Run Before Job         &        &       & Yes     & No     & Before \\
+\hline
+Run After Job          &  Yes   &   No  &         & No     & After  \\
+\hline
+Run After Failed Job   &  No    &  Yes  &         & No     & After  \\
+\hline
+Client Run Before Job  &        &       & Yes     & Yes    & Before \\
+\hline
+Client Run After Job   &  Yes   &   No  &         & Yes    & After  \\
+\hline
+Client Run After Failed Job   &  No    &  Yes  &         & Yes     & After  \\
+\end{tabular}
+
+Example :
+\begin{verbatim}
+RunScript {
+    RunsWhen = Before
+    AbortJobOnError = No
+    Command = "/etc/init.d/apache stop"
+}
 
-   When specifying a full path to an executable if the path or  executable name
-   contains whitespace or special characters they  will need to be quoted.
-   Arguments containing whitespace or  special characters will also have to be
-   quoted. 
+RunScript {
+    RunsWhen = After
+    RunsOnFailure = yes
+    Command = "/etc/init.d/apache start"
+}
+\end{verbatim}
 
    {\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.  
+
+   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.
    
-   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)  
+   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)
    
-   The System \%Path\% will be searched for the command. (under  the environment
-   variable dialog you have have both System  Environment and User Environment,
-   we believe that only the  System environment will be available to bacula-fd,
-   if it is  running as a service.)  
+   The System \%Path\% will be searched for the command.  (under the
+   environment variable dialog you have have both System Environment and
+   User Environment, we believe that only the System environment will be
+   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.  
@@ -989,19 +997,19 @@ ClientRunBeforeJob = "\"C:/Program Files/Software
 \end{verbatim}
 \normalsize
 
-   The special characters \&()[]\{\}\^{}=;!'+,`\~{} will need to be quoted  if
-   they are part of a filename or argument.  
+   The special characters \&()[]\{\}\^{}=;!'+,`\~{} will need to be quoted
+   if they are part of a filename or argument.
    
-   If someone is logged in, a blank "command" window running the commands will
-   be present during the execution of the command.  
+   If someone is logged in, a blank "command" window running the commands
+   will be present during the execution of the command.
    
-   Some Suggestions from Phil Stracchino for running on Win32 machines  with the
-   native Win32 File daemon: 
+   Some Suggestions from Phil Stracchino for running on Win32 machines with
+   the native Win32 File daemon:
 
    \begin{enumerate}
    \item You might want the ClientRunBeforeJob directive to specify a .bat
-      file which runs the actual client-side commands, rather than trying to
-      run (for  example) regedit /e directly.  
+      file which runs the actual client-side commands, rather than trying
+      to run (for example) regedit /e directly.
    \item The batch file should explicitly 'exit 0' on successful completion.  
    \item The path to the batch file should be specified in Unix form:  
    
@@ -1039,14 +1047,13 @@ The following line in the Job resource in the bacula-dir.conf file:
 '%l'\""
 \end{verbatim}
 \normalsize
- When the job is run, you will get messages from the output of the script
-stating 
- that the backup has started. Even though the command being run is 
- backgrounded with \&, the job will block until the "db2 BACKUP DATABASE"
-command,
- thus the backup stalls.
+
+When the job is run, you will get messages from the output of the script
+stating that the backup has started. Even though the command being run is
+backgrounded with \&, the job will block until the "db2 BACKUP DATABASE"
+command, thus the backup stalls.
  
- To remedy this situation, the "db2 BACKUP DATABASE" line should be changed to
+To remedy this situation, the "db2 BACKUP DATABASE" line should be changed to
 the following:
  
 \footnotesize
@@ -1059,13 +1066,91 @@ the following:
 It is important to redirect the input and outputs of a backgrounded command to
 /dev/null to prevent the script from blocking.
 
+\item [Run Before Job = \lt{}command\gt{}]
+\index[dir]{Run Before Job}
+\index[dir]{Directive!Run Before Job}
+\index[dir]{Directive!Run Before Job}
+The specified {\bf command} is run as an external program prior to running the
+current Job.  This directive is not required, but if it is defined, and if the
+exit code of the program run is non-zero, the current Bacula job will be
+canceled.
+
+\begin{verbatim}
+Run Before Job = "echo test"
+\end{verbatim}
+   it's equivalent to :
+\begin{verbatim}
+RunScript {
+ Command = "echo test"
+ RunsOnClient = No
+ RunsWhen = Before
+}
+\end{verbatim} 
+
+   Lutz Kittler has pointed out that using the RunBeforJob directive can be a
+   simple way to modify your schedules during a holiday.  For example, suppose
+   that you normally do Full backups on Fridays, but Thursday and Friday are
+   holidays.  To avoid having to change tapes between Thursday and Friday when
+   no one is in the office, you can create a RunBeforeJob that returns a
+   non-zero status on Thursday and zero on all other days.  That way, the
+   Thursday job will not run, and on Friday the tape you inserted on Wednesday
+   before leaving will be used.
+
+\item [Run After Job = \lt{}command\gt{}]
+\index[dir]{Run After Job}
+\index[dir]{Directive!Run After Job}
+   The specified {\bf command} is run as an external program if the current
+   job terminates normally (without error or without being canceled).  This
+   directive is not required.  If the exit code of the program run is
+   non-zero, Bacula will print a warning message.  Before submitting the
+   specified command to the operating system, Bacula performs character
+   substitution as described above for the {\bf RunScript} directive.
+   
+   An example of the use of this directive is given in the  
+   \ilink{Tips Chapter}{JobNotification} of this manual.  
+
+   See the {\bf Run After Failed Job} if you
+   want to run a script after the job has terminated with any
+   non-normal status.
+
+\item [Run After Failed Job = \lt{}command\gt{}]
+\index[dir]{Run After Job}
+\index[dir]{Directive!Run After Job}
+   The specified {\bf command} is run as an external program after the current
+   job terminates with any error status.  This directive is not required.  The
+   command string must be a valid program name or name of a shell script. If
+   the exit code of the program run is non-zero, Bacula will print a
+   warning message. Before submitting the specified command to the
+   operating system, Bacula performs character substitution as described above
+   for the {\bf RunScript} directive. Note, if you wish that your script
+   will run regardless of the exit status of the Job, you can use this :
+\begin{verbatim}
+RunScript {
+ Command = "echo test"
+ RunsWhen = After
+ RunsOnFailure = yes
+ RunsOnClient  = no
+ RunsOnSuccess = yes    # default, you can drop this line
+}
+\end{verbatim}
+
+   An example of the use of this directive is given in the  
+   \ilink{Tips Chapter}{JobNotification} of this manual.
+  
+
+\item [Client Run Before Job = \lt{}command\gt{}]
+\index[dir]{Client Run Before Job}
+\index[dir]{Directive!Client Run Before Job}
+   This directive is the same as {\bf Run Before Job} except that the
+   program is run on the client machine.  The same restrictions apply to
+   Unix systems as noted above for the {\bf RunScript}.
 
 \item [Client Run After Job = \lt{}command\gt{}]
    \index[dir]{Client Run After Job}
    \index[dir]{Directive!Client Run After Job}
    This directive is the same as {\bf Run After Job} except that it is run on
-   the client machine.  Note, please see the notes above in {\bf Client Run
-   Before Job} concerning Windows clients.
+   the client machine.  Note, please see the notes above in {\bf RunScript} 
+   concerning Windows clients.
 
 \item [Rerun Failed Levels = \lt{}yes|no\gt{}]
    \index[dir]{Rerun Failed Levels}
@@ -1092,6 +1177,10 @@ It is important to redirect the input and outputs of a backgrounded command to
 \item [Spool Attributes = \lt{}yes|no\gt{}]
    \index[dir]{Spool Attributes}
    \index[dir]{Directive!Spool Attributes}
+   \index[dir]{slow}
+   \index[general]{slow}
+   \index[dir]{Backups!slow}
+   \index[general]{Backups!slow}
    The default is set to  {\bf no}, which means that the File attributes are
 sent
 by the  Storage daemon to the Director as they are stored on tape. However, 
@@ -1105,20 +1194,21 @@ will be  sent to the Director.
 \item [Where = \lt{}directory\gt{}]
    \index[dir]{Where}
    \index[dir]{Directive!Where}
-   This directive applies only  to a Restore job and specifies a prefix to the
-directory name  of all files being restored. This permits files to be restored
-in a different location from which they were saved. If {\bf Where}  is not
-specified or is set to backslash ({\bf /}), the files  will be restored to
-their original location. By default, we  have set {\bf Where} in the example
-configuration files to be  {\bf /tmp/bacula-restores}. This is to prevent
-accidental overwriting  of your files. 
+   This directive applies only to a Restore job and specifies a prefix to
+   the directory name of all files being restored.  This permits files to
+   be restored in a different location from which they were saved.  If {\bf
+   Where} is not specified or is set to backslash ({\bf /}), the files will
+   be restored to their original location.  By default, we have set {\bf
+   Where} in the example configuration files to be {\bf
+   /tmp/bacula-restores}.  This is to prevent accidental overwriting of
+   your files.
 
 \item [Replace = \lt{}replace-option\gt{}]
    \index[dir]{Replace}
    \index[dir]{Directive!Replace}
-   This directive applies only  to a Restore job and specifies what happens when
-   Bacula wants to  restore a file or directory that already exists. You have the
-    following options for {\bf replace-option}:  
+   This directive applies only to a Restore job and specifies what happens
+   when Bacula wants to restore a file or directory that already exists.
+   You have the following options for {\bf replace-option}:
 
 \begin{description}
 
@@ -1128,14 +1218,14 @@ accidental overwriting  of your files.
   replaced by the copy that was backed up.
 
 \item [ifnewer]
-   \index[dir]{ifnewer}
-  if the backed up file (on tape) is newer than the  existing file, the existing
-  file is deleted and replaced by  the back up.  
+\index[dir]{ifnewer}
+  if the backed up file (on tape) is newer than the existing file, the
+  existing file is deleted and replaced by the back up.
 
 \item [ifolder]
    \index[dir]{ifolder}
-  if the backed up file (on tape) is older than the  existing file, the existing
-  file is deleted and replaced by  the back up.  
+  if the backed up file (on tape) is older than the existing file, the
+  existing file is deleted and replaced by the back up.
 
 \item [never]
    \index[dir]{never}
@@ -1168,7 +1258,7 @@ accidental overwriting  of your files.
 
 \item [Reschedule On Error = \lt{}yes|no\gt{}]
    \index[dir]{Reschedule On Error}
-   \index[dir]{Reschedule On Error}
+   \index[dir]{Directive!Reschedule On Error}
    If this directive is enabled, and the job terminates in error, the job
    will be rescheduled as determined by the {\bf Reschedule Interval} and
    {\bf Reschedule Times} directives.  If you cancel the job, it will not
@@ -1247,31 +1337,31 @@ accidental overwriting  of your files.
 
    The default priority is 10.  
 
-   If you want to run concurrent jobs, which is not recommended, you should 
-keep
-   these points in mind:  
+   If you want to run concurrent jobs you should
+   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
-   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.  
-\item Bacula concurrently runs jobs of only one priority at a time. It will 
-   not simultaneously run a priority 1 and a priority 2 job.  
-\item If Bacula is running a priority 2 job and a new priority 1  job is
-   scheduled, it will wait until the running priority 2 job  terminates even if
-   the Maximum Concurrent Jobs settings  would otherwise allow two jobs to run
-   simultaneously.  
-\item Suppose that bacula is running a priority 2 job and a new priority 1  job
-   is scheduled and queued waiting for the running priority  2 job to terminate.
-   If you then start a second priority 2 job,  the waiting priority 1 job  will
-   prevent the new priority 2 job from running concurrently  with the running
-   priority 2 job.  That is: as long as there is a higher priority job waiting
-   to
-   run, no new lower priority jobs will start even if  the Maximum Concurrent
-   Jobs settings would normally allow  them to run. This ensures that higher
-   priority jobs will  be run as soon as possible. 
+\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
+   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
+   course, set the Maximum Concurrent Jobs to more than 2.
+\item Bacula concurrently runs jobs of only one priority at a time.  It
+   will not simultaneously run a priority 1 and a priority 2 job.
+\item If Bacula is running a priority 2 job and a new priority 1 job is
+   scheduled, it will wait until the running priority 2 job terminates even
+   if the Maximum Concurrent Jobs settings would otherwise allow two jobs
+   to run simultaneously.
+\item Suppose that bacula is running a priority 2 job and a new priority 1
+   job is scheduled and queued waiting for the running priority 2 job to
+   terminate.  If you then start a second priority 2 job, the waiting
+   priority 1 job will prevent the new priority 2 job from running
+   concurrently with the running priority 2 job.  That is: as long as there
+   is a higher priority job waiting to run, no new lower priority jobs will
+   start even if the Maximum Concurrent Jobs settings would normally allow
+   them to run.  This ensures that higher priority jobs will be run as soon
+   as possible.
 \end{itemize}
 
 If you have several jobs of different priority, it may not best to start
@@ -1284,8 +1374,8 @@ correct order, and that your priority scheme will be respected.
 
 \label{WritePartAfterJob}
 \item [Write Part After Job = \lt{}yes|no\gt{}]
-   \index[dir]{Write Part After Job}
-   \index[dir]{Directive!Write Part After Job}
+\index[dir]{Write Part After Job}
+\index[dir]{Directive!Write Part After Job}
    This directive is only implemented in version 1.37 and later.
    If this directive is set to {\bf yes} (default {\bf no}), a new part file
    will be created after the job is finished.  
@@ -1348,11 +1438,11 @@ be run manually. In general, you specify an action to be taken and when.
 \begin{description}
 
 \item [Schedule]
-   \index[dir]{Schedule}
-   \index[dir]{Directive!Schedule}
-   Start of the Schedule directives. No {\bf Schedule}  resource is required,
-but
-you will need at least one if you want  Jobs to be automatically started. 
+\index[dir]{Schedule}
+\index[dir]{Directive!Schedule}
+   Start of the Schedule directives.  No {\bf Schedule} resource is
+   required, but you will need at least one if you want Jobs to be
+   automatically started.
 
 \item [Name = \lt{}name\gt{}]
    \index[dir]{Name}
@@ -1362,30 +1452,31 @@ you will need at least one if you want  Jobs to be automatically started.
 \item [Run = \lt{}Job-overrides\gt{} \lt{}Date-time-specification\gt{}]
    \index[dir]{Run}
    \index[dir]{Directive!Run}
-   The Run directive defines when a Job is to be run,  and what overrides if any
-to apply. You may specify multiple  {\bf run} directives within a {\bf
-Schedule} resource. If you  do, they will all be applied (i.e. multiple
-schedules). If you  have two {\bf Run} directives that start at the same time,
-two  Jobs will start at the same time (well, within one second of  each
-other).  
-
-The {\bf Job-overrides} permit overriding the Level, the  Storage, the
-Messages, and the Pool specifications  provided in the Job resource. In
-addition, the  FullPool, the IncrementalPool, and the  DifferentialPool
-specifications permit overriding the  Pool specification according to what
-backup Job Level is  in effect.  
-
-By the use of overrides, you  may customize a particular Job. For example, you
-may specify a  Messages override for your Incremental backups that  outputs
-messages to a log file, but for your weekly or monthly  Full backups, you may
-send the output by email by using  a different Messages override.  
-
-{\bf Job-overrides} are specified as:  {\bf keyword=value} where the keyword
-is Level, Storage,  Messages, Pool, FullPool, DifferentialPool, or
-IncrementalPool, and  the {\bf value} is as defined on the respective
-directive formats for  the Job resource. You may specify multiple {\bf
-Job-overrides} on  one {\bf Run} directive by separating them with one or more
-spaces or  by separating them with a trailing comma.  For example:  
+   The Run directive defines when a Job is to be run, and what overrides if
+   any to apply.  You may specify multiple {\bf run} directives within a
+   {\bf Schedule} resource.  If you do, they will all be applied (i.e.
+   multiple schedules).  If you have two {\bf Run} directives that start at
+   the same time, two Jobs will start at the same time (well, within one
+   second of each other).
+
+   The {\bf Job-overrides} permit overriding the Level, the Storage, the
+   Messages, and the Pool specifications provided in the Job resource.  In
+   addition, the FullPool, the IncrementalPool, and the DifferentialPool
+   specifications permit overriding the Pool specification according to
+   what backup Job Level is in effect.
+
+   By the use of overrides, you may customize a particular Job.  For
+   example, you may specify a Messages override for your Incremental
+   backups that outputs messages to a log file, but for your weekly or
+   monthly Full backups, you may send the output by email by using a
+   different Messages override.
+
+   {\bf Job-overrides} are specified as: {\bf keyword=value} where the
+   keyword is Level, Storage, Messages, Pool, FullPool, DifferentialPool,
+   or IncrementalPool, and the {\bf value} is as defined on the respective
+   directive formats for the Job resource.  You may specify multiple {\bf
+   Job-overrides} on one {\bf Run} directive by separating them with one or
+   more spaces or by separating them with a trailing comma.  For example:
 
 \begin{description}
 
@@ -1922,16 +2013,12 @@ resource that  can run concurrently. Note, this directive limits only Jobs
 for Jobs using this Storage daemon. Any  other restrictions on the maximum
 concurrent jobs such as in  the Director, Job, or Client resources will also
 apply in addition to  any limit specified here. The  default is set to 1, but
-you may set it to a larger number.  We strongly recommend that you read the
-WARNING documented under  
-\ilink{ Maximum Concurrent Jobs}{DirMaxConJobs} in the Director's
-resource.  
-
-While it is possible to set the Director's, Job's, or Client's  maximum
-concurrent jobs greater than one, you should take great  care in setting the
-Storage daemon's greater than one. By keeping  this directive set to one, you
-will avoid having two jobs simultaneously  write to the same Volume. Although
-this is supported, it is not  currently recommended.  
+you may set it to a larger number.  However, if you set the Storage
+daemon's number of concurrent jobs greater than one,
+we recommend that you read the
+waring documented under  \ilink{Maximum Concurrent Jobs}{DirMaxConJobs} 
+in the Director's resource or simply turn data spooling on as documented
+in the \ilink{Data Spooling}{SpoolingChapter} chapter of this manual.
 \end{description}
 
 The following is an example of a valid Storage resource definition: 
@@ -2707,6 +2794,7 @@ be accessed by  the console.
 
 \item [CommandACL = \lt{}name-list\gt{}]
    \index[dir]{CommandACL}
+   \index[dir]{Directive!CommandACL}
    This directive is used to  specify a list of of console commands that can be
 executed by  the console. 
 \end{description}