rdiff-backup: Easy incremental backups from the command line
October 26th, 2008 edited by VichoStorage is becoming cheaper and cheaper: you can find hard drives that cost less than a dollar per GiB. Buying an external hard drive to make backups (or even having a backup server) is a must if you value your work and what you have stored in your computer. However, doing backups should be easy enough to be done on a regular basis. The more automated, the better.
So, I find no excuse not to do regular backups and looked for a tool easy-to-use but powerful. rdiff-backup
is a python script that helps doing local and remote incremental backups. To backup your $HOME
to an external hard drive mounted in /media/backup
simply do:
$ rdiff-backup $HOME /media/backup/home_backup
If after some days you want to backup your new files, run the same command to update the backup.
Now, in /media/backup/home_backup
you have an exact copy of your home as it was when you did the last backup. If you want to restore a directory, you can just copy it:
$ cp -a /media/backup/home_backup/src/myprogram ~/src/
Which is equivalent to:
$ rdiff-backup --restore-as-of now /media/backup/home_backup/src/myprogram ~/src/
Of course, you can restore previous versions of the file. For example, to restore the source of myprogram
as it was a mounth ago:
$ rdiff-backup --restore-as-of 1M /media/backup/home_backup/src/myprogram ~/src/
You can see all the incremental backups you have done executing:
$ rdiff-backup --list-increments /media/backup/home_backup
If you run out of space in your backup device and you’re sure you don’t need the backups you made three years ago, you can remove them with:
$ rdiff-backup --remove-older-than 3Y /media/backup/home_backup
rdiff-backup
works exactly the same with remote directories. You need to have ssh
access and rdiff-backup
must be installed in the remote(s) machine(s). Note that in any example above, you can change the local directories to remote ones, so you can backup a remote machine locally, or do a backup of this machine to a remote backup-server. For example, say backup.mysite.org
is your backup server. You can backup regularly using:
$ rdiff-backup local-dir/ user@backup.mysite.org::/remote-dir
If you use RSA or DSA authentication, you can even put that in a cron job.
See rdiff-backup
documentation and other examples to discover all the functionality of this package.
Similar packages
Frontends for rdiff-backup
:
keep
is a GUI (KDE) frontend forrdiff-backup
.archfs
is a fuse (filesystem in userspace) virtual filesystem that lets you browse each version of ardiff-backup
repository as if they were any other directory. Adam Sloboda has stated his intention to packagearchfs
for Debian.rdiff-backup-web
(not in Debian, no WNPP yet) is a web frontend forrdiff-backup
.
There are a ton of other programs to make backups. I will list here some of them (but this list is no where near complete) that are similar to rdiff-backup
:
backup2l
also makes local backups, but seems to miss the remote-backup feature.backuppc
is a perl script that also makes incremental backups, and has an http user interface to help manage and restore backups.duplicity
also makes remote incremental backups, but encrypts the data usinggnupg
. I haven’t test it myself, but it can be useful if you don’t trust the remote file server.storebackup
also makes local incremental backups. It makes a new tree in every snapshot, but disk space is preserved by hard-linking unchanged files.
Conclusions
Pros:
- Easy to use. Now there’s no excuse not to do backups!
- Works from the command line, so you can easily put it in a script or cron job.
- Simple recovery from last snapshot, you can use standard tools like
cp
orfind
.
Cons:
- Not having a GUI may scare some users.
- It stores the last snapshot uncompressed, so depending on what you are backing up, it can be very space consuming. Older snapshots are compressed, which makes this con a not-so-con ;-).
rdiff-backup
has been available in Debian since Sarge (perhaps even longer), and in Ubuntu since Dapper.
Posted in Debian, Ubuntu | 14 Comments »