rdup

The only backup program that doesn't make backups!

rdup 1.0.5 released !

rdup is a platform for backups. It provides a list of files to backup and the necessary mechanisms to process them. It delegates the encryption, compression, transfer and packaging to other utilities in a true Unix-way. nicehacks.org

rdup is a simple tool which creates lists of files that are to be backed up. All files types under Unix are supported: regular files, symlinks, hardlinks, devices, sockets, etc.

download 1.0.5

Source of rdup:

ChangeLog for 1.0.5

release date: 14 Jan 2010
* fix compile on *older* distributions

Also see the complete Changelog.

Backups

I have a vision for backups, they:

  • should be simple to perform
  • should be simple to setup
  • should allow for easy recovery (for administrators and end-users)
  • must allow for incremental backups
  • must allow for encryption
  • must allow for remote storage
  • must be flexible
  • should be file system agnostic

A lot of backup programs only provide a subset of these requirements or focus on one or two items. Others will provide everything and make setting up and usage a pain.

I believe a backup program should not invent the wheel again and again. This means that you should use ssh for file transfers and not write a new remote/secure authentication mechanism. Sounds familiar? Indeed: KISS.

Taking these requirements and thinking them through to the max, one comes to the conclusion that the best backup program.... does not backup anything.

Hence rdup.

rdup

rdup will only print a list of files that are changed/removed since the last time rdup ran.

Subsequent programs in a Unix pipe line can be used to actually implement to backup scheme. After a run a new filelist is written. No warning is given when filelist is an existing file, it just gets overwritten by rdup. New runs will print out only those files that have actually changed since the last run, thereby making incremental backups possible.

In rdup there is a shell script called rdup-simple, with this script you can easily make backups.

rdup-simple ~/bin /tmp/backup

Will create a date-based backup structure in /tmp/backup. Subsequent runs will update that structure.

Power to the user

Need to create a compressed tar archive? This one-liner will do:

rdup /dev/null ~/bin | rdup-tr -Otar | gzip -c -f > /tmp/rdup.tar.gz

Want to created a compressed tar file, with all the files in it reversed?

rdup /dev/null ~/bin | rdup-tr -Ptac -Otar | gzip -c -f >\
/tmp/rdup.rev.tar.gz

Want GnuPG encrypted archive and store it on another machine?

rdup /dev/null ~/bin | rdup-tr \
-Pgpg,-e,-q,--default-recipient-self | \
ssh -C root@backupmachine rdup-up -t /vol/backup/crypt/$HOSTNAME

In words:

  1. generate the file list with rdup
  2. transform the file list into an GnuPG encrypted rdup -c archive
  3. ssh to the remote backup machine and transfer the archive to it
  4. unpack the archive to /vol/backup/crypt/$HOSTNAME

Rdup includes a sample script rdup-simple.sh which you can use for your own backups, but feel free to build your own.

A (short) list of scripts is published here

Dependencies

rdup is written in C. It depends on

  • glib library (glib-dev package)
  • libpcre3

rdup-tr has one extra dependency

  • libarchive (libarchive1 and libarachive-dev package)
  • libnettle (optional, simple encryption library)

rdup-up has the same dependencies as rdup.

Contact

Questions, patches, bug reports and general discussions can be directed to rdup@miek.nl (in English).

List info can be found at rdup mailman page.

Due to all the spam all non subscriber mail is discarded. So please subscribe before sending.

You can also mail me personally, see about for that.

External links

rdup-utils

These can be found here.

Third party scripts

rdup could be used as a base for your own backup scripts. A listing of current implementations can be found here