From: Kern Sibbald Date: Sat, 30 Sep 2006 08:42:42 +0000 (+0000) Subject: Update X-Git-Tag: Release-2.0.0~395 X-Git-Url: https://git.sur5r.net/?a=commitdiff_plain;h=f206036371b8f07125695ab06b08d03ad5974280;p=bacula%2Fdocs Update --- diff --git a/docs/developers/generaldevel.tex b/docs/developers/generaldevel.tex index 75cfe386..6d6d9f7b 100644 --- a/docs/developers/generaldevel.tex +++ b/docs/developers/generaldevel.tex @@ -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) diff --git a/docs/developers/imagename_translations b/docs/developers/imagename_translations index 8cfd734f..186c14f0 100644 --- a/docs/developers/imagename_translations +++ b/docs/developers/imagename_translations @@ -1,2 +1,2 @@ -img1.png./bacula-logo.eps img2.png./smartall.eps +img1.png./bacula-logo.eps diff --git a/docs/developers/version.tex b/docs/developers/version.tex index b757df6d..e7b01c69 100644 --- a/docs/developers/version.tex +++ b/docs/developers/version.tex @@ -1 +1 @@ -1.39.20 (16 August 2006) +1.39.23 (28 September 2006) diff --git a/docs/manual-de/version.tex b/docs/manual-de/version.tex index b757df6d..e7b01c69 100644 --- a/docs/manual-de/version.tex +++ b/docs/manual-de/version.tex @@ -1 +1 @@ -1.39.20 (16 August 2006) +1.39.23 (28 September 2006) diff --git a/docs/manual/dirdconf.tex b/docs/manual/dirdconf.tex index a79c2134..d7e27c30 100644 --- a/docs/manual/dirdconf.tex +++ b/docs/manual/dirdconf.tex @@ -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} diff --git a/docs/manual/migration.tex b/docs/manual/migration.tex index cb143301..857fb4ef 100644 --- a/docs/manual/migration.tex +++ b/docs/manual/migration.tex @@ -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} diff --git a/docs/manual/recycling.tex b/docs/manual/recycling.tex index cb541fee..bcb49f69 100644 --- a/docs/manual/recycling.tex +++ b/docs/manual/recycling.tex @@ -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 } diff --git a/docs/manual/version.tex b/docs/manual/version.tex index aba939eb..e7b01c69 100644 --- a/docs/manual/version.tex +++ b/docs/manual/version.tex @@ -1 +1 @@ -1.39.23 (20 September 2006) +1.39.23 (28 September 2006)