You could just run rsync periodically without checking anything. It will only transfer files that have changed and will walk the whole tree doing the comparisons with the -R or -a options.
Yeah i know, but my work is sync lots of small files (hundreds of them), and rsync will stay all day to check all that files on the remote host...