CentOS 中的 Trigger 配置步骤
一 常见场景与总体说明
二 使用 systemd 定时器实现事件触发
[Unit]
Description=My Scheduled Task
After=network.target
[Service]
Type=oneshot
ExecStart=/usr/local/bin/backup.sh
User=root
[Unit]
Description=Timer for My Scheduled Task
[Timer]
# 每天 02:00 执行;Persistent=true 表示错过执行在开机后补跑
OnCalendar=*-*-* 02:00:00
Persistent=true
# 也可用间隔触发示例:
# OnBootSec=5min
# OnUnitActiveSec=1h
[Install]
WantedBy=timers.target
sudo systemctl daemon-reload
sudo systemctl enable --now mytask.timer
systemctl list-timers --all
systemctl status mytask.timer
journalctl -u mytask.service
三 数据库触发器示例 MySQL
DELIMITER //
CREATE TRIGGER before_insert_user
BEFORE INSERT ON users
FOR EACH ROW
BEGIN
SET NEW.status = 'active';
END;
//
DELIMITER ;
SHOW TRIGGERS LIKE 'users'\G
INSERT INTO users(username) VALUES ('alice');
SELECT * FROM users WHERE username='alice'\G
四 监控平台触发器示例 Zabbix
五 补充 传统定时任务 cron 的要点
0 6 * * * /usr/local/bin/backup.sh
crontab -l # 查看
crontab -r # 删除