Ok, after a recent problem on Narelle’s computer that suddenly exhibited signs of madness due to the [[Windows XP Recovery http://www.bleepingcomputer.com/virus-removal/remove-windows-xp-recovery]] virus, I thought it was about time I installed a proper backup system for it.

My basic requirements for a backup system are:

  • Must work automatically (because users always forget to backup, or will “do it a little later).
  • Must work over the network (because there is no point doing the backup in the same computer, and saving to discs and both inconvenient (see point 1) and expensive).
  • Should be based on //rsync// or equivalent, because bandwidth isn’t infinite.

In this case the additional requirements are:

  • Must work for a Windows client
  • Must work for a Linux server
  • Should only attempt backups when the Windows client is located on the local network, as we don’t want to be performing a backup through a slow public wifi from the other side of the world. Although if optionaly we //can// do that (if we’re travelling for months or something) it //should// be possible.

Because, well, that’s just the way things are.

Last time I tried to solve this by installing [[Cygwin http://www.cygwin.com/]], a little script that would heuristically determine if it was on the local network (based on the IP, the gateway, and the presence of the server at the expected address) and rsync over ssh. This solution kinds of works, but Cygwin tends to be a last resort solution and suffers from Windows’ lack of correct //cron// implementation, so scheduling is a pain.
There is actually a much simpler solution: Install the stand-alone version of [[rsync http://sourceforge.net/projects/backuppc/files/cygwin-rsyncd/2.6.8_0/]], configure it so //rsync// can access the //Document and Settings// folder and run it as a Windows service, then script everything from the server: a simple //cron// running every night, connects to the //rsyncd// service on the Windows client and retrieves the changed files. And then just feed that through the normal Unix backup you use (I use [[Backup2l http://backup2l.sourceforge.net/]]).

You’ll have to make sure the Windows computer inherits a fixed address from the DHCP server, if applicable, obviously.

This, combined with OpenVPN, could potentially be used to backup remotely (as in, over the Internet) as well; this is still to study, I’m just getting started with OpenVPN.