Automatically sync select folders between two Macs over LAN

I'm working on two Macs, an iMac and a MacBook, both under OS X 10.8.5. There are several GB of data that I need on both computers. I have used Dropbox and ownCloud, but I don't see why I need to transfer the files over the internet when I have a cable that connects both computers directly over my local network.

What I want is a solution that automatically syncs selected folders between these two computers, similar to a Cloud service, but directly, without the Cloud.

I have no idea how to run rsync and don't want to learn it, so the solutions shouldn't be more complicated than installing Dropbox. It would be nice if the solution was open source and free, but that is not a must.


Update [2014-05-19]:

I'm under OS 10.9 by now, and I use ChronoSync to sync my computers. I wrote an AppleScript that mounts one computer from the other, opens a ChronoSync file, and then unmounts the volume again when syncing is complete. I saved this AppleScript as an app and put it in my Dock. So now all I have to do is plug in the USB cable into my laptop, have both computers running, and click the app symbol in the Dock.

The only problem I have is with ChronoSync sometimes showing an error on .DS_Store files. I'm unable to exclude this file type or file name, although theoretically ChronoSync offers the option to do this. It's not a real problem, though, as I told ChronoSync not to stop syncing on errors, and as yet I haven't had any problems with those files.

I may look into iBackup, soon.


Update [2015-04-13]

It's been two years now and I still happily run my AppleScript. I accidentally stumbled upon this question yesterday, and realized that I never shared the code of my script. So here it is. Open the AppleScript-Editor, insert this code, and save as an application.

mount volume "afp://YOUR_USERNAME:[email protected]:548/YOUR_USER_FOLDER"

tell application "ChronoSync"
    activate
    open alias "Macintosh HD:Users:YOUR_USER_FOLDER:PATH:TO:SYNC_FILE.csyn"
    tell document 1 to Synchronize

    -- wait until syncronization is finished
    repeat while syncStatus of document 1 is not 0
    end repeat

    tell document 1 to save
    tell document 1 to close

    quit
end tell

tell application "Finder"
    eject disk "YOUR_USER_FOLDER"
end tell

Notes:

  • Replace CAPITAL_LETTER_PHRASES with your information. Take care that you don't accidentally delete the colons (":") between them.
  • Use the correct IP address for your "remote" computer.
  • I pass my username and password in the afp-URL. If I remember correctly this will cause your password to be written to your log files. This is not an issue for me, because the computer that runs this script is not connected to the internet. If you worry about security, you might want to delete that part and fill in your password each time in the prompt that comes up. I don't remember, if that breaks the script.
  • Remember to allow "File Sharing" under the "Sharing" settings in the System Preferences of the computer you want to connect to (in my case my laptop; the above script runs on my desktop computer at home). I deleted all the predefined "Shared Folders" and "Users" there. I always deactivate File Sharing after syncing, because otherwise someone else on the same WLAN might access my computer.

I still have to look into iBackup, lol.


Solution 1:

BitTorrent Sync does exactly what you want. It syncs over LAN by creating a "secret code" between the synced folders. You have the option to view your files on an iOS device through their free app. It's free and supports multiple platforms.

This is quoted from their website:

  • Sync and Share - Sync unlimited files between your own devices, or share a folder with friends and family to automatically sync anything.

  • Private and Secure - File transfers are encrypted. Your information is never stored on a server in the cloud and your data is protected by private keys.

  • Bigger is Better - BitTorrent Sync is specifically designed to handle large files, so feel free to sync original, high quality, uncompressed files.

I have been using it for couple months now. It's pretty much set it up and forget it.

Solution 2:

I use iBackup for this. It is actually a GUI for rsync, so it is very efficient at syncing.

It's not quite as simple as DropBox, but it is quite straightforward.

It is free for personal use.

Solution 3:

I have 3 iMacs, 3 Mac notebooks and two PCs. Keeping files in sync on each computer was so much trouble. So, I came up with my own idea. I bought Apple Time Capsule hard drive and connected to my LAN. Then I put all my files on this drive.

Now I can access all files from all 6 different computers and I don't even have to use any hard drive space on any computers. Works beautifully, including watching stored movies on any of my computers from my Time Capsule. I even access files from PCs too.

Only drawback is that if you lose the file, you cannot get it back. But, I have two time capsules. The second one I use as backup and I back it up manually once a month.