CentOS 触发器的实际项目应用案例精选
一 事件驱动与定时触发的典型场景
二 落地案例与关键配置
| 场景 | 触发源 | 关键动作 | 核心配置要点 |
|---|---|---|---|
| 前端代码自动部署 | GitLab push → Jenkins Webhook | 拉取代码、打包、同步站点目录、重启 Nginx | Jenkins 安装 Generic Webhook Trigger;GitLab 配置 push 事件;构建脚本包含 rsync/restart nginx |
| 登录风暴告警 | Zabbix 监控项(who|wc -l) | 超过阈值即告警(邮件/短信/企业微信) | 客户端 zabbix_agent2 配置 UserParameter=check.who.number,who|wc -l;服务端创建监控项与触发器表达式 |
| 远程容灾备份 | Crontab 定时 | 每日 3:30 拉取增量并校验 | rsync 命令:/usr/local/bin/rsync -vzrtopg --delete --progress backup@10.8.0.132::ctyun /ctyunbackup --password-file=/etc/server.pass;crontab 30 3 * * * |
| 日志错误即时告警 | rsyslog → 自定义脚本 | 匹配到 ERROR 即发邮件 | /etc/rsyslog.conf 开启 imudp/imtcp 接收;脚本轮询日志并调用 mailx 发信 |
| 设备插入自动备份 | Udev 规则 | 识别 USB 磁盘 → 挂载 → 执行备份 | /etc/udev/rules.d/99-usb-backup.rules:ACTION==“add”, SUBSYSTEM==“usb”, RUN+=“/usr/local/bin/usb_backup.sh” |
| 数据库写入自动填充 | MySQL 触发器 | 插入前自动设置 status=‘active’ | CREATE TRIGGER before_insert_user BEFORE INSERT ON users FOR EACH ROW SET NEW.status=‘active’; |
以上案例分别覆盖了事件驱动、时间驱动、监控驱动与数据库驱动四类“触发器”用法,均已在 CentOS 环境中广泛实践。
三 关键命令与最小可用示例
inotifywait 文件变更触发部署
Systemd Timer 每日报表(错峰与补发)
Zabbix 登录数触发器与告警
四 选型与避坑建议