简体中文

开发者工具·Crontab 生成器

五个 crontab 字段如何工作:分钟、小时、日、月、工作日

· 工作原理

计划任务 调度 开发人员工作流程

cron 计划的五个位置与时钟和日历符号对齐
原始 ToolAcre 矢量图

每个 cron 计划都有五个位置字段,并且顺序永远不会改变。这篇文章解释了每个字段的范围、周日的特殊情况,以及一行如何成为一组匹配的分钟。

备份必须在每晚 02:30 运行 — 并且您不知道如何填写五颗星

您需要在每晚 02:30 进行备份,但要不断混淆五颗星中哪一颗拥有该时间。 Cron 是位置性的:错误列中的数字会产生不同的计划,但表面上看起来有效。从作业必须运行的时间、机器的时区以及 crontab 的所有者开始;然后才填写字段。 ToolAcre 可以解析和描述表达式,但它不会安装作业或运行备份命令。

位置字段,固定顺序 - 分钟、小时、月份、月份、星期几,然后是命令

用户 crontab 行包含分钟、小时、月份、月份、星期几,然后是命令。在 30 2 * * * backup.sh 中,30 是分钟,2 是小时:该 cron 环境的时区下每天的 02:30。该命令不是第六时间字段。系统范围的 /etc/crontab 可能在命令之前包含一个用户字段,这就是为什么盲目地将系统条目复制到您的个人 crontab 中可能会运行意外命令的原因。

每个字段的范围 - 0–59、0–23、1–31、1–12 和 0–7,其中 0 和 7 在大多数 cron 中都表示星期日

在 Vixie 风格约定 ToolAcre 模型中,分钟接受 0–59、小时 0–23、月份 1–31、月份 1–12 和工作日 0–7; 0和7表示星期日。星号表示该字段中的所有值。范围和逗号分隔列表可以限制值,但字段的数值范围仍然适用。小时位置的 25 点不是深夜时间表:它是无效的,应该报告,而不是打包到第二天。

匹配的工作原理 — cron 每分钟唤醒一次,如果时间字段匹配则运行一行(两天字段除外)

Cron 每分钟检查匹配字段。分钟、小时和月份都需要匹配。 Vixie cron 中的两天字段有一个特殊规则:当月份和星期几都受到限制时,其中任何一个的匹配都可以触发作业,而不一定是两者都触发。因此 0 0 13 * 5 表示一个月的第 13 号或每个星期五,而不仅仅是第 13 号星期五。在日间位置使用通配符时,夜间示例的行为符合预期。该工具的解释性输出使该选择在安装前可见。

示例:30 2 * * * backup.sh — 大声朗读,然后从头开始写“工作日 08:15”

大声朗读 30 2 * * * backup.sh 为“每天 02:30 运行 backup.sh”。对于工作日 08:15,请输入第 15 分钟、第 8 小时、不受限制的日/月以及工作日 1–5: 15 8 * * 1-5。仅将五个计划字段粘贴到 Crontab 生成器中,并检查其描述和下次运行列表;之后使用您自己的 crontab 编辑器安装该命令。对于在夏令时更改附近运行的备份,请验证实际区域中的下一次运行时间戳,而不是假设每个本地 02:30 都存在。

月份和工作日的名称,包括支持的名称范围

许多 cron 方言接受三个字母的名称,例如 JAN 或 MON,而不是数字。名称可以使人工维护的时间表更加清晰,但使用 0/7 表示星期日仍然很常见,其他 cron 实现可能有不同的扩展名。 ToolAcre 识别常见的月份和工作日名称及范围,例如 JAN-MAR 和 MON-FRI;它的解析器接受 15 8 * JAN-MAR MON-FRI。另一个 cron 实现或云调度程序可能使用不同数量的字段或扩展,因此在安装该行之前请参考该环境自己的语法。

本概述未完全涵盖的内容:列表、步骤和执行环境

本介绍解释了 Vixie 日字段 OR 规则,但没有探讨其与列表和步骤的复杂组合、执行命令的 shell/环境或夏令时行为;每个都可以更改实际任务是否运行。验证器可以描述计划,但不能保证 backup.sh 存在、具有权限或写入可恢复备份。在依赖生产 cron 条目之前测试备份和恢复。

要点:五个字段,一种语法 - Crontab 生成器构建表达式并向您解释它

五个位置构成一种语法。 Crontab 生成器会读取您建议的计划,命名每个字段并显示所选区域中即将执行的操作,而无需在系统上安装任何内容。输入夜间和工作日示例,将工具的内容与您的预期进行比较,然后将命令和时区决策与作业的操作文档一起保留。