温馨提示×

centos触发器在哪配置

小樊
44
2025-12-21 14:58:52
栏目: 智能运维

CentOS 中“触发器”的常见场景与配置位置

在 CentOS 里,“触发器”通常对应三类场景:系统级的事件触发(systemd 定时器/一次性任务)、时间周期任务(cron/anacron)、监控告警规则(如 Zabbix 触发器)。下面给出各类场景的配置入口与关键文件位置。

一、systemd 事件触发与定时器

  • 配置目录与文件:在 /etc/systemd/system/ 下创建单元文件,常见为 .service(任务)与 .timer(定时器)。例如:my_task.service、my_task.timer。
  • 常用指令:
    • 重新加载配置:systemctl daemon-reload
    • 启用并启动定时器:systemctl enable --now my_task.timer
    • 查看定时器:systemctl list-timers --all
    • 查看日志:journalctl -u my_task.timer
  • 典型用途:替代“开机后延迟执行”“每隔一段时间执行”“仅执行一次”的需求(比一次性 crontab 更直观)。示例做法与目录位置见 systemd 定时器的标准用法。

二、时间周期任务 cron 与 anacron

  • 配置文件与目录:
    • 系统级:/etc/crontab(全局时间表)、/etc/cron.d/(系统级任务片段)
    • 用户级:每个用户的任务保存在 /var/spool/cron/(以用户名命名),通过 crontab -e 编辑
    • 周期目录:/etc/cron.hourly//etc/cron.daily//etc/cron.weekly//etc/cron.monthly/(由 run-parts 执行)
    • 缺省执行安排(示例):01 * * * * root run-parts /etc/cron.hourly02 4 * * * root run-parts /etc/cron.daily22 4 * * 0 root run-parts /etc/cron.weekly42 4 1 * * root run-parts /etc/cron.monthly
  • 服务与权限:
    • 服务管理:systemctl start|stop|restart|status crond(CentOS 7 常用)
    • 访问控制:可能存在 /etc/cron.allow/etc/cron.deny 用于限制用户使用 crontab
  • 适用说明:cron 假定主机 7×24 运行;若关机错过执行,可用 anacron 补齐(通过 /etc/anacrontab 配置)。

三、监控告警触发器 Zabbix

  • 配置入口:在 Zabbix Web 前端 的“配置 → 主机 → 监控项 → 触发器”中定义表达式(如用户登录数阈值),并配置“动作”(邮件、企业微信、钉钉等媒介脚本)。
  • 客户端侧常用配置:在 /etc/zabbix/zabbix_agent2.conf 启用自定义键值(如 UnsafeUserParameters=1),在 /etc/zabbix/zabbix_agent2.d/*.conf 定义 UserParameter,重启 zabbix-agent2 后用 zabbix_agent2 -t keyzabbix_get 测试。

四、数据库触发器 MySQL 示例

  • 配置位置:在具体的数据库内,用 SQL 定义触发器,而非系统文件。例如创建 BEFORE INSERT 触发器自动设置字段值:
    • 示例:
      • DELIMITER //
      • CREATE TRIGGER before_insert_user BEFORE INSERT ON users FOR EACH ROW BEGIN SET NEW.status = ‘active’; END//
      • DELIMITER ;
  • 适用说明:这类“触发器”属于数据库对象,使用 mysql 客户端在目标库内执行 DDL 即可。

0