title: Best way to monitor file system changes in linux
body: <p>I'm looking at building a file system sync utility that monitors file system activity, but it appears that some of the file system monitoring features in the linux kernel are obsolete or not fully featured.</p>
  
  <p>What my research as found</p>
  
  <p>dnotify came first with notification has the features of notifying for delete,modify,access,attribs,create,move can determine file descriptor, however is now out dated by inotify and fanotify</p>
  
  <p>inotify came out second with notification has the features of notifying access, modify, attrib, close, move, delete, create, etc however it does not give you a file descriptor or process and will be outdated by fanotify</p>
  
  <p>fanotify is the latest which informs of access, modify, close, but does not inform of delete or attribs, but does provide file descriptor</p>
  
  <p>I need a way of determining the process (e.g. from fd) and things like delete, modify, attribs, etc in order to sync everything, any suggestions? Unfortunately dnotify seems the best but most out-dated</p>