С задачей синхронизации двух удаленных хостов не сталкивался, но для синхронизации локального и удаленного пока пользуюсь:
rsync для синхронизации файлов. Если недоступен ssh, приходится юзать goodsync, но он значительно медленнее.
sqlyog или navicat для синхронизации бд.
у rsync вроде бы есть ограничение: один из синхронизируемых хостов обязательно должен быть локальным, т.е. его придется запускать на одном из удаленных хостов. Но это не точно, надо проверять.