一句话总结
- inotify:发生了什么?
- cron:什么时候做?
核心区别
| 对比维度 | inotify | cron |
|---|---|---|
| 触发方式 | 文件/目录事件 | 时间点 |
| 是否实时 | 是 | 否(最小 1 分钟) |
| 是否轮询 | 否 | 是(时间轮询) |
| 依赖条件 | 文件系统变化 | 系统时间 |
| 适合场景 | 文件变化即处理 | 定期、计划性任务 |
| 系统层级 | 内核机制 | 用户态守护进程 |
什么时候用哪个?
用 inotify,当你需要:
- “一有变化就立刻处理”
- 不想浪费 CPU 反复检查
- 文件变更频率不确定
例如:
配置文件一改 → 服务立即 reload
用 cron,当你需要:
- “不管有没有变化,时间到了就跑”
- 任务可以延迟执行
- 不关心实时性
例如:
每天 02:00 做一次全量备份
能不能互相替代?
不能,也不应该。
用 cron 模拟 inotify:
👉 必须频繁轮询,浪费资源,还不实时
用 inotify 模拟 cron:
👉 没有“时间事件”这一概念
但在实际工程中,经常组合使用:
cron 定期启动任务
inotify 负责监听具体变化