My following is from developer's pointer view. If you are a system administrator, it does not suit for you.
map<string, int> file_map; // the string to store the file name like "/usr/bin/ls", the int is the length of the file. Store all the file info to this map.
If you want to know which file changed, just to compare the file size, then backup it.
The other method(I prepare this):
1. read the last backup time.
2. compare the last update time of the file with the time in step 1
3. If newer, then backup it, else continue
4. redo step 2, 3 for each file.