Unison solves a very common problem: keep data between two operating systems (or disks) at sync when both the copies are being updated. It is a multi-platform file synchronization utility with some unique features from multiple categories of solutions like configuration management packages, distributed file-systems, unidirectional mirroring utilities and other synchronization software.
It’s very common to have multiple OS-es on multiple systems. However, it shouldn’t force you to copy full files to and fro when maintaining a shared version is not possible. Perhaps the best feature of Unison is it runs on multiple operating systems, offering the same solution whether you are on Linux or Windows or Mac.
- 2-way sync: 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 for further action.
- No admin privileges, kernel tweaks required on either host.
- Easy to use GUI suitable for end users.
- Works between any pair of machines connected to the internet, communicating over either a direct socket link or tunneling over an encrypted ssh connection.
- Minimal network bandwidth usage (works on slow PPP connections also). Transfers of small updates to large files are optimized using a compression protocol similar to rsync.
- Robust and self-correcting: leaves the replicas and its own private structures in a sensible state at all times, even in case of abnormal termination or communication failures.
- Open, clear and precise specification. GPL Licensed.
- Supports Linux, Unix, OSX and Windows.
Despite its powerful features, Unison needs manual intervention. A service based approach would have supercharged it.
In addition to the non-Linux OS-es mentioned above, Unison is available in the default repos of many Linux distros. To install Unison on Ubuntu, run:
$ sudo apt-get install unison-gtk