linux

Linux Trigger:新手必看配置指南

小樊
43
2025-08-30 14:37:03
栏目: 智能运维

以下是Linux Trigger新手必看的配置指南:

一、基础概念

Trigger是一种在特定事件(如系统启动、文件修改、定时任务等)发生时自动执行脚本或命令的机制,常用于自动化任务调度。

二、常见配置方法

  1. Systemd触发器(推荐)

    • 适用场景:系统启动、服务激活等系统级事件。
    • 配置步骤
      1. 创建服务单元文件(如/etc/systemd/system/my_service.service),定义要执行的脚本:
        [Unit]
        Description=My Custom Service
        [Service]
        Type=oneshot
        ExecStart=/path/to/your/script.sh
        
      2. 创建触发器单元文件(如/etc/systemd/system/my_trigger.trigger),设置触发条件(如OnBootSec=5min表示系统启动5分钟后触发):
        [Trigger]
        OnBootSec=5min
        Unit=my_service.service
        
      3. 重新加载配置并启用触发器:
        sudo systemctl daemon-reload
        sudo systemctl enable --now my_trigger.trigger
        
  2. Cron定时触发器

    • 适用场景:周期性任务(如每天凌晨备份)。
    • 配置步骤
      1. 编辑当前用户的crontab文件:
        crontab -e
        
      2. 添加定时任务(如每天凌晨2点执行脚本):
        0 2 * * * /path/to/your/script.sh
        
  3. Ubuntu Trigger工具

    • 适用场景:需要简单时间或事件触发的任务。
    • 配置步骤
      1. 安装工具:
        sudo apt update && sudo apt install ubuntu-trigger
        
      2. 创建触发器(如每天10:00执行脚本):
        ubuntu-trigger create --name "DailyTask" --command "/path/to/script.sh" --every "0 10 * * *"
        
      3. 启用触发器:
        ubuntu-trigger enable "DailyTask"
        
  4. 文件监控触发器(inotify)

    • 适用场景:文件或目录发生变化时触发(如上传文件后自动处理)。
    • 配置步骤
      1. 安装inotify工具:
        sudo apt install inotify-tools
        
      2. 编写监控脚本(如monitor.sh):
        #!/bin/bash
        inotifywait -m /path/to/monitor -e create |
        while read path action file; do
            /path/to/your/script.sh "$file"
        done
        
      3. 赋予脚本执行权限并运行:
        chmod +x monitor.sh
        ./monitor.sh
        

三、关键注意事项

  1. 脚本权限:确保脚本具有可执行权限(chmod +x script.sh)。
  2. 日志记录:建议在脚本中添加日志输出(如echo "$(date) - Task executed" >> /var/log/trigger.log),方便排查问题。
  3. 服务管理:使用systemctl命令管理触发器状态(如systemctl status my_trigger.trigger)。
  4. 配置文件备份:修改系统配置文件前,建议备份原始文件(如cp /etc/systemd/system/my_service.service /etc/systemd/system/my_service.service.bak)。

四、扩展学习

0
看了该问题的人还看了