mario.vukelic at dantian.org
Tue Jan 27 06:59:38 UTC 2009
On Mon, 2009-01-26 at 17:09 -0500, Paul Gupta wrote:
> what's the command now? are there any wrappers/programs that do good
> diff styled backups?
I found this once on some Ubuntu or Gnome blog or something. Apologies
to the original author for not having the source:
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,
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
$ rdiff-backup local-dir/ user at backup.mysite.org::/remote-dir
If you use RSA or DSA authentication, you can even put that in a cron
See rdiff-backup documentation and other examples to discover all the
functionality of this package.
Frontends for rdiff-backup:
* keep is a GUI (KDE) frontend for rdiff-backup.
* archfs is a fuse (filesystem in userspace) virtual filesystem that
lets you browse each version of a rdiff-backup repository as if they
were any other directory. Adam Sloboda has stated his intention to
package archfs for Debian.
* rdiff-backup-web (not in Debian, no WNPP yet) is a web frontend
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
* backup2l also makes local backups, but seems to miss the
* 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 using gnupg. 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
* 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 or find.
* 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.
More information about the ubuntu-users