开发者工具 · Crontab 生成器
从版本 7 Unix 到 Vixie cron:cron 的简史
· 背景
计划任务 历史 软件证据
cron 是仍在日常使用的最古老的守护进程之一。这篇文章讲述了从 1970 年代 Unix 中的单个系统范围文件到每用户 crontab,再到大多数 Linux 系统仍然源自 Paul Vixie 的重写。
存储库展示了当前的五字段模型,而不是 cron 的历史连续性
ToolAcre 在当前 JavaScript 中模拟了熟悉的五字段时间表。这一事实并不能证明从特定的 20 世纪 70 年代守护进程到每个现代主机都有不间断的线路。工作语法和历史叙述是不同的证据产品,存储库仅包含前者的深度。
源代码注释将日场规则称为 Vixie 风格,但注释不是 Unix 版本的存档。因此,本文拒绝将一个看起来稳定的界面变成关于为什么 cron 幸存下来或者读者的守护进程源自哪个代码库的声明。行为可以是精确的,无需发明出处。
版本 7 实施细节需要外部主要来源
工作簿的版本 7 部分命名为一个文件和每分钟一次的读取周期。文章来源中不存储版本 7 来源、手册或扫描。 ToolAcre 自己的分钟决议无法独立验证这些历史实施细节。
负责任的历史会引用主要手册或源树,并将出版日期与后来的回忆区分开来。在该研究存在之前,该部分记录了遗漏。读者仍然可以从经过测试的代码中了解这五个领域,而无需收到作为事实呈现的无源起源故事。
System V 沿袭和策略功能未在此处证明
关于 System V 添加每用户 crontab、命令或策略列表的声明同样需要外部文档。浏览器代码没有允许或拒绝列表,也没有用户 crontab 管理器。后来的系统中的类似术语无法确定某个功能首次出现的时间。
此更正遵循创作合同:大纲是摘要,而不是来源。文章并没有默默地换上另一个笼统的句子,而是指出了需要哪些证据。当主要材料添加到 `sources` 并直接读取时,可以稍后扩展历史覆盖范围。
Vixie 归属出现在评论中,但未提供日期和发布信息
该实现在解释 OR 行为时命名为 Vixie cron,并拒绝六字段调度程序样式。它不包含发布档案、1987 引用或版本 3.0 更改日志。因此,工作簿中不会重复这些日期和里程碑。
代码级声明范围更窄:当两个日期字段都受到限制时,ToolAcre 返回 `monthMatch || weekMatch`,警告用户并在其描述中说“或”。该行为是完全可测试的。评论之外的归因仍然是一项研究任务,而不是背景部分的填充物。
后代实现在此代码库之外
cronie、dcron、fcron、bcron 和 BusyBox 等名称标识外部项目,此处均未导入或测试。 ToolAcre 无法说明主机使用哪一个、它是否接受每个别名或它如何处理时间转换。列出后代将意味着没有进行比较研究。
当可移植性很重要时,直接检查目标实现。它接受的字段数、名称和运算符都是可操作的事实。谱系可以帮助解释差异,但它永远不应该取代目标的当前手册和无害的验证测试。
ToolAcre 中保留的内容:五个有序字段和经过测试的语法
存储库所建立的内容非常重要。字段按分钟、小时、月份、月份和星期几排序。数字范围是明确的;接受月份和工作日名称,不区分大小写;星期日 7 标准化为 0;范围、列表和步骤扩展为排序的唯一值。
解析器还支持除 `@reboot` 之外的七个命名别名,产生特定错误,警告不可能的日期和 ORed 日期字段,呈现英语并计算选定区域中即将到来的挂钟时间。这份当代合同值得有独立于历史装饰的准确记录。
anacron 和 systemd 保留在生成器之外
工具中没有出现 anacron 配置或 systemd 日历解析器。仅凭存储库证据,这些系统不能被定位为进化的继承者或替代品。即使进行共同比较,它们的错过运行、依赖性和日志记录行为也需要单独的源。
ToolAcre 拒绝六个字段和不支持的运算符并不是对这些系统的判断。它只是保护一种语法。关于替代方案的文章应该从它们的实现和文档开始,而不是从 crontab 表达式的形式推断功能。
要点:使用行为的实施证据和历史的主要来源
技术历史需要与代码文档相同的纪律:声明应该可追溯到实际表述它们的材料。这里可信的故事是生成器当前的行为以及工作簿年表的档案证据的明确缺乏。
使用 ToolAcre 构建并检查其测试涵盖的五字段语法。如果稍后发布历史记录,请添加主要来源、验证日期并区分相关实现。现在省略一个不受支持的里程碑比读者无法审核的流畅叙述更准确。