3rd October 2010
Recently I finally managed to configure remote (aka off-site) backup for my Debian server. As always, I started with a comparison of existing solutions.
In my setup I wanted backups to be initiated by the external backup server (as opposed to internal, production server initiated backup). Also, I was going to backup linux server to another linux box. Thus, it would be preferable to have support for rsync on both boxes and hardlinks on the backup box. I needed backup to be run regularly, I didn’t need any kind of GUI, and I would prefer to keep a bunch of older backups around (in case the most recent backup is of a compromised system, for example). Also, having an incremental backup of SQL databases was yet another requirement.
A few tools more or less matched my requirements: backupPC, duplicity, rdiff-backup, and dirvish.
backupPC, judging from its description and a few tutorial articles, is a cool piece of software. I think I might use it next time. But this time I really had no need for over-SMB backups (intended for Windows boxes), and no need for a nice administrative web-interface to backupPC. If not these extra features (which I don’t currently need) I’d go for backupPC. Here’s a guide for Ubuntu.
Duplicity claims to still be in beta, thus I haven’t given it a try. rdiff-backup seemed a bit too simple (and with no ready templates to get working regular backups faster), so I skipped that one as well.
Dirvish really caught my attention, partially thanks to a good and relatively short quick-start tutorial. That tutorial also mentions automysqlbackup – a nice, almost no-configuration tool to take regular dumps of MySQL databases. In combination, these two now regularly backup up my whole server to another linux box.
I would definitely recommend using dirvish+automysqlbackup for remote/off-site backup needs. However, other solutions might be as good or better for your use case.