I had a hard drive failure two weeks ago. Luckily almost everything on the system was fully backed-up so it wasn’t too much of a pain. I had used unison to backup my home directory and the subclipse eclipse plugin to backup my eclipse workspace. The data that were lost (and ultimately mostly salvaged) were the websites on my system, the contents of my mysql databases, as well as data stored in other user accounts on my machine (although I don’t take responsibility for these data). I used dd_recover to salvage data from the broken drive and wrote up a wiki page on the process I used. The process was somewhat successful and most of the important data was salvageable.

My experiences support the rule that prevention is better than cure. So, with this in mind I’ve set up a page outlining my current backup policies using rsync, unison, subversion, etc. This page will be grown over the coming weeks with backup information I am using to ensure that my websites and databases are not lost in future. In the spirit of openness I’d like people to take a look at my setup and poke holes in it or make suggestions for improvement. Feel free to reuse my scripts to build your own backup scripts as I have done from others (e.g., Mike Rubel’s rsync scripts). Remember, backup early and backup often, there is no sympathy for anyone who loses data for want of proper backups.