简体中文

开发者工具 · Crontab 生成器

@reboot、@daily、@hourly:cron 的昵称时间表来自哪里

· 背景

计划任务 别名 调度

七个命名的计划别名扩展到阻止的重新启动符号旁边的五个字段
原始 ToolAcre 矢量图

@ 简写是可读的、流行的但不通用。这篇文章解释了每个扩展的内容、它们来自哪里、@reboot 的特殊情况以及何时写入这五个字段。

@reboot 被拒绝,因为该工具预览日历时间,而不是启动事件

`@reboot` 看起来像其他 at 符号形式,但在 ToolAcre 中没有五字段日历扩展。解析器拒绝它有一个明确的原因:没有预览时间表。启动事件取决于该浏览器路由既不观察也不控制的机器或服务生命周期。

这种区别使下一次运行列表保持诚实。日历别名可以成为具体的字段和日期。如果不发明未来的重新启动,重新启动别名无法从当前时刻生成五个未来的挂钟候选者。因此,拒绝比空洞或捏造的预览更准确。

昵称及其扩展 — @hourly、@daily 和 @midnight、@weekly、@monthly、@yearly 和 @annually 作为五个字段的等效项

支持的表是准确的。 `@hourly` 变为 `0 * * * *`; `@daily` 和 `@midnight` 变为 `0 0 * * *`; `@weekly` 变为 `0 0 * * 0`; `@monthly` 变为 `0 0 1 * *`; `@yearly` 加上 `@annually` 成为 `0 0 1 1 *`。

UI 在将值复制到五个单独的框中之前解析接受的别名。解析返回规范化的五字段表达式,描述使用解析后的形式并测试迭代每个别名。因此,扩展是可检查的而不是隐藏的速记。

没有对守护程序启动或系统引导行为进行建模

此路径中没有代码接收操作系统启动事件。没有守护进程、启动标识符或服务依赖关系图。工作簿有关 `@reboot` 何时运行的语句无法从故意拒绝令牌的解析器中建立。

如果目标支持启动昵称,请查阅该目标的生命周期定义并安全地测试它。不要使用 ToolAcre 的错误作为该功能普遍无效的证据,也不要使用其他实现的支持作为该路由应该预览它的证据。

别名起源和跨实现传播需要外部历史来源

该工作簿将别名归因于历史实现并描述了它们的传播。该存储库不包含该声明的主要历史来源。它证明的是现在时行为:`ALIASES` 中的七个键、不区分大小写的查找和拒绝未知的简写。

对于实际文档来说这已经足够了。读者可以准确地看到哪些形式在这里起作用以及它们扩展到什么。出处可以稍后通过档案来源添加;不应该从常量名称或其他地方类似语法的流行程度来推断它。

工作示例:用 0 0 * * * 替换 @daily - 以及为什么显式形式还允许您将时间移至午夜

将 `@daily` 替换为 `0 0 * * *` 会公开时间字段。将小时从 0 更改为 4 会生成 `0 4 * * *`,该工具每天将其描述为 04:00。当午夜不是预期的挂墙时间时,明确的形式更好。

字段框使调整变得简单,所选时区控制预览时刻。复制的表达式在解析器结果中扩展后不包含别名,但原始文本可能保留在整个表达式框中,直到字段发生更改。在部署之前检查实际复制的值。

启动时排序和依赖项位于生成器之外

启动工作通常依赖于文件系统、网络、凭证或其他服务。 ToolAcre 没有依赖性模型,无法评估准备情况、延迟或重启行为。即使它接受 `@reboot`,表达式验证也无法解决这些操作问题。

将启动时执行视为生命周期设计而不是日历快捷方式。记录目标环境中的先决条件和故障处理。该生成器仍然适用于循环五场时间表,其下一个挂钟时间实际上可以计算。

此处不评估服务管理器替代方案

该工作簿指向现代服务单位,但此存储库不会构建或比较它们。来源中没有单元语法、依赖指令或启动测试。因此,本文避免仅根据不受支持的昵称来推荐替代品。

从目标文档和操作需求中选择生命周期机制。 ToolAcre 的贡献是负边界:`@reboot` 超出了其可预览域,而普通日历别名具有透明的五字段等效项。

要点:昵称是固定表达式的糖——生成器可以让您构建显式版本并将其读回

别名是此实现中固定表达式的简洁标签。每当审查或定制受益于查看职位时,就可以扩展它们。 `@daily` 不是魔法;在所选预览区域下的所有不受限制的日历字段中,现在都是午夜。

使用支持的列表,检查扩展并在适当的时候远离午夜。对于启动事件,停止并选择特定于目标的机制,而不是在日历生成器中强制执行不可预览的生命周期触发器。这个界限是经过深思熟虑和测试的。