插件窝 干货文章 linux任务计划字符串是什么格式

linux任务计划字符串是什么格式

执行 字段 小时 cron 928    来源:    2025-04-14

在 Linux 系统中,任务计划(定时任务)主要通过 cron 服务实现,其时间配置字符串称为 cron 表达式。以下是详细格式说明:


1. 基本格式

cron 表达式由 5 个时间字段组成(部分实现支持 6 或 7 个字段),格式如下:

* * * * * <command-to-execute>

每个字段按顺序表示:

分钟(0-59) 小时(0-23) 日(1-31) 月(1-12) 星期(0-7, 0和7均代表周日) [用户] [命令]

2. 字段详解

字段 取值范围 说明
分钟 0-59 每小时的第几分钟执行
小时 0-23 每天的第几小时执行
1-31 每月的第几天执行
1-12 或 JAN-DEC 每年的第几个月执行
星期 0-7 (0=7=周日) 每周的星期几执行(0或7为周日)

3. 特殊字符

字符 作用 示例
* 匹配任意值 * * * * * 每分钟
, 指定多个值 0,30 * * * * 每小时的0分和30分
- 指定范围 0 9-17 * * * 每天9点到17点整点
/ 间隔频率 */15 * * * * 每15分钟
? 仅用于星期(表示无意义) 0 0 * * ? 每天午夜(某些系统)
L 最后一天(月份或星期) 0 0 L * * 每月最后一天
W 最近工作日(避免周末) 0 0 15W * * 每月15日最近的工作日

4. 常用示例

表达式 说明
0 * * * * 每小时整点执行
*/5 * * * * 每5分钟执行
0 2 * * * 每天凌晨2点执行
0 0 * * 0 每周日午夜执行
0 0 1 * * 每月1日午夜执行
0 8-18/2 * * * 每天8点到18点,每2小时执行
@reboot 系统启动时执行(非标准cron格式)

5. 注意事项

  1. 用户字段(可选):
    /etc/crontab 或系统级任务中需指定用户,如:
    * * * * * root /path/to/command

  2. 环境变量
    cron 默认环境与用户shell不同,建议脚本中使用绝对路径或在cron中定义PATH

  3. 日志
    执行日志通常位于 /var/log/cronsyslog 中。

  4. 编辑方式

    • 用户任务:crontab -e
    • 系统任务:直接编辑 /etc/crontab/etc/cron.d/ 下的文件。

6. 扩展格式(部分系统支持)

某些实现(如 Spring Cron)支持 6字段(秒级精度):

<秒> <分> <时> <日> <月> <星期>

通过合理组合这些字段和符号,可以灵活配置各种定时任务。建议使用 Crontab Guru 在线工具验证表达式。