插件窝 干货文章 Crontab任务的时间格式是什么

Crontab任务的时间格式是什么

执行 分钟 Crontab 小时 699    来源:    2025-05-09

Crontab(定时任务)的时间格式由5个字段组成,分别表示分钟、小时、日期、月份和星期。以下是详细说明和示例:


基本格式

* * * * * command_to_execute
字段 取值范围 说明
分钟 0-59 每小时的第几分钟执行
小时 0-23 每天的第几小时执行(24小时制)
日期 1-31 每月的第几天执行
月份 1-12 或 JAN-DEC 每年的第几月执行
星期 0-7 或 SUN-SAT 每周的第几天执行(0和7均代表周日)

特殊符号

  1. *:任意值(每分/每时/每天等)

    • * * * * * → 每分钟执行一次。
  2. ,:分隔多个值

    • 0,15,30 * * * * → 每小时的0分、15分、30分各执行一次。
  3. -:范围

    • 0 9-17 * * * → 每天9点到17点整点执行。
  4. /:间隔频率

    • */10 * * * * → 每10分钟执行一次。
  5. LW等(部分系统支持复杂语法,如Quartz)。


常用示例

示例 说明
0 * * * * 每小时的第0分钟(整点)执行。
30 3 * * * 每天凌晨3:30执行。
0 20 * * 1-5 每周一至周五晚上8点执行。
*/5 * * * * 每5分钟执行一次。
0 0 1 * * 每月1日午夜执行。
@reboot 系统启动时执行(非时间格式,但常用)

注意事项

  1. 星期与日期的冲突

    • 若同时指定了日期星期,任务会在两者任一条件满足时触发(例如 * * 1 * 1 会在每月1日或每周一执行)。
  2. 环境变量问题

    • Crontab默认使用最小化环境变量,建议在脚本中使用绝对路径或通过PATH变量显式配置。
  3. 日志与调试

    • 查看执行日志:grep CRON /var/log/syslog(Linux)或检查邮件通知。
  4. 用户级Crontab

    • 编辑当前用户的任务:crontab -e
    • 查看任务列表:crontab -l

验证工具

  • 使用 Crontab Guru 在线验证时间表达式是否正确。
  • 测试脚本时,可先用echo "Test" >> /tmp/log 确认任务是否触发。

如果有特殊需求(如秒级任务),需改用其他工具(如systemd timerwhile+sleep循环)。