Cron / 调度规则

systemd 定时器生成器 · 区分日历与开机相对触发

选择日历时刻或开机后间隔,生成单个 .timer 文件,并在目标 Linux 上复核。

systemd 定时器生成器

触发条件输入

Timer 配置与检查

输入仅在当前浏览器中处理,不会发送到服务器。

选项

填写已有服务的基名后生成 Timer。

备份任务要在工作日 9 点运行,与开机 5 分钟后运行,是两种不同的计时基准。systemd 定时器生成器把 OnCalendar 表达式与相对启动计时器分开,避免把 Cron 的五字段规则误贴进 Timer。

这款 systemd 定时器生成器只写 .timer,不虚构执行命令。生成结果同时带着语义解释和 systemd-analyze calendar 检查命令;服务内容由你在目标机器上准备。 这样可以在复制定时器配置前看清哪些部分仍需系统端验证。

为什么使用 systemd 定时器生成器

把触发基准和核对方法放在同一份结果里。

先看懂触发基准

日历模式写入 OnCalendar,相对模式写入 OnBootSec 与可选的 OnUnitActiveSec。systemd 定时器生成器不会把“上次服务激活后”说成“每个整点”。

两条时间轴分别展示固定日历时刻与开机后相对触发。

把复核命令一起带走

浏览器无法调用目标主机的 systemd。遇到列表、步进或时区语法,本地会标记“未核验”,并提供在 Linux 上运行的日历或时长检查命令。

配置片段旁显示本地检查状态和 Linux 终端复核命令。

从触发方式到可核对的配置

01

先选计时基准

默认 daily 是每天午夜;开机相对模式默认 5min。OnUnitActiveSec 从服务上次激活起算,并非任务完成后再等待。

  • 两个模式在本页互斥,系统本身允许更复杂的组合。
02

填写已有服务的基名

只输入名称,不带 .service 或 .timer 后缀。点预设、示例或清空时先看预览,应用后可撤销一次。

  • 未填服务名时不会给出可下载的配置。
03

在目标主机复核

常见别名和简单日期时间会做范围检查;复杂 OnCalendar 语法必须运行 systemd-analyze calendar。保存文件后再用 verify 与 status 排查。

  • 关闭自动生成后可用 Ctrl/Cmd + Enter;参数变化时旧结果不能复制。

配置会包含什么

按日历运行

接受 daily、hourly、工作日预设或单条 OnCalendar 表达式;Persistent 可让漏掉的日历触发在重新激活时补跑。

按相对间隔运行

OnBootSec 指定开机后的首次触发,可选 OnUnitActiveSec 按服务上次激活的时刻继续计时。

独立的 Timer 片段

输出 Unit=同名 .service、可选随机延迟以及 timers.target 安装段;.timer 与测试命令分别复制。

部署前必须知道的边界

先准备 .service
本页不会生成 ExecStart 或服务文件;Timer 指向同名服务。下载 .timer 前应确认服务已经存在。
本地检查并不覆盖完整语法
别名、简单日期与时刻会检查;列表、步进、月末和时区表达式显示未核验,最终以目标机器的 systemd-analyze 为准。
Cron 与 OnCalendar 不通用
五字段 Cron 输入会被拒绝。Persistent 不作用于纯相对触发;默认 AccuracySec 允许约一分钟的触发窗口。
每次只生成一个系统定时器
两种模式不会混用 OnCalendar 与单调时钟触发器,日历输入也只接受一行。本页生成系统级单元,不模拟用户级单元或 OnStartupSec。
命令仅供在目标机器执行
页面不会运行 systemctl、向主机写入单元文件,也不会承诺准确的下次运行时刻。请在目标 Linux 系统检查保存的 timer 和已有的 service。

systemd 定时器生成器常见问题

为什么一个任务需要 .timer 和 .service 两个文件?

Timer 负责何时触发,Service 负责运行什么命令及使用什么环境。本页只生成前者。

Persistent=true 实际会做什么?

日历触发在 Timer 停用期间错过后,重新激活时可补跑一次;它不会让 OnBootSec 自动重复。

怎样确认 OnCalendar 写的时间是对的?

复制 systemd-analyze calendar 命令,在目标 Linux 上查看规范化表达式和后续触发时间。

为什么命令在终端可运行,在 Timer 里却失败?

定时任务由服务单元执行,环境与交互 Shell 不同。检查服务文件的绝对路径,并查看 journal 日志。

为什么启动 Timer 后,服务在日历时间之前就运行了?

若同时配置了到期的 OnBootSec,或 Persistent 补跑了错过的日历事件,就可能立即触发。本页将两种模式分开。

执行时间不符合预期?

立即使用 systemd 定时器生成器

填写服务名和触发条件,下载配置后到 Linux 主机验证。

配置在浏览器本地生成,不上传服务内容。