Unison is a tool to synchronize different files and folders. These can also be on different computers that are connected e.g. by SSH.
When synchronizing across different computers, Unison (unison) must be installed on both computers, the server and the client. The same version is required. There is also a package with a GTK+ interface named unison-gtk. Launching unison or unison-gtk the first time, creates the directory .unison under /home/<username>.
Defining a Synchronization Profile
unsion-gtk allows the generation of a new profile. It creates the file <profilename>.prf in .unison, which contains the names of the just defined two directories. To use enhanced features, the profiles' configuration files have to be edited manually.
Most important options are:
root = <directory> - names of the two directories to synchronize, has to be listed twice, once for every directory follow = Path * - follow symlinks ignore = Name <name> - ignore the files <name> path = <sub-directory> - synchronize only this subdirectory (can be listed more than once) perms = 0 - ignore changes in file permissions.
<directory> can be a normal directory or an ssh-connection: ssh://username@computername/directory/sub-dir.
perms = 0 is useful to synchronize e.g. an EXT4 file system with a FAT32.
Either run unison <profilename> or start the synchronization with unison-gtk. unison-gtk will list the changed files and indicate in which direction it intends to propagate the changes. For each file this can be changed by selecting the file and assigning the desired direction.
http://wiki.ubuntuusers.de/unison (in German)
http://www.cis.upenn.edu/~bcpierce/unison/ - The homepage of Unison