vote up 2 vote down star

Possible Duplicate:
Best way to sync two computers?

I would like to be able to sync files across my computers (Ubuntu, Windows XP and Windows 7). Ideally, it would be easy enough for my family to use. Real syncing (not just a shared folder), is important so that my brother can access files on his laptop wherever he goes.

Unfortunately, I have quite a limited Internet Download/Upload limit and so I don't want to chew up my usage with synching. Is their anyway to only sync over a LAN?

flag

closed as exact duplicate by alex, Ivo Jan 22 at 7:24

This question covers exactly the same ground as earlier questions on this topic; its answers may be merged with another identical question.

5 Answers

vote up 2 vote down check

As described in this answer, the latest experimental build of Dropbox allows LAN syncing to preserve some bandwidth.

link|flag
That makes the bandwidth use much more reasonable - but still significant – Casebash Nov 16 at 2:46
vote up 1 vote down

if its within a lan, why not set up a smb folder on one of the systems, and use that? If you really need to, you can probably use various native tools to keep a local copy, but that's what sounds simplest to me.

link|flag
Can you suggest any tools for syncing this? – Casebash Nov 16 at 2:33
using this method I elaborated a bit on how you can sync them invisibly with the user. – John T Nov 16 at 3:40
vote up 1 vote down

rsync can do this and it (or a port) is available for all platforms you listed.

  • Windows XP and Windows 7 can use cwRsync
  • Ubuntu comes with rsync preinstalled, if for some reason it didn't there are links on that page to assist you with it's installation and dependencies.


Since you'd like this to be easy for other's, I'd suggest simply making shares and having scheduled jobs sync at the interval of your choice(Scheduled tasks on Windows, Cron on Ubuntu Linux) so the process is invisible to your users. You can use cp with the -u switch on Ubuntu to copy only newer and non-existent files. On Windows, you can use XCOPY with the /E /I /H /Y and /Z switches. Examples:

for Ubuntu:

cp -u /home/john/stuff/* //Winshare/somefolder

and for Windows (batch, you'll probably want this to run hidden to check out this question):

XCOPY /E /I /H /Y /Z C:\Source D:\Ubuntu\Dest

You will need Samba installed on Ubuntu for this, and you'll need to make shares on the Windows machines. Additionally due to your brother's laptop being moved on occasion, you will need a way (you could write a small script) to remove the cron entry which he will need to run before he moves his laptop. Something as simple as crontab -r will be fine for a script called disconnect.sh and reconnect.sh could be crontab /path/to/premadetab.txt. Within premadetab.txt would simply be your entry specifying how often to sync. If you are unfamiliar with cron, you can use a crontab generator.

link|flag
Thanks, I may consider using this for my own files, but I'd be pretty surprised if I managed to get my family onto using this – Casebash Nov 16 at 0:44
If it is required that other family members will be using this you should add that to the question. It's a very important detail. – John T Nov 16 at 0:46
Thanks for the suggestion. I suppose that with that method, it would also be possible to set up a program so users could synchronise files when required. This looks like a reasonably big task, so it might take a while for me to get around to trying this. – Casebash Nov 16 at 10:45
vote up 0 vote down

I would probably use rsync myself, but there should be at least one response here recommending Unison.

link|flag
vote up 0 vote down

Allow all of your computers to accept incoming FTP connections, leave it blocked in the router from the Internet or unless you secure your computer, leave it open and you can connect using DyneDNS. But locally, set up synctoy on a windows computer that stays home.

link|flag

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