什么是 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)进行调试。

相关工具

相关术语

相关文章