Linux Crontab Guide

Linux Crontab:五段时间规则与服务器计划任务

掌握经典的分钟、小时、日期、月份、星期五字段格式,避免把Quartz语法误用到Linux服务器。

Linux Crontab五段格式

Linux Crontab默认不包含秒字段。一条标准表达式从分钟开始,系统在满足条件的分钟运行命令。

分  时  日  月  周
*/5 *   *   *   *    # 每5分钟
字段范围说明
分钟0–59任务在小时内的第几分钟执行
小时0–23使用服务器本地时区
日期1–31需要注意月份实际天数
月份1–12或JAN–DEC可使用数字或英文缩写
星期0–7或SUN–SAT0和7通常都代表星期日
Linux Crontab不使用Quartz的问号、W和#。如果目标系统是Linux,请在工具顶部明确选择“Linux”。

日期与星期的匹配逻辑

当日期和星期都不是星号时,传统Crontab通常采用“任一条件满足即可执行”的逻辑,而不是两者必须同时满足。例如 0 9 1 * 1 可能在每月1日以及每个星期一上午9点执行。

如果业务要求“每月1日且恰好是星期一才执行”,不要仅凭表达式猜测,应在脚本中增加日期判断,或使用支持明确逻辑的调度框架。

Crontab常用表达式

表达式含义在线验证
*/5 * * * *每5分钟验证
0 2 * * *每天凌晨2点验证
0 9 * * 1-5工作日上午9点验证
*/15 9-17 * * 1-5工作日9至17点每15分钟验证
0 0 1 * *每月1日0点验证

服务器使用建议

  • 使用 crontab -l 检查当前用户的任务,不要混淆root与普通用户。
  • 命令和脚本使用绝对路径,因为Cron环境变量通常少于交互式终端。
  • 明确服务器时区;容器、宿主机和业务时区可能不同。
  • 把标准输出和错误输出写入日志,并设置轮转策略。
  • 避免任务重叠,可使用文件锁、数据库锁或专门的分布式任务平台。
  • 重要任务应增加心跳或结果监控,表达式正确并不代表任务一定执行成功。

示例结果由本站 Cron 解析引擎验证。