NAME
hdup.conf - the hdup configuration file
DESCRIPTION
The configuration file syntax of hdup is borrowed from SaMBa (which is
more commonly known as an ini-style config file). A ’#’ as the first
character on a line is the start of a comment. Blank lines are skipped.
Multiple entries on a line must separated by commas: ",".
Some options can be turned on and off. These are binary options. All
binary option default to ’off’. They are turned on by ’yes’,’on’ or
’true’ and are turned off with ’no’, ’off’ or ’false’.
The [global] section is required to be the first section in the
configuration files. Options specified under [global] are also used in
[host] sections. They can overridden when they are also specified under
that [host] statement. This works for all options. Further to this, one
[host] statement can inherit from another [host] statement.
Config entries may be given multiple times, in that case the latest one
is taken as the final choice.
It is further best described by an example:
#
# backup config for hdup
#
[global]
archive dir = /tmp/storage/
compression = gzip
user = operator
proto = /usr/bin/ssh
proto option = -q -oProtocol=2
overwrite = yes
[host-name-a-conf]
dir = /var/www, /etc/cron.d
[host-name-a-root]
dir = /root/.cpan/Bundle
[host-name-a]
inherit = host-name-a-conf, host-name-a-root
allow remote = yes
[global]
The [global] section is required. The keywords specified under it are
used for each host (globally).
All keywords specified under [global] are inherited by the other hosts.
Ie. if you specify ’compression = gzip’ under global, all hosts who do
not redefine ’compression’ will use ’gzip’.
[host-name]
This is a host statement. For every host you want to back up there
should be a host statement. This is also true when you are restoring an
archive.
Host statements can inherit from other host statements. Any keywords
initialised for the original host, will append to, or overwrite, the
current keywords.
There is a maximum of 255 different hosts in 1 hdup configuration file.
Be aware that archive dir must be specified in the configuration file,
dir is only needed when performing backups. When restoring it is not
needed.
Keywords
The following keywords are supported: algorithm, allow remote, always
backup, archive dir, chunk size, compression,compression level, date
spec dir, exclude, force, free, group, gpg, include, inherit, key, log,
mcrypt, no history, ,nobackup, one filesystem, overwrite, postrun,
prerun, proto, proto option, remote hdup, remote hdup option, skip,
sparse, tar, tar option and user,
The only mandatory options are archive dir and dir. They must be
present for every host.
algorithm
Optional. What algorithm should hdup use when encrypting an
archive. If this is not specified the archive will not be
encrypted. Both ’algorithm’ and
’key’ must be present. For gpg encryption use gpg here.
allow remote
Optional, binary option. If ’on’ remote archives are allowed to
be uploaded from this host, otherwise they are denied.
always backup
Optional, binary option. When ’on’ hdup will always perform a
backup. Normally when an incfile is not found the backup is
aborted. What this option does is that if the backup scheme is
daily and no weekly incfile is found, hdup performs a weekly
backup. If hdup discovers no monthly incfile when doing a weekly
it performs a monthly dump.
archive dir
Mandatory. Specify what directory hdup should use to store the
archives and the (incremental) dump information.
chunk size
Optional. Give the size of the chunks hdup should create when
splitting up an archive. Size can be given with the suffix ’k’,
’K’ or ’m’, ’M’. Chunks of the archive get the suffix
’__split__XX’, where XX is a two letter sequence starting by
’aa’ and ending at ’zz’. To split up archive in CD sized
chunks, chunk size = 640m could be used.
compression
Optional. Specify the compression hdup should use. This can be
bzip, gzip, lzop or none. Defaults to gzip. Some explanation on
the difference might be appropiate here. bzip (which uses bzip2)
is slow but compresses the best, gzip is faster but offers less
compression. lzop is the fastest of them all while offering very
good compression. none is of course the fastest.
compression level
Optional. Specify the compression level, it’s an integer between
1 and 9 (inclusive), where 1 equals, fast operation, lousy
compression and 9 means best compression, but slow. When omitted
it defaults to 6.
Defaults to 6, which for all compression algorithms is the
standard default.
date spec
Optional. The following formats are supported:
default format will be ’DD-MM-YYYY’
iso format will be ’YYYY-MM-DD’
american format will be ’MM-DD-YYYYY’
dir Mandatory. Specify which directories or files should be backed
up. You can also specify a single file, like
/usr/src/linux/.config.
There can be up to 20 different directories specified. There can
only be 1 dir statement per host.
exclude
Optional. Specify a list with a regular expressions that should
be used to determine which files should not be backed up. See
regex(7) for more information about regular expressions. Also
see the section PATTERNS.
force Optional, binary option. When ’on’ a restore to / will be
allowed.
free Optional. With free you can specify how much free space must be
available on a partition. If this free space requirement is not
met, hdup will not perform the backup. Takes an optional size
modifier: ’k’, ’m’ or ’G’.
gpg Optional. The path to gpg. Defaults to the value of the
configure script.
group Optional. Specify the group under which the archives must be
stored. Defaults to whatever group ’user’ belongs to.
include
Optional. Specify a list with a regular expressions that should
be used to determine which files should be backed up. See
regex(7) for more information about regular expressions. Also
see the section PATTERNS. Included files take precedence on
exclude files.
inherit
Optional. Specify a list of hosts to inherit from. All keywords
specified will either overwrite (for single items) or append
(for lists) keywords for the current host. This allows creating
specific host configurations out of common parts.
key Optional. Which file should be used as the encryption key. Both
’algorithm’ and ’key’ must be present. In the case where
algorithm is gpg the user ID of the key must be specified here.
log Optional, binary option. When ’on’ hdup will also log to syslog.
All message will be logged under LOG_DAEMON with priority
LOG_NOTICE. All errors are logged in the following format:
FAILURE, <hostname>, <error condition>
Succes is reported as:
SUCCESS, <hostname>, <archive size>, <archive time>
If the backup is send to a remote system, <archive size> equals
"remote". If the operation is restore, then <archive size>
equals "restore".
mcrypt Optional. The path to mcrypt. Defaults to the value of the
configure script.
no history
Optional, binary option. When ’on’ hdup will store each archive
in a directory called ’static’ thereby not keeping any history
of the archives. WARNING: this option is dangerous to use. When
a backup fails and you did not copy the archives to some safe
place you are left with no backups at all! A postrun script is
provided in the examples directory of the hdup source, which
copies the archives to a safe place. It is best to NOT use this
option unless you know what you are doing.
Restoring such an archive can be accomplished by using the word
’static’ as the restore date.
nobackup
Optional. The argument is a filename. When specified hdup looks
for this file in the directories it backs up. If this file is
found the current directory and all sub-directories are excluded
from the backup.
one filesystem
Optional, binary option. When ’on’ hdup will stay in the local
file system for each directory specified (with ’dir’) when
creating a backup.
overwrite
Optional, binary option. When ’on’ old archives are overwritten.
postrun
Optional. Specify a command or script that be should run after
hdup is finished with the backup. The following variables can be
used as arguments:
%h expands to the current host.
%a expands to the full path of the archivename of the current
backup.
%s expands to the current scheme.
%u expands to the username under which the archives are stored.
%e expands to ’yes’ when encryption is used, ’no’ otherwise.
%c expands to ’yes’ when chunksize is used, ’no’ otherwise.
%g expands to the groupname under which the archives are stored.
Note: If the postrun script executes with errors the backup is
not aborted. Note2: Any arguments not defined will be expanded
to ’-empty’, without the quotes.
prerun Optional. Specify a command or script that should run before
hdup begins with the actual backup. The following variables can
be used as arguments:
%h expands to the current host.
%a expands to the full path of the archivename of the current
backup.
%s expands to the current scheme.
%u expands to the username under which the archives are stored.
%e expands to ’yes’ when encryption is used, ’no’ otherwise.
%c expands to ’yes’ when chunksize is used, ’no’ otherwise.
%g expands to the groupname under which the archives are stored.
Note: If the prerun script executes with errors the backup IS
aborted. Note2: Any arguments not defined will be expanded to
’-empty’, without the quotes.
proto Optional. Specify the path of the program to use when
transferring an archive to a remote host. Known to work is ssh.
Defaults to the value of the configure script.
These programs must be able to be used as a filter and support
the user@remotehost syntax.
Note: Be aware that this value must also be defined in the
remote hdup which is receiving the backup, although it is not
used there. If you don’t want to set it to ’ssh’ you can use
’/dev/null’ or any other path.
proto option
Optional. Specify options that are given to the proto command in
hdup. E.g. proto option = -i /home/user/.ssh/identity
-oProtocol=2.
remote hdup
Optional. If the @user@remotehost syntax is used this keyword
specifies the location of the remote hdup.
remote hdup option
Optional. If the @user@remotehost syntax is used this keyword
specifies the options (like the location of the config file)
that should be used by the remote hdup.
skip Optional, binary option. Depricated, it is always ’on’. When
’on’ the backup directory is automaticly put in the exclude list
and thus not backed up.
sparse Optional, binary option. Depricated, it is always ’on’. When
’on’ hdup will use tar’s --sparse feature when backing up files.
tar Optional. The path to tar. Defaults to the value of the
configure script. This tar must support the command line syntax
of GNU tar.
tar option
Optional. Specify some extra options to the tar executed by
hdup. These options are given the tar and untar commands. No
extra checking is done by hdup on these options.
user Optional. Specify the user under which the archives must be
stored. Defaults to operator.
PATTERNS
The include and exclude keywords take regular expression as there
input. There is one extra rule. If an expression ends with a slash ’/’
it is only applied to directories. A ’/’ in a different place is not
handled special.
The whole pathname of a file or directory is used in the pattern
matching. The pattern matching is case sensitive.
Examples
To match all files ending with .txt use the pattern .*.txt. To match
everything file under opt, use ^/opt. To match a specific directory in
/opt, use ^/opt/bla/, note that this excludes all directories which
start with this string.
If you want to match a single directory you must supply the full
pathname and a leading, and closing ’/’.
WHAT COMES FIRST include or exclude
AUTHOR
Written by Miek Gieben. Wouter van Gils helped a lot with testing pre-
release versions. User feedback is appreciated.
REPORTING BUGS
Report bugs to <hdup-user@miek.n> or via the bugzilla at the homepage.
COPYRIGHT
Copyright (C) 2001-2005 Miek Gieben. This is free software. There is NO
warrenty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR
PURPOSE.
SEE ALSO
hdup(1), regex(7).
18 Mar 2003 hdup.conf(5)