centos trigger配置步骤
导读:CentOS 中的 Trigger 配置步骤 一 常见场景与总体说明 在 CentOS 环境中,“触发器”通常对应三类需求: systemd 事件/定时器触发(系统启动、定时、空闲、路径激活等事件触发服务); 数据库触发器(如 MySQ...
CentOS 中的 Trigger 配置步骤
一 常见场景与总体说明
- 在 CentOS 环境中,“触发器”通常对应三类需求:
- systemd 事件/定时器触发(系统启动、定时、空闲、路径激活等事件触发服务);
- 数据库触发器(如 MySQL 在 INSERT/UPDATE/DELETE 前后自动执行逻辑);
- 监控平台触发器(如 Zabbix 基于监控项表达式触发告警动作)。
- 下面按这三类给出可直接落地的配置步骤与示例。
二 使用 systemd 定时器实现事件触发
- 适用:替代 cron,按日历/间隔/系统事件触发脚本或服务;支持开机自启、日志与一次性任务。
- 步骤
- 创建服务单元(定义要执行的任务)
- 新建文件:/etc/systemd/system/mytask.service
[Unit] Description=My Scheduled Task After=network.target [Service] Type=oneshot ExecStart=/usr/local/bin/backup.sh User=root
- 新建文件:/etc/systemd/system/mytask.service
- 创建定时器单元(定义何时触发)
- 新建文件:/etc/systemd/system/mytask.timer
[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
- 新建文件:/etc/systemd/system/mytask.timer
- 使配置生效并启动
sudo systemctl daemon-reload sudo systemctl enable --now mytask.timer - 验证与排错
systemctl list-timers --all systemctl status mytask.timer journalctl -u mytask.service
- 创建服务单元(定义要执行的任务)
- 提示
- 需要“一次性延迟执行”可用:systemd-run --on-active=5min /usr/local/bin/once.sh
- 需要“路径激活”(文件/目录变化触发)可用 Path 单元监听路径变更后启动服务。
三 数据库触发器示例 MySQL
- 适用:在表数据变更时自动维护字段、审计或联动逻辑。
- 步骤
- 登录数据库并选择库:mysql -u root -p,USE your_db;
- 创建触发器(示例:插入前将 status 设为 active)
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
- 适用:当监控指标满足表达式阈值时自动产生事件并执行动作(邮件、脚本、远程命令等)。
- 步骤
- 准备监控项(Item):如 system.cpu.load[all,avg1]、vfs.fs.size[/,free]、vfs.file.cksum[/etc/passwd] 等。
- 创建触发器(Trigger)
- 表达式范式:{ 主机:监控项.函数(参数)} 运算符 阈值
- 示例:
- CPU 1 分钟平均负载 > 5:{ web1:system.cpu.load[all,avg1].last(0)} > 5
- 根分区可用空间最近 5 分钟最大值 < 10G:{ vfs.fs.size[/,free].max(5m)} < 10G
- /etc/passwd 校验和变化:{ vfs.file.cksum[/etc/passwd].diff(0)} > 0
- 设置严重级别(如 Warning/High)与描述。
- 配置动作(Action)
- 事件源选择“触发器”;设置触发条件(如 Problem 状态持续 60 秒)。
- 在“操作”中配置媒介(如 Email)与收件人,或“远程命令”(如重启服务);可设置“恢复操作”与“升级”。
- 验证
- 制造阈值条件(如临时增加用户、占用磁盘),在“监测 → 问题”查看告警;检查“报表 → 动作日志”。
五 补充 传统定时任务 cron 的要点
- 适用:简单周期任务、系统级或用户级计划任务。
- 步骤
- 编辑当前用户任务:crontab -e
- 语法:分 时 日 月 周 命令
- 示例:每天 06:00 执行备份
0 6 * * * /usr/local/bin/backup.sh
- 示例:每天 06:00 执行备份
- 常用命令
crontab -l # 查看 crontab -r # 删除 - 日志与守护
- 查看日志:/var/log/cron
- 服务管理:systemctl status crond(CentOS 7 使用 crond)。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: centos trigger配置步骤
本文地址: https://pptw.com/jishu/776944.html
