A long time back I bought a large hard drive (well, it doesn’t look so large any more, its only 160GB. But it did seem very large then). My primary motivation behind buying the drive was to backup my data. So I started looking around for backup solution. I had the following requirements:
* easy to setup and configure: defaults should largely work out of the box.
* support for incremental backups: don’t make a full copy of the file system every time I change a single file.
* support for multiple backups: I want daily backups going back one week, backups from the 1st of each month for the past year, and backups for 1st Jan on every year for the past 5 years. You get the idea — exponentially decreasing density of the snapshots.
* regular file systems for backup: I don’t want to use a special interface to browse the backup. I don’t want to untar/unzip/whatever to look at my backup. I want to be able to ”cd” into ”2006-01-03” and look at the backup for that date.
The first problem I ran into was the number of solutions available. I think there are easily upwards of 50 decent open source backup solutions out there. To name a few: there are some fairly simple ones such as [[http://konserve.sourceforge.net/|konserve]]; some of average complexity such as [[http://www.dirvish.org/|dirvish]], [[http://www.nongnu.org/rdiff-backup/|rdiff-backup]], and [[http://www.nongnu.org/duplicity/|duplicity]]; and finally some complex behemoths like [[http://www.amanda.org/|amanda]], [[http://www.bacula.org/|bacula]] and [[http://backuppc.sourceforge.net/|backuppc]].
After some experimentation, I settled on dirvish. To be fair, I did nothing close to an exhaustive evaluation. All systems did not get a fair chance, and dirvish might just have gotten lucky in that it was the first system I seriously tried. But its been working fairly well for me so far.
dirvish meets all of the requirements that I’ve stated above. Its written in Perl, which is unfortunate since I don’t appreciate perl all that much. But so long as I don’t have to look at the code, I don’t really care. It can do incremental backups to local or remote devices. Its extremely configurable in terms of the backup density thing I mentioned earlier. You can browse backups like normal filesystems. It makes efficient use of space, hard-linking common files where possible. It can take care of deleting old backups etc. It works well over rsync or ssh.
I tried backuppc, but it requires a web browser to look through and retrieve files from the backup. rdiff-backup and duplicity just build on top of rsync and didn’t seem to provide the kind of flexible configuration I was looking for. Amanda and bacula just seemed too much of an overkill for my modest needs. As always, YMMV, but I recommend dirvish for laptop backup kind of needs.