Syncing Windows client to Ubuntu Linux Server in Unison

 Unison is an excellent cross-platform file synchronization utility.

  1. My brother and I were syncing large binary files, so version control systems are out of the picture.
  2. We also wanted updates to come from either his or my desktop without having to place the desired files on the server for a uni-directional synchronization like rsync.
  3. It needed to be a cross-platform utility.

Unison fit the bill well. As with many Unix applications made cross-platform, sometimes getting the graphical user interface working properly on Windows can be troublesome. Below are guides I followed, and a few notes from my experience with the process. Many thanks to the original authors of these articles :)

Our setup was my brother's Windows XP desktop, my Kubuntu Linux desktop, and an Ubuntu LTS server. The server and my desktop are running Unixon 2.27.57. For my brother's Windows desktop we downloaded Unison 2.27.157 and GTK+ 2.17.7 rev A. You may find that another combination of software versions works for you, but we can confirm this combination is working. Follow the installation instructions on the Windows download page. 

After getting things installed and we configured our profile to perform syncs over SSH. The first sync takes a while but subsequent syncs get shorter. One issue we ran into is that during the "Waiting for changes from server" step of the sync process SSH was timing out.

Fixing the issue was a quick change to sshd_config found in the OpenSSH FAQ. Found at /etc/ssh/sshd_config on an Ubuntu server. I set my ping period to 30 seconds.

After that everything has been working swimmingly!

1 Comment

Comment

I've typically thought about getting involved with this program, and this post could just give me the go ahead to do so. A question: how much time prior to it starts working?