In trying to set up a highly custom periodic folder synchronization setup for synching a directory on an XP machine to an NFS export on a remote (debian) box, I've become... contemplative, and am second guessing myself (partially because I'm more a developer than a systems guy, and you don't know what you don't know, you know?).

The network is assumed to be highly unreliable, and network bandwidth is at a premium and these files can be quite large. I have zero control over the export or the remote machine hosting it (so I can't set up some sort of custom daemon there), but I can do as much computation on the XP side as I want to.

The solution I came up with was to compare file size ( L bytes locally, R bytes remotely), and only append transmit (L-R) bytes to each file (i.e., to send only the delta).

My questions are twofold:

1) I don't want to reinvent the wheel. Is there a better, standard way that I can perform this operation reliably? Because I'm not sure if I really want the answer to #2 ;)

2) If this sounds like a fine solution, what are some more off-beat edge cases, things to guard, etc.?

Thank you in advance!


RSync sounds like it would be your ticket. There is a cygwin binary for Windows.

First hit for "rsync windows" on Google gives you DeltaCopy .

  • Can you recommend a solid resource that can enable me to set up a functional system as quickly as possible?
    – Nate
    Oct 14 '10 at 14:13
  • See my edit above.
    – mfinni
    Oct 14 '10 at 15:12
  • From the DeltaCopy manual that I quickly searched, yes, it appears that you will require an rsync daemon to run on the Debian server. It's not "custom", it's often included in the installation. Also, it can run over SSH, which is secure and often already open.
    – mfinni
    Oct 14 '10 at 15:24
  • Everything I've seen talks about requiring an rsync daemon on the server side - Is that true, or does it still work without the daemon? The reason I ask is that I am almost 100% sure that the person in control of the debian machine would NOT open that port or run that service.
    – Nate
    Oct 14 '10 at 15:37
  • rsync has options for running over SSL, that will start the remote rsync instance. This is the way I have always run it to remote servers. See the documentation for -e option.
    – BillThor
    Oct 14 '10 at 18:22

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.