Linux Trigger 配置与工作流程优化
一 常见触发器与适用场景
二 配置步骤与最小可用示例
crontab -e0 * * * * /path/to/script.sh/etc/systemd/system/mytimer.service[Unit]
Description=My Timer Service
[Service]
ExecStart=/path/to/script.sh
/etc/systemd/system/mytimer.timer[Unit]
Description=Run hourly
[Timer]
OnCalendar=*-*-* *:00:00
Persistent=true
[Install]
WantedBy=timers.target
sudo systemctl enable --now mytimer.timersystemctl list-timers --allsudo apt-get install inotify-tools 或 sudo yum install inotify-toolsinotifywait -m /path/to/dir -e create -e delete |
while read path action file; do
/path/to/script.sh "$path" "$action" "$file"
done
/etc/udev/rules.d/99-mydevice.rulesACTION=="add", SUBSYSTEM=="usb", ATTR{idVendor}=="1234", ATTR{idProduct}=="5678", RUN+="/path/to/script.sh"
sudo udevadm control --reload-rules && sudo udevadm triggermywatch.path[Path]
PathExists=/data/incoming
[Install]
WantedBy=multi-user.target
mywatch.service[Service]
ExecStart=/usr/bin/my_command
以上示例覆盖了时间、文件、设备与路径触发的主流用法,可直接按需裁剪与组合。
三 性能与可靠性优化要点
time、日志与监控工具(如 top/htop/vmstat)建立执行时长、频率、失败率基线并持续观测。四 场景化组合方案
inotifywait 监听目录 → 轻量校验 → 将任务写入作业队列(如本地文件/Redis)→ 后台异步 Worker批量消费与落库,主流程快速返回,避免文件写入阻塞。Udev 规则识别 VID/PID → 执行挂载/初始化脚本 → 通过 systemd 启动/重启依赖服务,确保依赖顺序与日志统一。五 快速排错与安全加固清单
systemctl status/ journalctl -u <unit> 查看服务与定时器日志;必要时用 time 评估执行耗时。RUN+= 中执行复杂逻辑,必要时委托给系统服务。