什么是 Cron?

Cron 是类 Unix 操作系统中基于时间的任务调度器,允许用户安排命令或脚本在指定的时间间隔自动运行。它使用一种称为 cron 表达式的特殊语法来定义任务执行的时间。

快速了解

全称Cron 定时任务调度器
创建时间1979 年由 Ken Thompson 创建
规范文档官方规范

工作原理

Cron 最初由 Ken Thompson 于 1979 年为 Version 7 Unix 编写。名称来源于希腊语 'chronos',意为时间。Cron 表达式由五个或六个字段组成,分别表示分钟、小时、月份中的日期、月份、星期几,以及可选的年份。每个字段可以包含特定值、范围、列表或特殊字符,如星号(*)表示任意值。Cron 对于系统管理至关重要,用于日志轮转、备份和定期维护等任务。

主要特点

  • 使用五或六字段表达式语法(分钟、小时、日期、月份、星期)
  • 支持特殊字符:*(任意)、,(列表)、-(范围)、/(步长)
  • 作为守护进程在后台运行
  • 每个用户可以有自己的 crontab 文件
  • 表达式按系统本地时区计算
  • 支持 @yearly、@monthly、@weekly、@daily、@hourly 快捷方式

常见用途

  1. 安排自动备份
  2. 运行定期系统维护任务
  3. 发送定时报告和通知
  4. 日志轮转和清理
  5. 在特定时间触发 CI/CD 流水线

示例

loading...
Loading code...

常见问题

Cron 表达式中的星号(*)是什么意思?

Cron 表达式中的星号(*)表示该字段的「每个」或「任意值」。例如,小时字段中的 * 表示「每小时」,而 * * * * * 表示任务每分钟运行一次。

如何设置每 5 分钟运行一次的 cron 任务?

要每 5 分钟运行一次 cron 任务,使用表达式 */5 * * * *。分钟字段中星号后的 /5 表示「每隔 5 分钟」在整个小时内执行。

crontab 和 cron 有什么区别?

Cron 是执行定时任务的守护进程(后台服务)。Crontab(cron 表)是定义定时任务的配置文件。crontab 命令用于编辑此文件。

如何安排任务仅在工作日运行?

要仅在工作日运行任务,在星期字段(第五个字段)中使用 1-5。例如,0 9 * * 1-5 表示在周一至周五的上午 9:00 运行。

为什么我的 cron 任务没有按预期运行?

常见原因包括:cron 语法不正确、时区设置错误、缺少环境变量、权限问题,或 cron 守护进程未运行。检查系统日志(/var/log/cron 或 /var/log/syslog)进行调试。

相关工具

相关术语

相关文章

Cron表达式详解【2026】- 定时任务调度原理与最佳实践

全面系统地掌握 Cron 定时表达式的高级底层语法规则规范、系统内核调度运行原理与企业级高可用定时任务最佳调度实践。深入学习如何准确无误地编写极度复杂的 Cron 时间表达式,以实现从毫秒级到天级别的精确批量任务调度计划。深入硬核剖析跨平台服务器时区(Timezone)差异处理陷阱,以及如何避免任务重叠执行、雪崩击穿等后端后端微服务开发常见致命问题。附带大量实用场景示例。

2026-01-12

JSON在线对比指南:高效比较JSON文件的完整教程【2026】

全面系统地学习如何高效、准确地在线对比深层复杂嵌套的 JSON 数据文件。深入硬核掌握 JSON diff 差异比较的底层技术原理与算法(如 LCS、基于键匹配),学会使用业界最佳的在线 JSON 差异比较与可视化工具进行 Git 版本控制冲突解决和后端 REST API 联调调试。本高级指南详细解析了多种常见的差异对比应用场景、智能高亮冲突差异点,并为您提供实用的 Python 与 JavaScript 多语言代码实战示例以实现自动化的数据结构比对。

2026-02-07

JSON与CSV互转详解【2026】- 原理、最佳实践与代码示例

全面掌握前后端数据处理中 JSON 与 CSV 数据格式之间高效互转的高级开发技巧。深入了解底层如何处理复杂的深层嵌套 JSON 数据结构扁平化(Flatten)、复杂数组对象的智能展开转换策略等核心解析原理。本文详细提供基于 JavaScript(Node.js)、Python (Pandas)、Go 语言的完整多语言代码实战示例,助你高效、稳定地完成各种规模的企业级数据清洗与导入导出任务。

2026-01-12