DIY iDisk

I don’t know anyone that uses the iDisk functionality from .mac and likes it.

Everyone complains that it’s wayyy too slow, including me. It even makes your computer to “run slower” (whenever you open Finder for instance). It’s easy to understand why it makes your computer run slower: iDisk is a remote drive. Even if you use the iDisk syncing capabilities it’s still slow, since it tries to connect to .mac frequently for synchronizing.

The solution is simple: Make your own version of iDisk and use a faster server than .mac’s. I personally don’t like the idea of having a remote drive, I prefer to have a local directory and synchronize it with my server instead. Just for the record, I have a server always connected to the internet and 3 other computers that I need to sync with. I change files from that directory on all the computers and I want all the computers to be synced.

One year ago I was looking for this type of solution and back then, the best thing I found was rsyncbackup. It works fine except that if you delete a file in one of the computers it doesn’t get deleted on all the other ones. It actually appears again on the server that you just deleted from, after a sync. Since I usually don’t need to delete files from that directory this solution worked fine and I never researched again to find a better one.

Last week there was a thread on Slashdot about this. I liked two of the solutions presented there (or at least these two caught my eye):

Although Dropbox looks promising, I like to control my own stuff so I decided to install Unison. For short, it works perfectly. It does everything I need and it doesn’t have the problem I have with rsyncbackup. It does the job efficiently and it’s very flexible. You have a lot of different options for what to do in case of a conflict.

The installation and configuration is really simple. Just follow these steps (start with the client or read step 5):

  1. If you have macports installed, just execute port install unison. If not, download it from the site and install it.
  2. If you used macports, then create the file ~/Library/Application\ Support/Unison/mydisk.prf with your settings. Since I like learning by example here’s an example that I created for you.
  3. To sync just run: unison mydisk -silent in one of the client computers. (-silent to not output anything to stdout)
  4. Add a cron to run it every hour. If you’re running Linux you might want to take a look at incron.
  5. Run the steps 1 through 4 on every computer you want to synchronize. When installing the server you only need the step 1.

Have fun!

2 thoughts on “DIY iDisk

  1. Hi, I think I know exactly why iDisk is painfully slow. Under the Preferences on OSX, there’s an option to sync your data. I think a large portion of unexperienced users unknowingly set to a full sync. Imagine how much data everyone has. People think that this is ok, but it’d be better to invest $80 on an external HD to backup your data.

    The servers are probably getting overloaded b/c of people’s misconception that they can backup their entire computer. Although, for $99, Apple should take care of this.

Comments are closed.