I have been using Unison to sync files for the past several years. It does a great job, and can sync between Windows, OS X, and Linux computers. Of course, nowadays you can also use Dropbox for this sort of thing, if you don’t mind the space constraints and security issues. Allway sync was once my favorite sync program, but it only syncs Windows machines. It took a bit to get Unison going, and I never got the GUI to work, but for the past 3 years it has synched my files both ways without any problems. I have always used these binaries. If you are going to be synching from one computer to another, you will need to install the same version of Unison on both machines. It syncs via ssh, and only sends the pieces of the files that have changed. I always run unison from the command line (usually through a LaunchAgent), as follows:
unison -options /local/folder ssh://remote.host/path
The options I use are
-ui text
skips the GUI-perms 960
This mask is applied to permissions of everything. Note
960=0o1700
, so in my case I am making sure that my local files
(which are usually world-readable by default) are only readable by
me on the server.-auto
syncs without asking, unless there are conflicts-addversionno
calls unison-40
instead of unison on the remote
server. I need this because the remote server has a really old
version of unison installed.-batch -silent
Ignores conflicts completely, instead of asking the
user, and prints no output. I only use these in the automated
version that runs once an hour. I rarely (less than twice a year) have
conflicts.