rsync

This will verbosely sync the 2 directories locally

1rsync --delete --progress --sparse -va /dir/of/source/ /dir/of/destination/

And to do the same thing over SSH:

1rsync --sparse --progress -avc -e ssh user@example.com:/dir/of/source /dir/of/destination/