Like any half-assed amateur system administrator worth his Sainsbury's Basics table salt, I've been searching for a decent backup/restore solution for a while now.

Background

On my office desk, not counting work-related machines, sits a Windows 7 PC and a whole bunch of external hard drives. Manually copying my 20GB of digital camera photos (plus e-mail archives, invoices, letters and the like) over to one of those external drives every so often is a chore.

In addition, I maintain a remote Virtual Private Server for DNS, Web and Email hosting, not to mention a spot of software development (if ever I get either the time or the motivation, out of work). With a few clients' websites and emails sitting on that server, not to mention a substantial quantity of my own content (plus various system configuration files, which I'd rather never have to recreate), this server also ought to be protected from data loss.

My original VPS was hosted by BitFolk. Although it was unmanaged, the team at BitFolk provided a rsync-based automated backup service if you paid for the provision of a little more data storage. The archived data could be accessed by mounting the remote stores onto the local filesystem. It was a bit of a pain to have to raise a support ticket to add/remove paths for backup, but it worked well. Unfortunately, whilst BitFolk itself and its services are top-notch and cracking value for money, I found that some of the people attached to the project were not so pleasant in person.

Having since moved on from BitFolk to something a little more meaty (hosted by the excellent Clustered), with more disk space to spare I've been looking at setting up my own automated, easily-configurable data resilience "solution" that might do everything I want, for both my office PC and my remote server, with a minimum of fuss.

Attempts

Intermittently dipping into the project every couple of months, my first few attempts almost unwaveringly featured the use of Samba which, among other things, enables the mounting of Linux filesystems onto remote Windows systems as Shared Folders (though I also tinkered with doing the same thing over a maintained SSH connection, with SftpDrive).

Samba is a right pain to configure, but eventually I managed to sort it out. I went through a myriad of tools that each proclaimed to make simple the task of automating backups from one locally-mounted path to another: Bacula, whilst promising, went way over my head; and DirSyncPro had options that did what I wanted, but I could never seem to coax the [slightly buggy] Java interface into actually performing any useful tasks.

Almost as a last-ditch attempt at making life simple, I then tried installing an SSH server on my Windows machine, and scheduling rsync itself to run from inside Cygwin (much like my original VPS solution). At some point through attempting to configure Rsync for Windows I got frustrated and went to the pub instead, swiftly forgetting about the entire enterprise for several months.

The happy ending

Recently finding myself with a couple of hours to spare on a slightly rainy Sunday night, and still keen to avoid "backup to the cloud" tools (such as Amazon S3) that I don't really trust (yet which promise to make life somewhat simpler), I decided that the mission to solve this problem deserved one last chance at a Hail Mary.

After all, I'd just added another client to my collection of websites to host, and I'd lost one of my external hard drives: the one that had, until now, been providing me with the only data resilience that had worked in any meaningful way. Definitely time to fix the issue once and for all.

So, armed with tasty mash and a pretty decent steak, I began skimming (again) through Wikipedia's list of backup software, hoping that I'd previously skipped past an obvious life-saver.

And I had: the brilliant CrashPlan.

CrashPlan is available for a number of operating systems, and functions via internet log-in that can join multiple installations under a single banner, allowing easy transfer of files between any of your own devices. (There are also local back-up features and, for a subscription, the option to use CrashPlan's own online storage.)

My problem was completely solved after doing the following:

  • Downloaded, installed and ran on my Windows PC;
  • Created a user account from within the application;
  • Downloaded, installed and ran on my VPS (thanks in particular to fluxbox, RealVNC server and TightVNC viewer for the graphical interface);
  • Logged into my user account from within the application;
  • On each machine, specified folders that should be backed-up, how often, and for how long;
  • Set my PC to backup to my VPS, and vice versa, simply by choosing one of the devices that had automatically been added to a handy list by the joined login.
  • Opened a port for CrashPlan through firewalls both at home, and in front of my VPS.

And that's it. My Windows PC backs up to my VPS, and my VPS backs up to my Windows PC. It just works.

I haven't yet had a reason to try out a major "restore" operation, but if the rest of the product is any indication, my data is safe and resilient as long as either my PC or my VPS exist in this world.

So it's nice that, roughly a month after previously realising that perfection in technology does exist, I have found myself in a similar position again by being able to highly recommend CrashPlan to everyone in the world. Highly.

And if you haven't bothered even considering a backup solution yet… Well, I know everyone says this, but do it. Now that I've proven how easy it is, there is no excuse not to.