rsync does not natively have any way to detect changes to files. The easy way to do this would be to set up a cron job that calls rsync at some (short) time interval. This could be a little wasteful of resources if the rsync functionality is not constantly required by all users, so you could write a script using the at command to call rsync and put it in the user’s .bashrc file.
If you absolutely must detect file changes, both SELinux and AppArmor can track changes to selected parts of the filesystem. You could set up a profile for the filesystem in question, place the profile in audit mode (using aa-audit in AppArmor) and have your script tail the system log, grep for a string that indicates a file change, and call rsync when the string pops up. There might (hopefully) be a more elegant way to make it happen, but a few minutes’ perusal of the AppArmor API wiki didn’t turn up any obvious hooks.