首页主机资讯centos trigger配置步骤

centos trigger配置步骤

时间2025-12-20 02:00:03发布访客分类主机资讯浏览229
导读:CentOS 中的 Trigger 配置步骤 一 常见场景与总体说明 在 CentOS 环境中,“触发器”通常对应三类需求: systemd 事件/定时器触发(系统启动、定时、空闲、路径激活等事件触发服务); 数据库触发器(如 MySQ...

CentOS 中的 Trigger 配置步骤

一 常见场景与总体说明

  • CentOS 环境中,“触发器”通常对应三类需求:
    1. systemd 事件/定时器触发(系统启动、定时、空闲、路径激活等事件触发服务);
    2. 数据库触发器(如 MySQL 在 INSERT/UPDATE/DELETE 前后自动执行逻辑);
    3. 监控平台触发器(如 Zabbix 基于监控项表达式触发告警动作)。
  • 下面按这三类给出可直接落地的配置步骤与示例。

二 使用 systemd 定时器实现事件触发

  • 适用:替代 cron,按日历/间隔/系统事件触发脚本或服务;支持开机自启、日志与一次性任务。
  • 步骤
    1. 创建服务单元(定义要执行的任务)
      • 新建文件:/etc/systemd/system/mytask.service
        [Unit]
        Description=My Scheduled Task
        After=network.target
        
        [Service]
        Type=oneshot
        ExecStart=/usr/local/bin/backup.sh
        User=root
        
    2. 创建定时器单元(定义何时触发)
      • 新建文件:/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
        
    3. 使配置生效并启动
      sudo systemctl daemon-reload
      sudo systemctl enable --now mytask.timer
      
    4. 验证与排错
      systemctl list-timers --all
      systemctl status mytask.timer
      journalctl -u mytask.service
      
  • 提示
    • 需要“一次性延迟执行”可用:systemd-run --on-active=5min /usr/local/bin/once.sh
    • 需要“路径激活”(文件/目录变化触发)可用 Path 单元监听路径变更后启动服务。

三 数据库触发器示例 MySQL

  • 适用:在表数据变更时自动维护字段、审计或联动逻辑。
  • 步骤
    1. 登录数据库并选择库:mysql -u root -p,USE your_db;
    2. 创建触发器(示例:插入前将 status 设为 active)
      DELIMITER //
      CREATE TRIGGER before_insert_user
      BEFORE INSERT ON users
      FOR EACH ROW
      BEGIN
          SET NEW.status = 'active';
          
      END;
          
      //
      DELIMITER ;
          
      
    3. 验证
      SHOW TRIGGERS LIKE 'users'\G
      INSERT INTO users(username) VALUES ('alice');
      
      SELECT * FROM users WHERE username='alice'\G
      
  • 提示
    • 触发器作用于单库单表,注意避免递归或性能问题;涉及时间/审计建议在测试环境充分验证。

四 监控平台触发器示例 Zabbix

  • 适用:当监控指标满足表达式阈值时自动产生事件并执行动作(邮件、脚本、远程命令等)。
  • 步骤
    1. 准备监控项(Item):如 system.cpu.load[all,avg1]vfs.fs.size[/,free]vfs.file.cksum[/etc/passwd] 等。
    2. 创建触发器(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)与描述。
    3. 配置动作(Action)
      • 事件源选择“触发器”;设置触发条件(如 Problem 状态持续 60 秒)。
      • 在“操作”中配置媒介(如 Email)与收件人,或“远程命令”(如重启服务);可设置“恢复操作”与“升级”。
    4. 验证
      • 制造阈值条件(如临时增加用户、占用磁盘),在“监测 → 问题”查看告警;检查“报表 → 动作日志”。

五 补充 传统定时任务 cron 的要点

  • 适用:简单周期任务、系统级或用户级计划任务。
  • 步骤
    1. 编辑当前用户任务:crontab -e
    2. 语法:分 时 日 月 周 命令
      • 示例:每天 06:00 执行备份
        0 6 * * * /usr/local/bin/backup.sh
        
    3. 常用命令
      crontab -l    # 查看
      crontab -r    # 删除
      
    4. 日志与守护
      • 查看日志:/var/log/cron
      • 服务管理:systemctl status crond(CentOS 7 使用 crond)。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: centos trigger配置步骤
本文地址: https://pptw.com/jishu/776944.html
CentOS readdir在不同场景下的应用案例 如何使用CentOS readdir实现文件同步

游客 回复需填写必要信息