Ubuntu Trigger 可通过组合多种触发条件和动作实现复杂逻辑,核心步骤如下:
安装工具
sudo apt update && sudo apt install ubuntu-trigger
创建基础触发器
ubuntu-trigger create --name "DailyTask" --command "/path/to/script.sh" --every "0 2 * * *"
ubuntu-trigger create --name "StartupTask" --command "/path/to/script.sh" --on "startup"
通过 &&
(与)、||
(或)运算符组合条件,例如:
inotifywait
监控文件,同时通过 top
或 mpstat
检测CPU负载,编写脚本实现逻辑判断,再通过Trigger调用脚本。#!/usr/bin/env python3
import os
import smtplib
def send_alert():
# 发送邮件逻辑
pass
def main():
if os.path.exists("/path/to/trigger_file") and get_cpu_usage() > 80:
send_alert()
通过Trigger配置调用该脚本:ubuntu-trigger create --name "ComplexAlert" --command "/path/to/script.py" --on "file_modified:/path/to/trigger_file"
systemd
服务单元文件(如 /etc/systemd/system/complex_trigger.service
),定义执行逻辑,再通过Trigger的 --on
参数绑定到系统事件(如 timer
)。动态参数传递
在Trigger命令中使用环境变量或参数占位符,例如:
ubuntu-trigger create --name "DynamicTask" --command "/path/to/script.sh --param ${DATE}" --every "0 12 * * *"
日志与监控
ubuntu-trigger status <触发器名>
查看执行状态。ubuntu-trigger create --name "LoggedTask" --command "/path/to/script.sh > /var/log/task.log 2>&1"
chmod +x /path/to/script.sh
。参考资料: