I have two virtual machines, Host OS is ESXi 3.5 and guest OS is Centos 4.6. There are two ESXi servers remotely located, each containing a Centos 4.6 virtual machine. I wish, whatever change I make in any file/folder in one virtual machine should be automatically synchronized on other remote virtual machine. The synchronization process should be automatic. It should only sync differentials, not simulate entire copy with overwrite operation. Sync should be intelligent enough to look for what has changed and what not, and should only update the changed files/folders. Further, there should be some sort of overview and selection for syncing, for example, if it shows 4 files have changed, It should be possible to sync only two files and leave other two for the time being. So, some intelligent syncing mechanism for Linux is needed.
I've post a similar question here. Still no answers.
I've been trying many, but unison is the only one that really works. It can be used in headless mode with cron (automatic) or in GUI mode, the latter shows the diffs between the two directories you want to compare.
It tends to be "disk-intensive" on local machine but calculates delta transfers, and doesn't waste bandwidth (it uses rsync for transfers).
You might also want to try free file sync: that is similar but less popular.
One option is to use rsync or the graphical version (gnome) of it grsync.
I use this program to backup my files but it can be used to sync.
To automate the process you could use a cron job with the frequency you desire.
Syncing in multiple directions is very hard to do well. What happens when you get an inevitable conflict? i.e. fileA was edited on node1 and node2 simultaneously; or close enough to simultaneous that your system sees changes in both. Which one is prefered? do you stop the sync and wait for manual intervention?
You'll find that when multiple systems need to access/sync the same data and need both read and write access, you will have one of 3 methods:
Due to the problems I mentioned before, almost no-one does a peer to peer syncing tool. If you can rework it so that you always have updates in one direction things become extremely easy however.