Traditionally, the UCC's backup system has left much to be desired, such as "existing" or "running on reliable hardware".

Backups at present run on Mollitz, which is housed in a secret location (off-site backups!). Contact <> if you need to know where it is living.

Backups are run using rdiff-backup, a disk-based incremental backup system. These are managed by rdiff-manager, a Python wrapper written by DavidAdam.

Adding new machines

On the target system (the machine you want to back up):

  • Make sure the UCC backup key is installed (e.g. with authroot)
  • Install rdiff-backup packages.

On the backup server (mollitz):

  • Copy /backups/conf/default to /backups/conf/<HOSTNAME>.conf

  • Edit /backups/conf/<HOSTNAME>.conf as required - the syntax is documented in rdiff-backup(1) under FILE SELECTION

  • Add the SSH host key using su -c 'ssh-keyscan HOSTNAME >> ~/.ssh/known_hosts' backups

Now wait until the nightly backup run. The output is sent to hostmasters.

Checking backup status

To list all the backups available for a particular host, on the backup server (Mollitz):

  • Run rdiff-backup --list-increments /backups/<HOSTNAME>

Restoring a backup

To restore files from backup, on the backup server (Mollitz):

  • Run rdiff-backup --list-increments /backups/<HOSTNAME> and choose a backup to restore from.

  • Copy the timestamp from the increment list - 2013-02-22T02:00:03+08:00

  • Decide where you are going to restore the files - locally (i.e. to Mollitz), where you can inspect them, or back to the remote host.

Restoring files locally

  • Run mkdir /backups/restored/<HOSTNAME>

  • Run rdiff-backup --restore <TIMESTAMP> /backups/<HOSTNAME>/path/to/file-or-directory/you/want/to/restore /backups/restore/<HOSTNAME>

For example, using rdiff-backup -r  2013-02-22T02:00:03+08:00 /backups/merlo/etc /backups/restored/merlo will restore the contents of merlo's /etc/ directory as at 22/2/13 to /backups/restored/merlo.

Restoring files remotely

/!\ Be careful - this is easy to mess up, particularly if you are trying to restore to the original path. Note the double-colons in the restore path!

  • Run rdiff-backup --restore <TIMESTAMP> /backups/<HOSTNAME>/path/to/file-or-directory/you/want/to/restore root@<HOSTNAME>::/path/to/file-or-directory/you/want/to/restore

For example, rdiff-backup -r  2013-02-22T02:00:03+08:00 /backups/merlo/etc merlo::/restored/etc will restore the contents of merlo's /etc/ directory as at 22/2/13 to /restored/etc on Merlo.

Improvements to rdiff-manager

rdiff-manager is pretty simple but there is plenty of room for improvement. Check the TODO file in the distribution for ideas.