Is there a free tool that syncs files in both directions, on a schedule?

Solution 1:

Unison is close in that it will do bi-directional copying and runs on windows and Linux and is under the GPL. Unison is based on rsync so it can transfer pretty efficiently.

It doesn't implement any of the scheduling or bandwidth limiting features you want. Those other features could be implemented by combining unison with additional tools and/or scripts to automate it.

Solution 2:

Rsync if you are using Linux/Unix.

For a Windows system you can use SyncToy from the PowerToys kit, or use Robocopy (from the Resource Kit for 2000-2003, incl. in 2008+ though) if you want to script it.

I believe there are a few versions of rsync for windows. Since you want a multi-platform sync tool, rsync may be your best bet.

One comment I would have is that this will require 3 separate paths to sync using a a tool like Rsync, and you could have some replication delays you aren't expecting. One way to mitigate this would be to have a "master" copy, and only replicate from/to that.

If you have the possiblity of using just Windows at all 3 sites for your sync needs, ultimately your best option might be DFS. You could setup VPNs using PPTP and configure a DFS root that replicates between 3 servers in the 3 sites. The new DFS-R protocol is supposed to be very efficient (similar to Rsync), and all your replication issues can be handled by the DFS engine.

Solution 3:

JungleDisk -- you get 5GB for "free" (use the Rackspace Cloud, not S3, to avoid transfer charges) with their Desktop Sync subscription that runs all of $3 a month.

http://www.jungledisk.com/personal/desktop/features/

You can set up the client software on any platform and have "sync" folders that will live push/pull (using the cloud as the go-between) to your machines. $0.15 per GB after 5 so it's really cheap if you go over.

The product is owned/backed by Rackspace, a very reputable company (so it's not going to disappear overnight).