Unison – file synchronization tool
Unison shares a number of features with tools such as configuration management packages (CVS, PRCS, Subversion, BitKeeper, etc.),distributed filesystems (Coda, etc.), uni-directional mirroring utilities (rsync, etc.), and other synchronizers (Intellisync,Reconcile, etc).
Unison runs on both Windows and many flavors of Unix (Solaris, Linux, OS X, etc.) systems. Moreover, Unison works across platforms,allowing you to synchronize a Windows laptop with a Unix server, for example.
Unlike simple mirroring or backup utilities, Unison can deal with updates to both replicas of a distributed directory structure.
Updates that do not conflict are propagated automatically. Conflicting updates are detected and displayed.
Unlike a distributed filesystem, Unison is a user-level program: there is no need to modify the kernel or to have superuser privileges on either host.
Unison works between any pair of machines connected to the internet, communicating over either a direct socket link or tunneling over an encrypted ssh connection. It is careful with network bandwidth, and runs well over slow links such as PPP connections. Transfers of small updates to large files are optimized using a compression protocol similar to rsync.
Unison is resilient to failure. It is careful to leave the replicas and its own private structures in a sensible state at all times,
even in case of abnormal termination or communication failures.
Unison has a clear and precise specification.
Unison is free; full source code is available under the GNU Public License.
Install Unison in Ubuntu
sudo aptitude install unison-gtk
This will complete the installation
If you want to open goto Applications--->Internet--->Unison
When you run it in GUI mode for the first time, you’ll be prompted to create a new synchronization profile. Simply specify the paths to the directories you want to keep in sync and you are done.
Enter First Directory
Enter Second Directory.As you can see, Unison supports synchronization via SSH, which is a handy feature for syncing remote machines.
Unison then checks both directories and displays all the files to be synchronized. Pressing the Go button performs the sync.
Although the basic operation of Unison is pretty straightforward, it offers a few advanced features, including a powerful and flexible conflict-resolution mechanism that provides a comprehensive set of options.
Once Unison has scanned the directories,you can specify the way it should handle conflicts with the options available under the Actions menu. For example,you can choose to solve conflicts in favor of the desired directory by choosing either the Resolve all conflicts in favor of first root orResolve all conflicts in favor of second root command. Also, you can force all changes from one directory to another and replace older files with newer ones.
Specifying all the synchronization settings manually each time you run Unison is hardly ideal. Fortunately, Unison provides an elegant solution – multiple profiles: For each profile, you can specify settings in a .prf file and save it in the ~/.unison directory.
I would just like to report bad problems when using unison together with trickle. Large transfers tends to hang unexpectedly. I haven’t had problems with e.g. rsync and trickle, but it doesn’t seem to play nice with unison. Is anybody experiencing similar problems?
I had used Unison for a few days, but then I noticed that it couldn’t always detect new files on my USB drive.
Interestingly, when I manually copied the new files over to my machine, and then I re-ran Unison, it did detect that something weird was going on, but for this I don’t need a tool. What is the point if first I have to manually do the work, and then Unison can detect that I have done something?