the next backup will be forced to a Full so that Bacula can
guarantee that any additions or deletions are properly backed
up.
- If this directive is set to {\bf yes}, any changes you make to the FileSet
- Include or Exclude lists will be ignored and not cause Bacula to immediately
- perform a Full backup. The default is {\bf no}, in which case, if you change
- the Include or Exclude, Bacula will force a Full backup to ensure that
- everything is properly backed up. It is not recommended to set this directive
- to yes.
+ If this directive is set to {\bf yes}, any changes you make to the
+ FileSet Include or Exclude lists will be ignored and not cause Bacula to
+ immediately perform a Full backup. The default is {\bf no}, in which
+ case, if you change the Include or Exclude, Bacula will force a Full
+ backup to ensure that everything is properly backed up. It is not
+ recommended to set this directive to yes.
\item [Enable VSS = \lt{}yes|no\gt{}]
\index[dir]{Enable VSS}
\item [compression=GZIP]
\index[dir]{compression}
\index[dir]{Directive!compression}
- All files saved will be software compressed using the GNU ZIP compression
- format. The compression is done on a file by file basis by the File daemon.
- If there is a problem reading the tape in a single record of a file, it will
- at most affect that file and none of the other files on the tape. Normally
- this option is {\bf not} needed if you have a modern tape drive as the drive
- will do its own compression. In fact, if you specify software compression at
- the same time you have hardware compression turned on, your files may
- actually take more space on the volume.
-
- Software compression is very important if you are writing your Volumes to a
- file, and it can also be helpful if you have a fast computer but a slow
- network, otherwise it is generally better to rely your tape drive's hardware
- compression. As noted above, it is not generally a good idea to do both software
- and hardware compression.
-
- Specifying {\bf GZIP} uses the default compression level six (i.e. {\bf GZIP}
- is identical to {\bf GZIP6}). If you want a different compression level (1
- through 9), you can specify it by appending the level number with no
- intervening spaces to {\bf GZIP}. Thus {\bf compression=GZIP1} would give
- minimum compression but the fastest algorithm, and {\bf compression=GZIP9}
- would give the highest level of compression, but requires more computation.
- According to the GZIP documentation, compression levels greater than 6
- generally give very little extra compression and are rather CPU intensive.
+ All files saved will be software compressed using the GNU ZIP
+ compression format. The compression is done on a file by file basis by
+ the File daemon. If there is a problem reading the tape in a single
+ record of a file, it will at most affect that file and none of the other
+ files on the tape. Normally this option is {\bf not} needed if you have
+ a modern tape drive as the drive will do its own compression. In fact,
+ if you specify software compression at the same time you have hardware
+ compression turned on, your files may actually take more space on the
+ volume.
+
+ Software compression is very important if you are writing your Volumes
+ to a file, and it can also be helpful if you have a fast computer but a
+ slow network, otherwise it is generally better to rely your tape drive's
+ hardware compression. As noted above, it is not generally a good idea
+ to do both software and hardware compression.
+
+ Specifying {\bf GZIP} uses the default compression level six (i.e. {\bf
+ GZIP} is identical to {\bf GZIP6}). If you want a different compression
+ level (1 through 9), you can specify it by appending the level number
+ with no intervening spaces to {\bf GZIP}. Thus {\bf compression=GZIP1}
+ would give minimum compression but the fastest algorithm, and {\bf
+ compression=GZIP9} would give the highest level of compression, but
+ requires more computation. According to the GZIP documentation,
+ compression levels greater than 6 generally give very little extra
+ compression and are rather CPU intensive.
\item [signature=SHA1]
\index[dir]{signature}
+\index[dir]{SHA1}
\index[dir]{Directive!signature}
- An SHA1 signature will be computed for all The SHA1 algorithm is purported to
- be some what slower than the MD5 algorithm, but at the same time is
- significantly better from a cryptographic point of view (i.e. much fewer
- collisions, much lower probability of being hacked.) It adds four more bytes
- than the MD5 signature. We strongly recommend that either this option or MD5
- be specified as a default for all files. Note, only one of the two options
- MD5 or SHA1 can be computed for any file.
+ An SHA1 signature will be computed for all The SHA1 algorithm is
+ purported to be some what slower than the MD5 algorithm, but at the same
+ time is significantly better from a cryptographic point of view (i.e.
+ much fewer collisions, much lower probability of being hacked.) It adds
+ four more bytes than the MD5 signature. We strongly recommend that
+ either this option or MD5 be specified as a default for all files.
+ Note, only one of the two options MD5 or SHA1 can be computed for any
+ file.
\item [signature=MD5]
- \index[dir]{signature}
- \index[dir]{Directive!signature}
- An MD5 signature will be computed for all files saved. Adding this option
- generates about 5\% extra overhead for each file saved. In addition to the
- additional CPU time, the MD5 signature adds 16 more bytes per file to your
- catalog. We strongly recommend that this option or the SHA1 option be
- specified as a default for all files.
+\index[dir]{signature}
+\index[dir]{MD5}
+\index[dir]{Directive!signature}
+ An MD5 signature will be computed for all files saved. Adding this
+ option generates about 5\% extra overhead for each file saved. In
+ addition to the additional CPU time, the MD5 signature adds 16 more
+ bytes per file to your catalog. We strongly recommend that this option
+ or the SHA1 option be specified as a default for all files.
\item [verify=\lt{}options\gt{}]
\index[dir]{verify}
\item [onefs=yes|no]
\index[dir]{onefs}
\index[dir]{Directive!onefs}
- If set to {\bf yes} (the default), {\bf Bacula} will remain on a single file
- system. That is it will not backup file systems that are mounted on a
- subdirectory. If you are using a *nix system, you may not even be aware
- that there are several different filesystems as they are often
- automatically mounted by the OS (e.g. /dev, /net, /sys, /proc, ...).
- With Bacula 1.38.0 or later, it will inform you when it decides not
- to traverse into another filesystem. This can be very useful if you
- forgot to backup a particular partition. An example of the
- informational message in the job report is:
+ If set to {\bf yes} (the default), {\bf Bacula} will remain on a single
+ file system. That is it will not backup file systems that are mounted
+ on a subdirectory. If you are using a *nix system, you may not even be
+ aware that there are several different filesystems as they are often
+ automatically mounted by the OS (e.g. /dev, /net, /sys, /proc, ...).
+ With Bacula 1.38.0 or later, it will inform you when it decides not to
+ traverse into another filesystem. This can be very useful if you forgot
+ to backup a particular partition. An example of the informational
+ message in the job report is:
+
+\footnotesize
+\begin{verbatim}
+rufus-fd: /misc is a different filesystem. Will not descend from / into /misc
+rufus-fd: /net is a different filesystem. Will not descend from / into /net
+rufus-fd: /var/lib/nfs/rpc_pipefs is a different filesystem. Will not descend from /var/lib/nfs into /var/lib/nfs/rpc_pipefs
+rufus-fd: /selinux is a different filesystem. Will not descend from / into /selinux
+rufus-fd: /sys is a different filesystem. Will not descend from / into /sys
+rufus-fd: /dev is a different filesystem. Will not descend from / into /dev
+rufus-fd: /home is a different filesystem. Will not descend from / into /home
+\end{verbatim}
+\normalsize
+
+ Note: in previous versions of Bacula, the above message was of the form:
\footnotesize
\begin{verbatim}
-rufus-fd: Filesystem change prohibited. Will not descend into /misc
-rufus-fd: Filesystem change prohibited. Will not descend into /net
-rufus-fd: Filesystem change prohibited. Will not descend into /var/lib/nfs/rpc_pipefs
-rufus-fd: Filesystem change prohibited. Will not descend into /selinux
-rufus-fd: Filesystem change prohibited. Will not descend into /sys
-rufus-fd: Filesystem change prohibited. Will not descend into /dev
-rufus-fd: Filesystem change prohibited. Will not descend into /home
+Filesystem change prohibited. Will not descend into /misc
\end{verbatim}
\normalsize
+
If you wish to backup multiple filesystems, you can explicitly
list each filesystem you want saved. Otherwise, if you set the onefs option
to {\bf no}, Bacula will backup all mounted file systems (i.e. traverse mount
explicitly name each filesystem you want backed up. Explicitly naming the
filesystems you want backed up avoids the possibility of getting into a
infinite loop recursing filesystems. Another possibility is to
- use {\bf onefs=no} and to set {\bs fstype=ext2, ...}.
+ use {\bf onefs=no} and to set {\bf fstype=ext2, ...}.
See the example below for more details.
If you think that Bacula should be backing up a particular directory
Also be aware that even if you include {\bf /home} in your list
of files to backup, as you most likely should, you will get the
- informational message about Filesystem change prohibited when Bacula is
- processing the {\bf /} directory.
+ informational message that "/home is a different filesystem" when
+ Bacula is processing the {\bf /} directory. This message does not
+ indicate an error. This message means that while examining the
+ {\bf File =} referred to in the second part of the message, Bacula will
+ not descend into the directory mentioned in the first part of the message.
+ However, it is possible that the separate filesystem will be backed up
+ despite the message. For example, consider the following FileSet:
+
+\footnotesize
+\begin{verbatim}
+ File = /
+ File = /var
+\end{verbatim}
+\normalsize
+
+ where {\bf /var} is a separate filesystem. In this example, you will get a
+ message saying that Bacula will not decend from {\bf /} into {\bf /var}. But
+ it is important to realise that Bacula will descend into {\bf /var} from the
+ second File directive shown above. In effect, the warning is bogus,
+ but it is supplied to alert you to possible omissions from your FileSet. In
+ this example, {\bf /var} will be backed up. If you changed the FileSet such
+ that it did not specify {\bf /var}, then {\bf /var} will not be backed up.
+
+
\label{portable}
\item [portable=yes|no]
\index[dir]{portable}
\index[dir]{Directive!portable}
- If set to {\bf yes} (default is {\bf no}), the Bacula File daemon will backup
- Win32 files in a portable format, but not all Win32 file attributes will be
- saved and restored. By default, this option is set to {\bf no}, which means
- that on Win32 systems, the data will be backed up using Windows API calls and
- on WinNT/2K/XP, all the security and ownership attributes will be properly
- backed up (and restored). However this format is not portable to other
- systems -- e.g. Unix, Win95/98/Me. When backing up Unix systems, this option
- is ignored, and unless you have a specific need to have portable backups, we
- recommend accept the default ({\bf no}) so that the maximum information
- concerning your files is saved.
+ If set to {\bf yes} (default is {\bf no}), the Bacula File daemon will
+ backup Win32 files in a portable format, but not all Win32 file
+ attributes will be saved and restored. By default, this option is set
+ to {\bf no}, which means that on Win32 systems, the data will be backed
+ up using Windows API calls and on WinNT/2K/XP, all the security and
+ ownership attributes will be properly backed up (and restored). However
+ this format is not portable to other systems -- e.g. Unix, Win95/98/Me.
+ When backing up Unix systems, this option is ignored, and unless you
+ have a specific need to have portable backups, we recommend accept the
+ default ({\bf no}) so that the maximum information concerning your files
+ is saved.
\item [recurse=yes|no]
\index[dir]{recurse}
\index[dir]{Directive!recurse}
- If set to {\bf yes} (the default), Bacula will recurse (or descend) into all
- subdirectories found unless the directory is explicitly excluded using an
- {\bf exclude} definition. If you set {\bf recurse=no}, Bacula will save the
- subdirectory entries, but not descend into the subdirectories, and thus will
- not save the files or directories contained in the subdirectories. Normally,
- you will want the default ({\bf yes}).
+ If set to {\bf yes} (the default), Bacula will recurse (or descend) into
+ all subdirectories found unless the directory is explicitly excluded
+ using an {\bf exclude} definition. If you set {\bf recurse=no}, Bacula
+ will save the subdirectory entries, but not descend into the
+ subdirectories, and thus will not save the files or directories
+ contained in the subdirectories. Normally, you will want the default
+ ({\bf yes}).
\item [sparse=yes|no]
\index[dir]{sparse}
exec > /dev/null
\end{verbatim}
+\item [noatime=yes|no]
+\index[dir]{noatime}
+\index[dir]{Directive!noatime}
+ If enabled, and if your Operating System supports the O_NOATIME file
+ open flag, Bacula will open all files to be backed up with this option.
+ It makes it possible to read a file without updating the inode atime
+ (and also without the inode ctime update which happens if you try to set
+ the atime back to its previous value). It also prevents a race
+ condition when two programs are reading the same file, but only one does
+ not want to change the atime. It's most useful for backup programs and
+ file integrity checkers (and bacula can fit on both categories).
+
+ This option is particularly useful for sites where users are sensitive
+ to their MailBox file access time. It replaces both the {\bf keepatime}
+ option without the inconvienences of that option (see below).
+
+ If your Operating System does not support this option, it will be
+ silently ignored by Bacula.
+
\item [mtimeonly=yes|no]
\index[dir]{mtimeonly}
\item [hardlinks=yes|no]
\index[dir]{hardlinks}
\index[dir]{Directive!hardlinks}
- When enabled (default), this directive will cause hard inks to be
+ When enabled (default), this directive will cause hard links to be
backed up. However, the File daemon keeps track of hard linked files and
will backup the data only once. The process of keeping track of the
hard links can be quite expensive if you have lots of them (tens of
Multiple wild-card directives may be specified, and they will be applied
in turn until the first one that matches. Note, if you exclude a
directory, no files or directories below it will be matched.
- It is recommended to enclose the string in double quotes.
-\item [wildfile=\lt{}string\gt{}]
-\index[dir]{wildfile}
-\index[dir]{Directive!wildfile}
- Specifies a wild-card string to be applied to filenames only. No
- directories will be matched by this directive. Note, if {\bf Exclude}
- is not enabled, the wild-card will select which files are to be
- included. If {\bf Exclude=yes} is specified, the wild-card will select
- which files are to be excluded. Multiple wild-card directives may be
- specified, and they will be applied in turn until the first one that
- matches.
+ You may want to test your expressions prior to running your
+ backup by using the bwild program. Please see the
+ \ilink{UtilitiesChapter}{Utilities} chapter of this manual for
+ more. You can also test your full FileSet definition by using
+ the \ilink{estimate}{Estimate} command in the Console
+ chapter of this manual.
It is recommended to enclose the string in double quotes.
- An example of excluding with the WildFile option on Win32 machines is
- presented below.
\item [wilddir=\lt{}string\gt{}]
\index[dir]{wilddir}
specified, and they will be applied in turn until the first one that
matches. Note, if you exclude a directory, no files or directories
below it will be matched.
+
It is recommended to enclose the string in double quotes.
+
+ You may want to test your expressions prior to running your
+ backup by using the bwild program. Please see the
+ \ilink{UtilitiesChapter}{Utilities} chapter of this manual for
+ more. You can also test your full FileSet definition by using
+ the \ilink{estimate}{Estimate} command in the Console
+ chapter of this manual.
An example of excluding with the WildDir option on Win32 machines is
presented below.
+\item [wildfile=\lt{}string\gt{}]
+\index[dir]{wildfile}
+\index[dir]{Directive!wildfile}
+ Specifies a wild-card string to be applied to non-directories. That
+ is no directory entries will be matched by this directive.
+ However, note that the match is done against the full path and filename,
+ so your wild-card string must take into account that filenames
+ are preceded by the full path.
+ If {\bf Exclude}
+ is not enabled, the wild-card will select which files are to be
+ included. If {\bf Exclude=yes} is specified, the wild-card will select
+ which files are to be excluded. Multiple wild-card directives may be
+ specified, and they will be applied in turn until the first one that
+ matches.
+
+ It is recommended to enclose the string in double quotes.
+
+ You may want to test your expressions prior to running your
+ backup by using the bwild program. Please see the
+ \ilink{UtilitiesChapter}{Utilities} chapter of this manual for
+ more. You can also test your full FileSet definition by using
+ the \ilink{estimate}{Estimate} command in the Console
+ chapter of this manual.
+ An example of excluding with the WildFile option on Win32 machines is
+ presented below.
+
\item [regex=\lt{}string\gt{}]
\index[dir]{regex}
\index[dir]{Directive!regex}
Specifies a POSIX extended regular expression to be applied to the
- filenames and directory names.
- This directive is available in version 1.35 and later. If {\bf
+ filenames and directory names, which include the full path. If {\bf
Exclude} is not enabled, the regex will select which files are to be
included. If {\bf Exclude=yes} is specified, the regex will select
which files are to be excluded. Multiple regex directives may be
specified within an Options resource, and they will be applied in turn
- until the first one that matches. Note, if you exclude a
- directory, no files or directories below it will be matched.
+ until the first one that matches. Note, if you exclude a directory, no
+ files or directories below it will be matched.
+
It is recommended to enclose the string in double quotes.
The regex libraries differ from one operating system to
another, and in addition, regular expressions are complicated,
so you may want to test your expressions prior to running your
- backup by using the regex program. Please see the
+ backup by using the bregex program. Please see the
\ilink{UtilitiesChapter}{Utilities} chapter of this manual for
- more.
+ more. You can also test your full FileSet definition by using
+ the \ilink{estimate}{Estimate} command in the Console
+ chapter of this manual.
\item [regexfile=\lt{}string\gt{}]
\index[dir]{regexfile}
\index[dir]{Directive!regexfile}
- Specifies a POSIX extended regular expression to be applied to filenames
- only. No directories will be matched by this directive. Note, if {\bf
- Exclude} is not enabled, the regex will select which files are to be
- included. If {\bf Exclude=yes} is specified, the regex will select
- which files are to be excluded. Multiple regex directives may be
+ Specifies a POSIX extended regular expression to be applied to
+ non-directories. No directories will be matched by this directive.
+ However, note that the match is done against the full path and
+ filename, so your regex string must take into account that filenames
+ are preceded by the full path.
+ If {\bf Exclude} is not enabled, the regex will select which files are
+ to be included. If {\bf Exclude=yes} is specified, the regex will
+ select which files are to be excluded. Multiple regex directives may be
specified, and they will be applied in turn until the first one that
matches.
+
It is recommended to enclose the string in double quotes.
The regex libraries differ from one operating system to
another, and in addition, regular expressions are complicated,
so you may want to test your expressions prior to running your
- backup by using the regex program. Please see the
+ backup by using the bregex program. Please see the
\ilink{UtilitiesChapter}{Utilities} chapter of this manual for
more.
regex directives may be specified, and they will be applied in turn
until the first one that matches. Note, if you exclude a directory, no
files or directories below it will be matched.
+
It is recommended to enclose the string in double quotes.
The regex libraries differ from one operating system to
another, and in addition, regular expressions are complicated,
so you may want to test your expressions prior to running your
- backup by using the regex program. Please see the
+ backup by using the bregex program. Please see the
\ilink{UtilitiesChapter}{Utilities} chapter of this manual for
more.
\item [exclude=yes|no]
\index[dir]{exclude}
\index[dir]{Directive!exclude}
- The default is {\bf no}. When enabled, any files matched within the Options
- will be excluded from the backup.
+ The default is {\bf no}. When enabled, any files matched within the
+ Options will be excluded from the backup.
\label{ACLSupport}
\item [ignore case=yes|no]
\index[dir]{ignore case}
\index[dir]{Directive!ignore case}
- The default is {\bf no}, except on Windows systems where the default
- is {\bf yes}. When this directive is set to {\bf yes} all the case
- of character will be ignored in wild-card and regex comparisons.
- That is an uppercase A will match a lowercase a.
+ The default is {\bf no}. On Windows systems, you will almost surely
+ want to set this to {\bf yes}. When this directive is set to {\bf yes}
+ all the case of character will be ignored in wild-card and regex
+ comparisons. That is an uppercase A will match a lowercase a.
\item [fstype=filesystem-type]
\index[dir]{fstype}
{\bf \lt{}file-list\gt{}} is a list of directory and/or filename names
specified with a {\bf File =} directive. To include names containing spaces,
-enclose the name between double-quotes.
+enclose the name between double-quotes. Wild-cards are not interpreted
+in file-lists. They can only be specified in Options resources.
There are a number of special cases when specifying directories and files in a
{\bf file-list}. They are:
you must ensure that there is a reader program or Bacula will block, and
after one minute, Bacula will time out the write to the fifo and move on
to the next file.
+
+\item A file-list may not contain wild-cards. Use directives in the
+ Options resource if you wish to specify wild-cards or regular expression
+ matching.
\end{itemize}
\subsubsection*{FileSet Examples}
Options {
wilddir = /proc
wilddir = /tmp
- wildfile = ".journal"
- wildfile = ".autofsck"
+ wildfile = "/.journal"
+ wildfile = "/.autofsck"
exclude = yes
}
File = /
\normalsize
\label{win32}
-
\subsubsection*{Windows FileSets}
\index[general]{Windows FileSets }
\index[general]{FileSets!Windows }
\begin{itemize}
\item Filenames are case sensitive, so you must use the correct case.
-\item To exclude a directory, you must not have a trailing slash on the
+\item To 2~exclude a directory, you must not have a trailing slash on the
directory name.
-\item If you have spaces in your filename, you must enclose the entire name
+\item I2~f you have spaces in your filename, you must enclose the entire name
in double-quote characters ("). Trying to use a backslash before the space
will not work.
-\item If you are using the old Exclude syntax (noted below), you may not
- specify a drive letter in the exclude. The new syntax noted above should work
- fine including driver letters.
+\item If you are using the old Exclude syntax (noted below), you may not
+ specify a drive letter in the exclude. The new syntax noted above
+ should work fine including driver letters.
\end{itemize}
Thanks to Thiago Lima for summarizing the above items for us. If you are
exclusion rules will work correctly, you can test it by using the {\bf
estimate} command in the Console program. See the
\ilink{estimate command}{estimate} in the Console chapter of this
-manual.
+manual.
+
+As an example, suppose you add the following test FileSet:
+
+\footnotesize
+\begin{verbatim}
+FileSet {
+ Name = Test
+ Include {
+ File = /home/xxx/test
+ Options {
+ regex = ".*\.c$"
+ }
+ }
+}
+\end{verbatim}
+\normalsize
+
+You could then add some test files to the directory {\bf /home/xxx/test}
+and use the following command in the console:
+
+\footnotesize
+\begin{verbatim}
+estimate job=<any-job-name> listing client=<desired-client> fileset=Test
+\end{verbatim}
+\normalsize
+
+to give you a listing of all files that match.