I happen to know about rsyn, and I use rsync to sync between my mac and a linux server as follows.
rsync -r -t -v MAC LINUX rsync -r -t -v LINUX MAC
I expected to run the first command to sync, but I needed the second command also when a change is made in LINUX.
Am I missing something? Does rsync have an option to sync between two directories?