Storage 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.
/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/ email@example.com::/remote-dir
If you use RSA or DSA authentication, you can even put that in a cron job.
keepis a GUI (KDE) frontend for
archfsis a fuse (filesystem in userspace) virtual filesystem that lets you browse each version of a
rdiff-backuprepository as if they were any other directory. Adam Sloboda has stated his intention to package
rdiff-backup-web(not in Debian, no WNPP yet) is a web frontend for
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
backup2lalso makes local backups, but seems to miss the remote-backup feature.
backuppcis a perl script that also makes incremental backups, and has an http user interface to help manage and restore backups.
duplicityalso makes remote incremental backups, but encrypts the data using
gnupg. I haven’t test it myself, but it can be useful if you don’t trust the remote file server.
storebackupalso makes local incremental backups. It makes a new tree in every snapshot, but disk space is preserved by hard-linking unchanged files.
- 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
- 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 ;-).