文件变动监听
- inotify
inotify 是一种强大的、细粒度的、异步的文件系统事件控制机制。linux 内核从 2.6.13 起,加入了 inotify 支持。通过 inotify 可以监控文件系统中添加、删除、修改、移动等各种事件,利用这个内核接口,第三方软件就可以监控文件系统下文件的各种变化情况,而 inotify-tools 正是实施监控的软件。在使用 rsync 首次全量同步后,结合 inotify 对源目录进行实时监控,只要有文件变动或新文件产生,就会立刻同步到目标目录下,非常高效实用。
- watchman
它开源用来监视文件并且记录文件的改动情况,当文件变更它可以触发一些操作,例如执行一些命令等等。
- ReadDirectoryChangesW
- FindFirstChangeNotification 一些列 api
文件属性获取
- lstat(linux)
- GetFileAttributes /GetSecurityInfo (windows)
文件变动检查
- 检测文件属性, 和已存在的进行比较
- 保存 hash, 检测时比较 hash