Technical

For the technical folks, here are some details of how HashBackup works.

HashBackup Files

In the local backup directory, several files are maintained:

hb.db - this is the main database, always encrypted.  The size is proportional to the number of files backed up and the number of data blocks saved.

hb.db.n - incremental versions of hb.db for transmitting to remote sites.  n is a sequence number that often will follow backup version numbers, but it may also be different

arc.v.n - archive files, for example, arc.0.0, where v is the version number and n is the file number.  File data is stored compressed and encrypted in the archive files, with one archive containing data for many files.  The size is proportional to the amount of data backed up.  By default, arc files are left in the local backup directory, for faster access when restoring.  When a remote destination is configured, the config option cache-size-limit can be set to limit the amount of space used by local archive files.

key.conf - the hb.db key, stored as 64 hex digits; created automatically or can be created by hand.  For extra security your key can be stored separately, for example on a USB flash drive, with only a symbolic link in the backup directory to the real key file on the flash drive.  Your backup is inaccessible unless the USB flash drive is inserted.

dest.conf - information specific to each remote copy destination, such as user ids, passwords, IP addresses or host names, etc.

dest.db - used internally by HashBackup

inex.conf - exclude list

hb.lock - lock file used to ensure that only one program at a time writes into the backup directory

VERY IMPORTANT: copies of the key.conf and dest.conf files must be saved to USB flash drives and/or printed, and stored at multiple locations.  In the event of a disk crash, you will need these 2 files to use the recover command to fetch your backups from an offsite server.  Without copies of these files, especially your key.conf file, your backup cannot be accessed.