-%%
+-%
%%
\subsection*{The FileSet Resource}
\label{FileSetResource}
-\index[general]{Resource!FileSet }
-\index[general]{FileSet Resource }
+\index[general]{Resource!FileSet}
+\index[general]{FileSet Resource}
\addcontentsline{toc}{subsection}{FileSet Resource}
The FileSet resource defines what files are to be included or excluded in a
\begin{description}
\item [FileSet]
-\index[dir]{FileSet }
+\index[dir]{FileSet}
+\index[dir]{Directive!FileSet}
Start of the FileSet resource. One {\bf FileSet} resource must be
defined for each Backup job.
\item [Name = \lt{}name\gt{}]
-\index[dir]{Name }
-The name of the FileSet resource. This directive is required.
+\index[dir]{Name}
+\index[dir]{Directive!Name}
+ The name of the FileSet resource. This directive is required.
\item [Ignore FileSet Changes = \lt{}yes|no\gt{}]
\index[dir]{Ignore FileSet Changes}
- 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. This directive is available in Bacula version 1.35.4 or later.
+\index[dir]{Directive!Ignore FileSet Changes}
+ Normally, if you modify the FileSet Include or Exclude lists,
+ 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.
\item [Enable VSS = \lt{}yes|no\gt{}]
\index[dir]{Enable VSS}
+\index[dir]{Directive!Enable VSS}
If this directive is set to {\bf yes} the File daemon will be notified
that the user wants to use a Volume Shadow Copy Service (VSS) backup
for this job. The default is {\bf no}. This directive is effective
\lt{}file-list\gt{} \} ]
\index[dir]{Include \{ [ Options \{\lt{}file-options\gt{}\} ...]
\lt{}file-list\gt{} \} }
+\index[dir]{Directive!Include}
\item [Options \{ \lt{}file-options\gt{} \} ]
\index[dir]{Options \{ \lt{}file-options\gt{} \} }
\item [Exclude \{ \lt{}file-list\gt{} \}]
\index[dir]{Exclude \{ \lt{}file-list\gt{} \} }
+\index[dir]{Directive!Exclude}
\end{description}
Note, see below for the definition of \lt{}file-list\gt{}.
The Include resource may also contain one or more Options resources that
specify options such as compression to be applied to all or any subset of
-the files found for backup.
+the files found when processing the file-list for backup. Please see
+below for more details concerning Options resources.
There can be any number of {\bf Include} resources within the FileSet, each
having its own list of directories or files to be backed up and the backup
consists of one file or directory name per line. Directory names should be
specified without a trailing slash with Unix path notation.
+Windows users, please take note to specify directories (even c:/...) in
+Unix path notation. If you use Windows conventions, you will most likely
+not be able to restore your files due to the fact that the Windows
+path separator was defined as an escape character long before Windows
+existed, and Bacula adheres to that convention (i.e. \\ means the next character
+appears as itself).
+
You should always specify a full path for every directory and file that you
list in the FileSet. In addition, on Windows machines, you should {\bf
always} prefix the directory or filename with the drive specification in
Multiple Options resources may be specified one after another. As the
files are found in the specified directories, the Options will applied to
the filenames to determine if and how the file should be backed up. The
-Options resources are applied in the order they are specified in the
-FileSet until the first one that matches.
+wildcard and regular expression pattern matching parts of the
+Options resources are checked in the order they are specified in the
+FileSet until the first one that matches. Once one matches, the
+compression and other flags within the Options specification will
+apply to the pattern matched.
+
+A key point is that in the absence of an Option or no other Option is
+matched, every file is accepted for backing up. This means that if
+you want to exclude something, you must explicitly specify an Option
+with an {\bf exclude = yes} and some pattern matching.
Once Bacula determines that the Options resource matches the file under
consideration, that file will be saved without looking at any other Options
resources that may be present. This means that any wild cards must appear
before an Options resource without wild cards.
-If for some reason, Bacula applies all the Options resources to a file
-under consideration for backup, but there are no matches (generally because
-of wild cards that don't match), Bacula as a default will then backup the
-file. This is quite logical if you consider the case of no Options, where
-you want everything to be backed up.
+If for some reason, Bacula checks all the Options resources to a file under
+consideration for backup, but there are no matches (generally because of wild
+cards that don't match), Bacula as a default will then backup the file. This
+is quite logical if you consider the case of no Options clause is specified,
+where you want everything to be backed up, and it is important to keep in mind
+when excluding as mentioned above.
-However, one additional point is that
-in the case that no match was found, Bacula will use the options found in
-the last Options resource. As a consequence, if you want a particular set
-of "default" options, you should put them in an Options resource after
-any other Options.
+However, one additional point is that in the case that no match was found,
+Bacula will use the options found in the last Options resource. As a
+consequence, if you want a particular set of "default" options, you should put
+them in an Options resource after any other Options.
It is a good idea to put all your wild-card and regex expressions inside
double quotes to prevent conf file scanning problems.
\begin{description}
\item [compression=GZIP]
-\index[fd]{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.
+\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.
\item [signature=SHA1]
-\index[fd]{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.
+\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.
\item [signature=MD5]
- \index[fd]{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[fd]{verify }
+\index[dir]{verify}
+\index[dir]{Directive!verify}
The options letters specified are used when running a {\bf Verify
Level=Catalog} as well as the {\bf DiskToCatalog} level job. The options
letters may be any combination of the following:
inodes, number of links, size, and MD5 changes.
\item [onefs=yes|no]
-\index[fd]{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:
+\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:
\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
+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}
+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
also be backed up. Normally, it is preferable to set {\bf onefs=yes} and to
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 possiblity is to
- use {\bf onefs=no} and to set {\bs fstype=ext2, ...}.
+ infinite loop recursing filesystems. Another possibility is to
+ 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 }
- 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.
+\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.
\item [recurse=yes|no]
-\index[fd]{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}).
+\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}).
\item [sparse=yes|no]
-\index[dir]{sparse }
+\index[dir]{sparse}
+\index[dir]{Directive!sparse}
Enable special code that checks for sparse files such as created by
ndbm. The default is {\bf no}, so no checks are made for sparse files.
You may specify {\bf sparse=yes} even on files that are not sparse file.
\label{readfifo}
\item [readfifo=yes|no]
-\index[fd]{readfifo }
+\index[dir]{readfifo}
+\index[dir]{Directive!readfifo}
If enabled, tells the Client to read the data on a backup and write the
data on a restore to any FIFO (pipe) that is explicitly mentioned in the
FileSet. In this case, you must have a program already running that
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 }
+\index[dir]{mtimeonly}
+\index[dir]{Directive!mtimeonly}
If enabled, tells the Client that the selection of files during
Incremental and Differential backups should based only on the st\_mtime
value in the stat() packet. The default is {\bf no} which means that
to use this option.
\item [keepatime=yes|no]
-\index[dir]{keepatime }
+\index[dir]{keepatime}
+\index[dir]{Directive!keepatime}
The default is {\bf no}. When enabled, Bacula will reset the st\_atime
(access time) field of files that it backs up to their value prior to
the backup. This option is not generally recommended as there are very
\item [hardlinks=yes|no]
\index[dir]{hardlinks}
- When enabled (default), this directive will cause hard inks to be
+\index[dir]{Directive!hardlinks}
+ 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
system will not be restored identically to the original.
\item [wild=\lt{}string\gt{}]
-\index[dir]{wild }
+\index[dir]{wild}
+\index[dir]{Directive!wild}
Specifies a wild-card string to be applied to the filenames and
directory names. Note, if {\bf Exclude} is not enabled, the wild-card
will select which files are to be included. If {\bf Exclude=yes} is
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 }
- 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.
\item [wilddir=\lt{}string\gt{}]
-\index[dir]{wilddir }
+\index[dir]{wilddir}
+\index[dir]{Directive!wilddir}
Specifies a wild-card string to be applied to directory names only. No
filenames will be matched by this directive. Note, if {\bf Exclude} is
not enabled, the wild-card will select directories files are to 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.
+ 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]{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 bregex 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.
+
+
\item [regexfile=\lt{}string\gt{}]
-\index[dir]{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
+\index[dir]{regexfile}
+\index[dir]{Directive!regexfile}
+ 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 bregex program. Please see the
+ \ilink{UtilitiesChapter}{Utilities} chapter of this manual for
+ more.
+
+
\item [regexdir=\lt{}string\gt{}]
-\index[dir]{regexdir }
+\index[dir]{regexdir}
+\index[dir]{Directive!regexdir}
Specifies a POSIX extended regular expression to be applied to directory
names only. No filenames will be matched by this directive. Note, if
{\bf Exclude} is not enabled, the regex will select directories
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 bregex program. Please see the
+ \ilink{UtilitiesChapter}{Utilities} chapter of this manual for
+ more.
+
+
\item [exclude=yes|no]
-\index[dir]{exclude }
- The default is {\bf no}. When enabled, any files matched within the Options
- will be excluded from the backup.
+\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.
\label{ACLSupport}
\item [aclsupport=yes|no]
-\index[dir]{aclsupport }
+\index[dir]{aclsupport}
+\index[dir]{Directive!aclsupport}
The default is {\bf no}. If this option is set to yes, and you have the
POSIX {\bf libacl} installed on your system, Bacula will backup the file
and directory UNIX Access Control Lists (ACL) as defined in IEEE Std
(perhaps reiserfs) that does not have ACLs, the ACLs will be ignored.
\item [ignore case=yes|no]
-\index[dir]{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.
+\index[dir]{ignore case}
+\index[dir]{Directive!ignore case}
+ 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 }
+\index[dir]{fstype}
+\index[dir]{Directive!fstype}
This option allows you to select files and directories by the
filesystem type. The permitted filesystem-type names are:
\item [hfsplussupport=yes|no]
-\index[dir]{hfsplussupport }
+\index[dir]{hfsplussupport}
+\index[dir]{Directive!hfsplussupport}
This option allows you to turn on support for Mac OSX HFS plus
finder information.
{\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:
Ludovic Strappazon has pointed out that this feature can be used to backup a
full Microsoft Windows disk. Simply boot into the system using a Linux Rescue
disk, then load a statically linked Bacula as described in the
- \ilink{ Disaster Recovery Using Bacula}{_ChapterStart38} chapter of
+ \ilink{ Disaster Recovery Using Bacula}{_ChapterRescue} chapter of
this manual. Then save the whole disk partition. In the case of a disaster,
you can then restore the desired partition by again booting with the rescue
disk and doing a restore of the partition.
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 = /
be backed up too (i.e. that is the default rule).
To accomplish what we want, we must explicitly exclude all other files.
-We do this with the fillowing:
+We do this with the following:
\footnotesize
\begin{verbatim}
}
Options {
Exclude = yes
- RegexFile = "^.?*$"
+ RegexFile = ".*"
}
File = /myfile
}
case, you will get yourself into a recursive loop and the backup will never
end.
+As a final example, let's say that you have only one or two
+subdirectories of /home that you want to backup. For example,
+you want to backup only subdirectories beginning with the letter
+a and the letter b -- i.e. /home/a* and /home/b*. Now, you might first
+try:
+\footnotesize
+\begin{verbatim}
+FileSet {
+ Name = "Full Set"
+ Include {
+ Options {
+ wilddir = "/home/a*"
+ wilddir = "/home/b*"
+ }
+ File = /home
+ }
+}
+\end{verbatim}
+\normalsize
+
+The problem is that the above will include everything in /home. To get
+things to work correctly, you need to start with the idea of exclusion
+instead of inclusion. So, you could simply exclude all directories
+except the two you want to use:
+\footnotesize
+\begin{verbatim}
+FileSet {
+ Name = "Full Set"
+ Include {
+ Options {
+ RegexDir = "^/home/[c-z]"
+ exclude = yes
+ }
+ File = /home
+ }
+}
+\end{verbatim}
+\normalsize
+
+And assuming that all subdirectories start with a lowercase letter, this
+would work.
+
+An alternative would be to include the two subdirectories desired and
+exclude everything else:
+\footnotesize
+\begin{verbatim}
+FileSet {
+ Name = "Full Set"
+ Include {
+ Options {
+ wilddir = "/home/a*"
+ wilddir = "/home/b*"
+ }
+ Options {
+ RegexDir = ".*"
+ exclude = yes
+ }
+ File = /home
+ }
+}
+\end{verbatim}
+\normalsize
+
\subsubsection*{Backing up Raw Partitions}
\index[general]{Backing up!Partitions }
\index[general]{Backing up Raw Partitions }
\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.