]> git.sur5r.net Git - bacula/docs/commitdiff
Update
authorKern Sibbald <kern@sibbald.com>
Sat, 30 Sep 2006 08:42:42 +0000 (08:42 +0000)
committerKern Sibbald <kern@sibbald.com>
Sat, 30 Sep 2006 08:42:42 +0000 (08:42 +0000)
docs/developers/generaldevel.tex
docs/developers/imagename_translations
docs/developers/version.tex
docs/manual-de/version.tex
docs/manual/dirdconf.tex
docs/manual/migration.tex
docs/manual/recycling.tex
docs/manual/version.tex

index 75cfe386f8128c9f269e26fab29c42cb4340a6dd..6d6d9f7b870f505a7f28d41e15ea229638597aa5 100644 (file)
@@ -717,6 +717,7 @@ Project regress:
    |- scripts          (scripts and .conf files)
    |- tests            (test scripts)
    |- tmp              (temporary directory for temp files)
+   |- working          (temporary working directory for Bacula daemons)
 
 Project docs:
 |- docs                (documentation directory)
index 8cfd734f7fa7d6a891137719bda194ed0838a896..186c14f01e392209853e7c59860d04c40592ce6c 100644 (file)
@@ -1,2 +1,2 @@
-img1.png\ 1./bacula-logo.eps
 img2.png\ 1./smartall.eps
+img1.png\ 1./bacula-logo.eps
index b757df6d54702fafdccb0141fe94eea6be953600..e7b01c69fbc44c4efa14cbde6188d0c8aaff6fd7 100644 (file)
@@ -1 +1 @@
-1.39.20 (16 August 2006)
+1.39.23 (28 September 2006)
index b757df6d54702fafdccb0141fe94eea6be953600..e7b01c69fbc44c4efa14cbde6188d0c8aaff6fd7 100644 (file)
@@ -1 +1 @@
-1.39.20 (16 August 2006)
+1.39.23 (28 September 2006)
index a79c2134b2d5ab24280e291d101892762cf952e5..d7e27c305a00ebf38ee14c0073e622d8841bcd14 100644 (file)
@@ -1018,7 +1018,11 @@ ClientRunBeforeJob = "\"C:/Program Files/Software
 \end{verbatim}
 \normalsize
 
-   The special characters \&()[]\{\}\^{}=;!'+,`\~{} will need to be quoted
+   The special characters 
+\begin{verbatim}
+&<>()@^|
+\end{verbatim}
+   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
@@ -1039,10 +1043,59 @@ ClientRunBeforeJob = "\"C:/Program Files/Software
    rather than DOS/Windows form:  
    
    ClientRunBeforeJob =
-  
+
 "c:\textbackslash{}bacula\textbackslash{}bin\textbackslash{}systemstate.bat"
    INCORRECT 
    \end{enumerate}
+
+For Win32, please note that there are certain limitations:  
+
+
+ClientRunBeforeJob = "C:/Program Files/Bacula/bin/pre-exec.bat"
+
+Lines like the above do not work because there are limitations of
+cmd.exe that is used to execute the command.
+Bacula prefixes the string you supply with {\bf cmd.exe /c }.  To test that
+your command works you should type {\bf cmd /c "C:/Program Files/test.exe"} at a
+cmd prompt and see what happens.  Once the command is correct insert a
+backslash (\textbackslash{}) before each double quote ("), and
+then put quotes around the whole thing when putting it in
+the director's .conf file.  You either need to have only one set of quotes
+or else use the short name and don't put quotes around the command path.
+Below is the output from cmd's help as it relates to the command line
+passed to the /c option.
+ If /C or /K is specified, then the remainder of the command line after
+ the switch is processed as a command line, where the following logic is
+ used to process quote (") characters:
+\begin{enumerate}
+\item 
+     If all of the following conditions are met, then quote characters
+         on the command line are preserved:
+    \begin{itemize}
+       \item no /S switch.
+       \item exactly two quote characters.
+       \item no special characters between the two quote characters,
+           where special is one of: 
+\begin{verbatim}
+&<>()@^| 
+\end{verbatim}
+       \item there are one or more whitespace characters between the
+           the two quote characters.
+       \item the string between the two quote characters is the name
+           of an executable file.
+    \end{itemize}
+\item  Otherwise, old behavior is to see if the first character is
+         a quote character and if so, strip the leading character and
+         remove the last quote character on the command line, preserving
+         any text after the last quote character. 
+   
+\end{enumerate}
+
    
 The following example of the use of the Client Run Before Job directive was 
 submitted by a user:\\
@@ -1332,7 +1385,7 @@ will be  sent to the Director.
    since they are already inside quotes. For example:
 
 \begin{verbatim}
-   run = "Nightly-backup level=%s since=\"%s\" storage=DDS-4"
+   run = "Nightly-backup level=%l since=\"%s\" storage=DDS-4"
 \end{verbatim}
 
 
index cb14330143ab1550207d3a4a40de1e5b19312018..857fb4ef36a8081a662ff19f60fc450b85049f78 100644 (file)
@@ -31,7 +31,11 @@ To run a Migration job, you must first define a Job resource very similar
 to a Backup Job but with {\bf Type = Migrate} instead of {\bf Type =
 Backup}.  One of the key points to remember is that the Pool that is 
 specified for the migration job is the only pool from which jobs will
-be migrated, with one exception noted below.
+be migrated, with one exception noted below. Also, Bacula permits pools
+to contain Volumes with different Media Types. However, when doing
+migration, this is a very undesirable condition. For migration to work
+properly, you {\bf must} use pools containing only Volumes of the same
+Media Type for all migration jobs.
        
 The migration job normally is either manually started or starts
 from a Schedule much like a backup job. It searches
@@ -223,6 +227,9 @@ are used to define a Migration job.
 \index[general]{Important Migration Considerations}
 \addcontentsline{toc}{subsection}{Important Migration Considerations}
 \begin{itemize}
+\item Each Pool into which you migrate Jobs or Volumes {\bf must}
+      contain Volumes of only one Media Type. 
+
 \item Migration takes place on a JobId by JobId basis. That is
       each JobId is migrated in its entirety and independently
       of other JobIds. Once the Job is migrated, it will be
@@ -267,6 +274,13 @@ are used to define a Migration job.
       different options.  Turning on a debug level of 100 or more will provide 
       a limited amount of debug information about the migration selection 
       process.
+
+\item Bacula does not currently do any Storage conflict resolution, so you
+      must take care to ensure that you don't try to read and write to the
+      same device or Bacula will block waiting to reserve a drive that it
+      will never find. In general, ensure that all your migration
+      pools contain only one Media Type, and that you always
+      migrate to pools with different Media Types. 
 \end{itemize}
 
 
index cb541feeaf8c6ffdf3b7da64273f70618c926889..bcb49f697b1ff7a6fc5d4be66e99e1ae7323417a 100644 (file)
@@ -266,7 +266,9 @@ items.
    with the lowest MediaId is chosen).
 \item Try recycling any purged Volumes.
 \item Prune volumes applying Volume retention period (Volumes with VolStatus 
-   Full, Used, or Append are pruned).
+   Full, Used, or Append are pruned). Note, even if all the File and Job
+   records are pruned from a Volume, the Volume will not be marked Purged
+   until the Volume retention period expires.
 \item Search the Pool for a Volume with VolStatus=Purged 
 \item If a Pool named "Scratch" exists, search for a Volume and if found
    move it to the current Pool for the Job and use it. Note, when
