A very nice and powerful program, built over the
rsync protocol, is Unison.
It has a very nice interface, and the client is available for at least Linux (more or less all variants) and Windows. The basic behavior is very easy to grasp, with a graphic interface and easy configuration, and if you need to do more complex things, you can manually edit the configuration files and/or script it.
It has been my backup/mirroring/uploading utility in the last five year at least, and never saw a bug or missed a file.
You can install it with
sudo apt-get install unison-gtk
and for a smooth behavior, you should have configured a working connection with your endpoint (I normally use ssh connections).