For the better part of year now, I've been using two simple programs to keep my data synchronized and backed up. These two programs are Windows Live Sync and rsnapshot.
I wrote about Windows Live Sync previously and I must say, it does everything it claims to do and it does it well. The only time I've had problems with it is when it tries to sync certain types of open files such as Eclipse workspaces and Pidgin settings.
Rsnapshot is actually a collection of Bash scripts that rely on rsync and cron. At this point, I should mention that rsnapshot must run on a Linux or UNIX based system (it may run on OS X, but I've never had need to try). When used on a system that supports hard links (most UNIX and Linux systems will), rsnapshot can do automatic full backups of data on a very flexible schedule. Most importantly, it only requires extra space when a file has been changed. It doesn’t duplicate unchanged files in the backup.
My backup system is as follows: Live Sync keeps my laptop and my desktop synchronized. I also use it to sync everything to a virtual machine, but I’ll get to that later. One of the machines runs cwRsync, which is a Windows port of rsyncd. (Rnsapshot can use Windows file sharing, but it takes much longer to do a backup). I’ve got rsnapshot running on my Linux box and every 6 hours, it connects to the machine running cwRsync and makes a backup.
A risk here is what happens if the machine with cwRsync is off and I make changes from the other computer? How can rsnapshot find the changes? This wasn’t really an issue when I first started using this system; my desktop was rarely ever off. Since I started doing development in Linux, however, my Windows desktop has effectively been off. Remember that virtual machine I mentioned earlier? I’ve got that sitting on the same box that runs rsnapshot, so if it’s on, there’s always at least one machine running Live Sync.
This is a rather high level view of how I’ve got things set up. I’d be happy to go into more detail at some point (and I plan to), but unless someone asks, for now I’ll be concentrating on finishing my Master’s. There is information elsewhere about configuring cwRsync and rsnapshot.