@@ -278,15 +280,16 @@ items.
    it is in the Autochanger.                   
 \item Attempt to create a new Volume if automatic labeling enabled 
    If Python is enabled, a Python NewVolume event is generated before
-   the Label Format directve is used.
-\item Prune the oldest Volume if RecycleOldestVolume=yes (the Volume  with the
+   the Label Format directve is used. If the maximum number of Volumes
+   specified for the pool is reached, a new Volume will not be created.
+\item Prune the oldest Volume if RecycleOldestVolume=yes (the Volume with the
    oldest LastWritten date and VolStatus equal to  Full, Recycle, Purged, Used,
    or Append is chosen). This  record ensures that all retention periods are
-   properly  respected. 
+   properly respected. 
 \item Purge the oldest Volume if PurgeOldestVolume=yes (the Volume  with the
    oldest LastWritten date and VolStatus equal to  Full, Recycle, Purged, Used,
    or Append is chosen). We strongly  recommend against the use of {\bf
-   PurgeOldestVolume} as it  can quite easily lead to loss of current backup
+   PurgeOldestVolume} as it can quite easily lead to loss of current backup
    data. 
 \item Give up and ask operator. 
 \end{itemize}
@@ -300,8 +303,8 @@ the Director to use this Volume. In this case, if you have set {\bf Recycle
 Current Volume = yes} and the Volume is marked as Used or Full, Bacula will
 prune the volume and if all jobs were removed during the pruning (respecting
 the retention periods), the Volume will be recycled and used. 
-The recycling algorithm in this case is: 
 
+The recycling algorithm in this case is: 
 \begin{itemize}
 \item If the VolStatus is {\bf Append} or {\bf Recycle} 
    is set, the volume  will be used.  
@@ -314,6 +317,22 @@ This permits users to manually change the Volume every day and load tapes in
 an order different from what is in the catalog, and if the volume does not
 contain a current copy of your backup data, it will be used. 
 
+A few points from Alan Brown to keep in mind:
+
+\begin{enumerate}
+\item If a pool doesn't have maximum volumes defined then Bacula will prefer to 
+  demand new volumes over forcibly purging older volumes.
+
+\item If volumes become free through pruning and the Volume retention period has
+  expired, then they get marked as "purged" and are immediately available for
+  recycling - these will be used in preference to creating new volumes.
+
+\item If the Job, File, and Volume retention periods are different, then
+  it's common to see a tape with no files or jobs listed in the database,
+  but which is still not marked as "purged".
+\end{enumerate}
+
+
 \subsection*{Recycle Status}
 \index[general]{Status!Recycle }
 \index[general]{Recycle Status }
index aba939ebd34397bb8aad5a1fed88850858a55bd6..e7b01c69fbc44c4efa14cbde6188d0c8aaff6fd7 100644 (file)
@@ -1 +1 @@
-1.39.23 (20 September 2006)
+1.39.23 (28 September 2006)