My first choice was rsync but it caused some issues and is too manual.

My second choice, currently under evaluation is Unison. Are there any other good options for bi-directional auto-syncing?

The synching tool cannot add it's own files to the directories to be synched. Which removes CVS/SVN as a choice. Plus they are too manual.

The requirements are user-level program on both sides, no root account access available. Only scanning on linux. On windows it could be a virtual drive/path.

Very fast and efficient like rsync.

Some other requirements include: machines are not on the same network, files cannot fall into the wrong hands, nor can they be handled by 3rd parties, this pretty much excludes all online storage sites.

link|improve this question
2  
I'd go with Unison, it's good, mature and reliable. – moritz Oct 17 '08 at 7:07
feedback

migrated from stackoverflow.com Apr 2 '10 at 19:37

This question came from our site for professional and enthusiast programmers.

9 Answers

I love Dropbox, but be aware that it's a GUI app, and I can't tell anything about the Linux version. Windows and MacOS clients work like a charm here.

link|improve this answer
The Linux client works only for Gnome, but its very similar to the Windows client. – ARKBAN Oct 17 '08 at 12:29
1  
Interesting, but to make things more stringent, I can't have the files fall into the wrong hands. So encryption is extremely important – Gregory Oct 17 '08 at 16:00
"Some other requirements include: machines are not on the same network, files cannot fall into the wrong hands, nor can they be handled by 3rd parties, this pretty much excludes all online storage sites" - rules out Dropbox then as an online 3rd party service. – tjmoore Jul 17 '11 at 15:09
feedback

I often use CVS/SVN to synchronise between machines, including between Windows and Linux. The great advantage is that every checked out sandbox can be edited wherever it is instead of having to worry about where the master copy is. You can therefore fix a script, source code, or whatever, on the machine where you're seeing the problem without the risk that your changes will be clobbered by the next "rsync" refresh.

The missing link is to write a script that automatically updates from the CVS archive every time you log in, so that changes propagate. I wrote mine so that it only updates files that won't generate a conflict - you should handle those tricky merges manually.

link|improve this answer
feedback

I've had some success with SyncToy, it's a free download from Microsoft. It can synchronize to a Linux box just fine if you use SAMBA.

link|improve this answer
Year, but SyncToy is very slow... nothing like rsync. It will resend the hole file even if you just changed the timestamp, or add a meta tag. – Philibert Perusse Oct 17 '08 at 12:30
what if there is no samba available. Remember I mentioned user level, so can't even installs samba – Gregory Oct 17 '08 at 15:57
feedback

If the machines are connected on fast local network, gigabit/Gbe or better, why not just use a network drive. Keep the files on the network drive, no need to sync anything.

link|improve this answer
What if the machines are not on the same network – Gregory Oct 17 '08 at 15:56
feedback

I've long battled with the same problem. Every solution has a drawback that feels like an absolute deal breaker. I ended up going with a centralized server (just an old junker I had lying around) that I rsync to on log out of my linux box. Then I gave my Windows PC access via Web DAV.

I also toyed with, in the past, the version control scheme. That works mostly as well, and is super easy to script in Linux. The Windows side, well, that's a different story I guess. Then again, I'm Windows retarded since I rarely use it. Honestly though, if you want a spot that's in constant sync, then you really need a network file share. If that's not an option then you need something like Dropbox (works great in Linux with Gnome at least). You can ensure that the files are behind SSL, and not available to the public that way. Yet, you're still capped at 2Gs of space.

Given how specific your scenario is, you're likely going to need something that you roll yourself. Personally, I dig the centralized server, so you can push/pull from anywwhere that you need to. You can use rsync to push/pull files to the server in question, but obviously some form of CVS/SVN is likely the best option. Unless of course, you're dealing with significantly large amounts of data, or large individual files.

link|improve this answer
feedback

Not a syncing solution per se, but it should solve your problem: Andrew File System.

link|improve this answer
feedback

Check out the application called Super Flexible. It may fit exactly what you need...

link|improve this answer
feedback

I don't have enough karma to upvote or leave comments, so let me second the suggestion for dropbox. It works very well and is extremely easy to use. It does have a couple of downsides though:

First, you have to trust DropBox not to peek at your data. If you are not storing sensitive information then this is probably just a nonissue, and I find them very trustworthy as far as for profit companies go. But it is always something to think about when using any cloud computing service.

Second, if you want more than 2GBs of synching you need to pay. They are worth it though and 2GB holds a lot of text if you are focused on source code or other text files.

You didn't mention if these systems had some kind of direct link or not. If they have a direct link, you may consider just writing a script that checks the time stamps on files and synchs both folders to the most recent one on a regular basis.

link|improve this answer
feedback

I have to talk up SpiderOak.

Multiple OS, secure and developers are working hard on it.
Free 2Gig to start and after that you pay but what you get it reliable service and a great product.
Might fit what you need to do if you are willing to pay to subscribe.

link|improve this answer
feedback

Your Answer

 
or
required, but never shown