Linux Trigger的更新频率说明
概念澄清 在 Linux 生态中,Trigger并非单一产品名,而是一类“当满足某条件就执行”的机制统称。不同场景下的“更新频率”含义不同:时间类由Cron/Systemd Timers决定;事件类(如inotify)为事件驱动、无固定周期;内核/硬件类(如IIO Timer Trigger)由硬件时钟与驱动配置决定;包管理类(如 Ubuntu 的 unattended-upgrades)由定时器与策略配置决定。
常见场景与典型频率
| 场景 | 典型频率或触发方式 | 可调参数或示例 |
|---|---|---|
| 定时任务 Cron | 由cron 表达式精确设定,如“每分钟/每天/每周” | 示例:0 2 * * * /path/script.sh(每天2:00执行) |
| Systemd Timers | 由**OnCalendar=或OnBootSec=**等决定,可按日/周/月或相对时间触发 | 示例:OnCalendar=*-*-* 02:00:00;配合服务单元执行任务 |
| 文件系统事件 inotify | 事件驱动,无轮询间隔;可“实时监控” | 示例:inotifywait -m /path -e create,delete |
| 内核 IIO Timer Trigger | 由定时器硬件时钟与驱动配置产生触发信号,周期取决于定时器设定 | 参考:drivers/iio/trigger/stm32-timer-trigger.c 等 IIO 触发框架 |
| Ubuntu 无人值守升级 | 默认每日检查与安装安全更新;由定时器与 APT 周期项控制 | 定时器:apt-daily.timer 默认06:00/18:00,apt-daily-upgrade.timer 默认06:00;配置:APT::Periodic::Update-Package-Lists "1"、APT::Periodic::Unattended-Upgrade "1"、APT::Periodic::AutocleanInterval "7" |
上述频率与示例分别来自对 Cron/Systemd 定时模型、inotify 事件机制、IIO 触发框架,以及 Ubuntu 的 apt-daily/apt-daily-upgrade 定时器与 APT 周期配置的实践与文档说明。
如何查看与调整你的触发频率
crontab -l 查看;编辑 crontab -e 调整频率(如改为每天02:00)。systemctl list-timers --all 查看下次触发时间;编辑对应 .timer 文件的 OnCalendar= 并 systemctl daemon-reload && systemctl enable --now <timer>.timer 生效。systemctl status apt-daily.timer apt-daily-upgrade.timer/etc/apt/apt.conf.d/20auto-upgrades(如 APT::Periodic::Update-Package-Lists "1"、APT::Periodic::Unattended-Upgrade "1"、APT::Periodic::AutocleanInterval "7")tail /var/log/unattended-upgrades/unattended-upgrades.loginotifywait -m ...),其“频率”取决于事件到达,无需设置轮询间隔。