CentOS Trigger 部署指南
一 概念澄清
二 使用 systemd 定时器与服务部署(推荐)
[Unit]
Description=My Custom Service
After=network.target
[Service]
Type=oneshot
ExecStart=/usr/bin/my_service_executable
RemainAfterExit=yes
[Install]
WantedBy=multi-user.target
[Unit]
Description=Timer for My Custom Service
[Timer]
OnBootSec=5min
OnUnitActiveSec=1h
OnUnitInactiveSec=30min
Persistent=true
[Install]
WantedBy=timers.target
sudo systemctl daemon-reload
sudo systemctl enable --now my_service.timer
systemctl list-timers --all
journalctl -u my_service.timer
journalctl -u my_service.service
三 其他常见触发方式
DELIMITER //
CREATE TRIGGER before_insert_user
BEFORE INSERT ON users
FOR EACH ROW
BEGIN
SET NEW.status = 'active';
END;
//
DELIMITER ;
适用场景:在插入/更新/删除时自动执行业务规则或字段填充。sudo yum install -y inotify-tools
inotifywait -m /path/to/dir -e create -e delete |
while read path action file; do
/path/to/your/script.sh "$path" "$action" "$file"
done
# /etc/udev/rules.d/99-mydevice.rules
ACTION=="add", SUBSYSTEM=="usb", ATTR{idVendor}=="1234", ATTR{idProduct}=="5678", RUN+="/path/to/your/script.sh"
sudo udevadm control --reload-rules && sudo udevadm trigger
四 若指的是第三方 CentOS Trigger 工具
sudo yum install -y epel-release
sudo yum install -y centos-trigger
sudo ct-create --name my_task --interval 3600 --command "/path/to/script.sh"
sudo ct-start my_task
sudo ct-list
sudo ct-log my_task