notebook} and choose output encoding UTF-8.
To ensure that Bacula configuration files can be correctly read including
-foreign characters the {bf LANG} environment variable
-must end in {\bf .UTF-8}. An full example is {\bf en\_US.UTF-8}. The
+foreign characters the {\bf LANG} environment variable
+must end in {\bf .UTF-8}. A full example is {\bf en\_US.UTF-8}. The
exact syntax may vary a bit from OS to OS, and exactly how you define
it will also vary.
\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{} \} }
+\index[dir]{Options \{ \lt{}file-options\gt{} \} }
\item [Exclude \{ \lt{}file-list\gt{} \}]
\index[dir]{Exclude \{ \lt{}file-list\gt{} \} }
\footnotesize
\begin{verbatim}
Include {
+ Options { compression=GZIP }
File = /
File = /usr
- Options { compression=GZIP }
}
\end{verbatim}
\normalsize
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
+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
You can overwrite this option per Storage resource with
\ilink{AllowCompression}{AllowCompression} option.
+\item [compression=LZO]
+\index[dir]{compression}
+\index[dir]{Directive!compression}
+ All files saved will be software compressed using the LZO
+ compression format. The compression is done on a file by file basis by
+ the File daemon. Everything else about GZIP is true for LZO.
+
+ LZO provides much faster compression and decompression speed but lower
+ compression ratio than GZIP. If your CPU is fast enough you should be able
+ to compress your data without making the backup duration longer.
+
+ Note that bacula only use one compression level LZO1X-1 specified by LZO.
+
+ You can overwrite this option per Storage resource with
+ \ilink{AllowCompression}{AllowCompression} option.
+
\item [signature=SHA1]
\index[dir]{signature}
\index[dir]{SHA1}
\index[dir]{Directive!basejob}
The options letters specified are used when running a {\bf Backup Level=Full}
-with BaseJobs. The options letters are the same than in the \textbf{verify=}
-option below.
+with BaseJobs. The options letters are the same as in the \textbf{verify=}
+options below.
-\item[accurate=\lt{}options\gt{}]
-\index[dir]{accurate}
-\index[dir]{Directive!accurate}
- The options letters specified are used when running a {\bf Backup
- Level=Incremental/Differential} in Accurate mode. The options
- letters are the same than in the \textbf{verify=} option below.
+\item[accurate=\lt{}options\gt{}] \index[dir]{accurate}
+ \index[dir]{Directive!accurate} The options letters specified are used when
+ running a {\bf Backup Level=Incremental/Differential} in Accurate mode. The
+ options letters are the same as in the \textbf{verify=} directive below.
\item [verify=\lt{}options\gt{}]
\index[dir]{verify}
\item {\bf 1}
compare the SHA1 signature
+
+ \item {\bf A}
+ Only for Accurate option, it allows to always backup the file
+
\end{description}
A useful set of general options on the {\bf Level=Catalog} or {\bf
- Level=DiskToCatalog} verify is {\bf pins5} i.e. compare permission bits,
- inodes, number of links, size, and MD5 changes.
+ Level=DiskToCatalog} verify is {\bf pins5} i.e. compare permission bits, then
+ inodes, number of links, size, and finally MD5 changes.
\item [onefs=yes\vb{}no]
\index[dir]{onefs}
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
+ Bacula 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:
\end{verbatim}
\normalsize
- Note: in previous versions of Bacula, the above message was of the form:
+ Note: in older versions of Bacula, the above message was of the form:
\footnotesize
\begin{verbatim}
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 that "/home is a different filesystem" when
+ 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
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
+ up using Windows BackupRead API calls and 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.
+ this format is not portable to other systems -- e.g. Unix, and
+ very old Win95/98/Me systems.
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.
+ default ({\bf no}) so that the maximum information concerning your
+ Windows files is saved.
\item [recurse=yes\vb{}no]
\index[dir]{recurse}
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.
No harm will be done, but there will be a small additional overhead to
- check for buffers of all zero, and a small additional amount of space on
- the output archive will be used to save the seek address of each
- non-zero record read.
+ check for buffers of all zero, and if there is a 32K block of all zeros
+ (see below), that block will become a hole in the file, which
+ may not be desirable if the original file was not a sparse file.
{\bf Restrictions:} Bacula reads files in 32K buffers. If the whole
buffer is zero, it will be treated as a sparse block and not written to
benchmark the difference or set sparse for only those files that are
really sparse.
+ You probably should not use this option on files or raw disk devices
+ that are not really sparse files (i.e. have holes in them).
+
\label{readfifo}
\item [readfifo=yes\vb{}no]
\index[dir]{readfifo}
You may want to test your expressions prior to running your
backup by using the bwild program. Please see the
- \ilink{Utilities}{bwild} 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.
+ \borgxrlink{Utilities}{bwild}{utility}{chapter} of the \utilityman{} for
+ more information. You can also test your full FileSet definition by using
+ the \borgxrlink{estimate}{estimate}{console}{command} in the \consoleman{}.
It is recommended to enclose the string in double quotes.
\item [wilddir=\lt{}string\gt{}]
You may want to test your expressions prior to running your
backup by using the bwild program. Please see the
- \ilink{Utilities}{bwild} 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.
+ \borgxrlink{Utilities}{bwild}{utility}{chapter} of the \utilityman{} for
+ more information. You can also test your full FileSet definition by using
+ the \borgxrlink{estimate}{estimate}{console}{command} in the \consoleman{}.
An example of excluding with the WildDir option on Win32 machines is
presented below.
You may want to test your expressions prior to running your
backup by using the bwild program. Please see the
- \ilink{Utilities}{bwild} 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
+ \borgxrlink{Utilities}{bwild}{utility}{chapter} of the \utilityman{} for
+ more information. You can also test your full FileSet definition by using
+ the \borgxrlink{estimate}{estimate}{console}{command} in the \consoleman{}.
+ 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}
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{Utilities}{bwild} 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.
+ \borgxrlink{Utilities}{bwild}{utility}{chapter} of the \utilityman{} for
+ more information. You can also test your full FileSet definition by using
+ the \borgxrlink{estimate}{estimate}{console}{command} in the \consoleman{}.
You find yourself using a lot of Regex statements, which will cost quite a lot
of CPU time, we recommend you simplify them if you can, or better yet
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{Utilities}{bregex} chapter of this manual for
- more.
+ \borgxrlink{bregex}{bregex}{utility}{command} of the \utilityman{} more.
\item [regexdir=\lt{}string\gt{}]
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{Utilities}{bregex} chapter of this manual for
- more.
+ \borgxrlink{bregex}{bregex}{utility}{command} of the \utilityman{} more.
\item [exclude=yes\vb{}no]
\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
- 1003.1e draft 17 and "POSIX.1e" (abandoned). This feature is
- available on UNIX only and depends on the ACL library. Bacula is
+ POSIX {\bf libacl} installed on your Linux system, Bacula will backup the
+ file and directory Unix Access Control Lists (ACL) as defined in IEEE Std
+ 1003.1e draft 17 and ``POSIX.1e'' (abandoned). This feature is
+ available on Unix systems only and requires the Linux ACL library. Bacula is
automatically compiled with ACL support if the {\bf libacl} library is
- installed on your system (shown in config.out). While restoring the
+ installed on your Linux system (shown in config.out). While restoring the
files Bacula will try to restore the ACLs, if there is no ACL support
available on the system, Bacula restores the files and directories but
not the ACL information. Please note, if you backup an EXT3 or XFS
filesystem with ACLs, then you restore them to a different filesystem
(perhaps reiserfs) that does not have ACLs, the ACLs will be ignored.
+ For other operating systems there is support for either POSIX ACLs or
+ the more extensible NFSv4 ACLs.
+
+ The ACL stream format between Operation Systems is \textbf{not}
+ compatible so for example an ACL saved on Linux cannot be restored on
+ Solaris.
+
+ The following Operating Systems are currently supported:
+
+ \begin{enumerate}
+ \item AIX (pre-5.3 (POSIX) and post 5.3 (POSIX and NFSv4) ACLs)
+ \item Darwin
+ \item FreeBSD (POSIX and NFSv4/ZFS ACLs)
+ \item HPUX
+ \item IRIX
+ \item Linux
+ \item Solaris (POSIX and NFSv4/ZFS ACLs)
+ \item Tru64
+ \end{enumerate}
+
+\label{XattrSupport}
+\item [xattrsupport=yes\vb{}no]
+\index[dir]{xattrsupport}
+\index[dir]{Directive!xattrsupport}
+ The default is {\bf no}. If this option is set to yes, and your
+ operating system support either so called Extended Attributes or
+ Extensible Attributes Bacula will backup the file and directory
+ XATTR data. This feature is available on UNIX only and depends on
+ support of some specific library calls in libc.
+
+ The XATTR stream format between Operating Systems is {\bf not}
+ compatible so an XATTR saved on Linux cannot for example be restored
+ on Solaris.
+
+ On some operating systems ACLs are also stored as Extended Attributes
+ (Linux, Darwin, FreeBSD) Bacula checks if you have the aclsupport
+ option enabled and if so will not save the same info when saving
+ extended attribute information. Thus ACLs are only saved once.
+
+ The following Operating Systems are currently supported:
+
+ \begin{enumerate}
+ \item AIX (Extended Attributes)
+ \item Darwin (Extended Attributes)
+ \item FreeBSD (Extended Attributes)
+ \item IRIX (Extended Attributes)
+ \item Linux (Extended Attributes)
+ \item NetBSD (Extended Attributes)
+ \item Solaris (Extended Attributes and Extensible Attributes)
+ \item Tru64 (Extended Attributes)
+ \end{enumerate}
+
\item [ignore case=yes\vb{}no]
\index[dir]{ignore case}
\index[dir]{Directive!ignore case}
filesystem type. The permitted filesystem-type names are:
ext2, jfs, ntfs, proc, reiserfs, xfs, usbdevfs, sysfs, smbfs,
- iso9660. For ext3 systems, use ext2.
+ iso9660.
You may have multiple Fstype directives, and thus permit matching
of multiple filesystem types within a single Options resource. If
non-local filesystems. Normally, when you use this directive, you
would also set {\bf onefs=no} so that Bacula will traverse filesystems.
- This option is not implemented in Win32 systems.
-
\item [DriveType=Windows-drive-type]
\index[dir]{DriveType}
\index[dir]{Directive!DriveType}
\begin{itemize}
\item Any name preceded by an at-sign (@) is assumed to be the name of a
- file, which contains a list of files each preceded by a "File =". The
+ file, which contains a list of files each preceded by a ``File =''. The
named file is read once when the configuration file is parsed during the
Director startup. Note, that the file is read on the Director's machine
and not on the Client's. In fact, the @filename can appear anywhere
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}{RescueChapter} chapter of
+ disk, then load a statically linked Bacula as described in the \ilink{Disaster Recovery Using Bacula}{RescueChapter} 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.
and go on to the next file. The data read can be anything since Bacula
treats it as a stream.
- This feature can be an excellent way to do a "hot" backup of a very
+ This feature can be an excellent way to do a ``hot'' backup of a very
large database. You can use the {\bf RunBeforeJob} to create the fifo
and to start a program that dynamically reads your database and writes
it to the fifo. Bacula will then write it to the Volume. Be sure to
File = /usr/lib/another_file
}
Exclude {
- File = /tmp
+ File = /tmp # don't add trailing /
}
}
\end{verbatim}
\end{verbatim}
\normalsize
-The "trick" here was to add a RegexFile expression that matches
+The ``trick'' here was to add a RegexFile expression that matches
all files. It does not match directory names, so all directories in
/myfile will be backed up (the directory entry) and any *.Z and *.gz
files contained in them. If you know that certain directories do
To understand how this can be achieved, there are two important points to
remember:
-Firstly, Bacula walks over the filesystem depth-first starting from the File =
-lines. It stops descending when a directory is excluded, so you must include
-all ancestor directories of each directory containing files to be included.
+Firstly, Bacula traverses the filesystem starting from the File = lines.
+It stops descending when a directory is excluded, so you must include all
+ancestor (higher level) directories of each directory containing files to
+be included.
Secondly, each directory and file is compared to the Options clauses in the
-order they appear in the FileSet. When a match is found, no further clauses
+order they appear in the FileSet. When a match is found, no further Optionss
are compared and the directory or file is either included or excluded.
The FileSet resource definition below implements this by including specifc
You may also include full filenames or directory names in addition to using
wild-cards and {\bf Exclude=yes} in the Options resource as specified above by
simply including the files to be excluded in an Exclude resource within the
-FileSet. For example:
+FileSet. It accepts wild-cards pattern, so for a directory, don't add a trailing
+/. For example:
\footnotesize
\begin{verbatim}
}
Exclude {
File = /proc
- File = /tmp
+ File = /tmp # Don't add trailing /
File = .journal
File = .autofsck
}
specified in Unix convention (i.e. forward slash (/)). If you wish to include
a quote in a file name, precede the quote with a backslash
(\textbackslash{}). For example you might use the following
-for a Windows machine to backup the "My Documents" directory:
+for a Windows machine to backup the ``My Documents'' directory:
\footnotesize
\begin{verbatim}
Thanks to Thiago Lima for summarizing the above items for us. If you are
having difficulties getting includes or excludes to work, you might want to
try using the {\bf estimate job=xxx listing} command documented in the
-\ilink{Console chapter}{estimate} of this manual.
+\borgxrlink{estimate}{estimate}{console}{command} of \consoleman{}.
On Win32 systems, if you move a directory or file or rename a file into the
set of files being backed up, and a Full backup has already been made, Bacula
If you wish to get an idea of what your FileSet will really backup or if your
exclusion rules will work correctly, you can test it by using the {\bf
estimate} command in the Console program. See the
-\ilink{estimate}{estimate} in the Console chapter of this
-manual.
+\borgxrlink{estimate}{estimate}{console}{command} of \consoleman{}.
As an example, suppose you add the following test FileSet:
Include {
File = /home/xxx/test
Options {
- regex = ".*\.c$"
+ regex = ".*\\.c$"
}
}
}
\end{verbatim}
\normalsize
-to give you a listing of all files that match.
+to give you a listing of all files that match. In the above
+example, it should be only files with names ending in {\bf .c}.