NAME¶
hdup - harddisk duplicator/harddisk backupper - backup to harddisk
SYNOPSIS¶
hdup [
OPTION ]
SCHEME HOST [
@USER@REMOTEHOST ]
(1st format)
hdup [
OPTION ]
restore HOST DATE
DIRECTORY [
@USER@REMOTEHOST ]
(2nd format)
DESCRIPTION¶
Hdup is used to backup a filesystem. Features include:
- o
- incremental backups: monthly, weekly and daily dumps,
- o
- encryption of the archive (via mcrypt or
GPG),
- o
- compression of the archive (bzip/gzip/lzop/none),
- o
- possibility to transfer the archive to a remote host,
- o
- possibility to restore the archive from a remote host,
- o
- ability to split up archives,
- o
- no obscure archive format (it is a normal compressed tar
file), and
- o
- simple to use.
The behaviour of
hdup is controlled by its configuration file (see
hdup.conf(5)). Internally
hdup uses
GNU tar to actually
create the backups.
When using the 1st format
hdup performs a backup. Remember:
hdup
pushes a backup
from the localhost
to the remote host.
The sort of backup is specified by
SCHEME:
- monthly
- Make a full (null) dump of the filesystem.
- weekly
- Make an incremental dump of the filesystem relative to the
latest monthly dump. If hdup cannot find a monthly dump it will
complain, unless always backup is on. Then a monthly dump will be
performed.
- daily
- Make an incremental dump of the filesystem relative to the
latest weekly dump. If hdup cannot find a weekly dump it will
complain, unless always backup is on. Then a weekly dump will be
performed.
HOST is the host of which
hdup should perform the backup. This
should match a '[HOST]' statement in the configuration file. The directories
of that host (specified with 'dir =
dir1,
dir2', ...) will be
backed up to the directory specified with 'archive dir =
dir'. If
HOST is not found no backup will be made.
@USER@REMOTEHOST is the host to which the archive should be transfered.
This must include the user name. E.g
@miekg@elektron.atoom.net. It
is illegal to specify the colon ':'. hdup must be present on the
remote host. The location of this remote
hdup is specified using
remote hdup.
Any program capable of transferring files can used for this purpose. Currently
tested is
ssh. Other programs like
rsync (not tested) may also
work. Any program with the following characteristics will do:
- o
- must be usable as a filter (read from stdin, write to
stdout),
- o
- must support user@remotehost syntax.
When using the 2nd format a previous backed up filesystem is restored. Remember:
hdup pushes a restore
from the remote
to the local host.
This is opposite from the backup operation!
HOST is the host who's archives should be restored.
DATE everything up to this date will be restored.
hdup will look
for the most recent monthly archive, then the most recent weekly and finally
for the daily to pad up to date given. The
DATE can either be specified
as DD-MM-YYYY (date spec = default), as YYYY-MM-DD (date spec = iso) or as
MM-DD-YYYY (date spec = american). This is controlled from the configuration
file.
A special date is 'static' which instructs
hdup to look in the 'static'
directory. This is used when 'no history = yes'. This is dangerous to use
because
hdup will overwrite the old backup file with the new one. When
your system crashes during the overwrite you have no backup at all! Only use
this when you
really don't have room for two monthly backups.
Another special date is 'today' which instructs
hdup to use the current
date.
DIRECTORY tells
hdup to which directory the archive should be
untarred to. Be very careful when running
hdup as root and specifying
'/' as the directory. Version 1.4 and above refuses to restore to '/'. This
can be overridden by specifying 'force = on/yes' in the configuration.
@USER@REMOTEHOST is the host to which the archive should be restored.
This must include the user name. E.g
@miekg@elektron.atoom.net. As
as version 1.6.6 it is illegal to specify the colon ':'. On the remosthost
and in DIRECTORY the archive is restored.
hdup must be
present on the remote host.
Status message¶
When
hdup is finished with its current operation it will print an
overview message:
Hdup version.: 1.6.6 |
|
|
|
Host.........: elektron |
|
Date.........: 2003-02-02 |
|
Scheme.......: monthly |
|
Archive......: elektron.2003-02-02.monthly.tar.gz |
|
Encryption...: no |
|
Archive size.: 257k |
|
Elapsed......: 0:01:27 |
|
Status.......: successfully performed backup |
|
Which can be mailed to you via cron.
OPTIONS¶
- -c, --config=config
- Location of the configuration file. The default location of
hdup's configuration file is /etc/hdup/hdup.conf.
- -s, --specific=file
- Restore a specific file from an archive. file must
be the full path to the file, relative paths will not
work.
- -i, --ignore-tar
- Ignore tar errors when restoring.
- -I, --ignore-conf
- Ignore errors in the configuration file.
- -P, --patched_tar
- Tar is patched so that it can handle --no-recursion,
--listed-incremental and --files-from together. This options
enables two things in hdup; 1) directory info is written to 'filelist' and
2) --no-recursion is given to tar.
This solves the bug whereby hdup wouldn't include directory
information in the archives.
- -d, --dryrun
- Do a dryrun - don't do anything with the filesystem
- -q, --quiet
- Suppress the output of the subprocesses (like 'tar' and
'ssh').
- -q -q, --quiet --quiet
- Suppress the logging output from hdup.
- -q -q -q, --quiet --quiet --quiet
- No logging at all. Even no overview message.
- -V
- Be more verbose.
- -V -V
- Be even more verbose. This will show which files are backed
up by hdup IF you also supply the -D option.
- -h, --help
- A help message.
- -v, --version
- Show the version of hdup.
- -D, --debug
- Show a lot of information which can aid debugging.
The -V and -q options do
not effect each other. A '-qqq -VV' option list
will mean that
hdup will show what is run, but nothing else (no
overview message and no warning nor errors).
ENCRYPTION¶
hdup can encrypt the archives,
mcrypt is used for the actual
encryption. As of version 1.6.25
GPG can also be used to encrypt the
archive. Note that currently remotely restoring a GPG encrypted archives is
not working.
mcrypt¶
With
mcrypt --list you get a list of the algorithms mcrypt supports:
|
|
serpent (32): cbc cfb ctr ecb ncfb ofb nofb |
|
wake (32): stream |
|
loki97 (32): cbc cfb ctr ecb ncfb ofb nofb |
|
rijndael-128 (32): cbc cfb ctr ecb ncfb ofb nofb |
|
rijndael-192 (32): cbc cfb ctr ecb ncfb ofb nofb |
|
|
|
If you want to use
loki97 you specify
algorithm = loki97 in
hdup.conf. The same goes for all the other algorithms.
GPG¶
To use
GPG the following is needed. Set
algorithm = gpg and
key
= user ID of key. In my case I've created a GPG key with user ID of
'miekg' so I use:
algorithm = gpg
key = miekg
The
key is supplied to
gpg with the
-r argument. See the
manpage of
gpg for more details.
When restoring a GPG encrypted archive you will be prompted to unlock your
private key.
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.nl>.
BUGS¶
The %a expansion is not always the same in the prerun and postrun scripts (when
using encryption).
LIMITATIONS¶
Under Linux kernel version 2.2 the archive size cannot exceed two (2) Gigabyte.
If you need larger archives sizes you should upgrade your kernel. You can
however solve this by using
chunk size. Just define your maximum
allowed size, something like
chunk size = 1800M and you're set.
If you encrypt archives and want to restore them, you are forced to use one
encryption scheme for all the backups.
hdup does not store the key and
algorithm with the archive, thus it is impossible to restore archives that use
different keys and algorithms.
COPYRIGHT¶
Copyright (C) 2001-2005 Miek Gieben. This is free software. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
SEE ALSO¶
hdup.conf(5) for information about
hdup's configuration
file.