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:
- rdup-1.0.5.tar.bz2 (sha1: dd4507e137a5086e9afa43fffd2ebc587b19557e)
- freshmeat
- git clone http://miek.nl/git/rdup.git
- gitweb
ChangeLog for 1.0.5
* 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:
- generate the file list with
rdup - transform the file list into an
GnuPGencryptedrdup -carchive - ssh to the remote backup machine and transfer the archive to it
- 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
- An article I wrote on how to use rdup.
- Openpkg package of rdup
- RPM packages
- Arch Linux pkg
- Slackware pkg
- Debian pkg
- Article on Unix backups
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

