插件窝 干货文章 Crontab中的星号代表什么

Crontab中的星号代表什么

字段 表示 分钟 执行 705    来源:    2025-05-10

在Linux/Unix的crontab中,星号(*)是一个通配符,表示"所有可能的值"。它可以用在时间字段中,表示该字段的每一个有效取值。

各字段中*的含义:

一个标准的cron表达式有5个时间字段(有时加第6个字段用于用户或命令):

* * * * * <command>
| | | | |
| | | | +----- 星期几 (0 - 6) (0表示周日)
| | | +------- 月份 (1 - 12)
| | +--------- 日期 (1 - 31)
| +----------- 小时 (0 - 23)
+------------- 分钟 (0 - 59)
  1. 分钟字段* 表示每分钟
  2. 小时字段* 表示每小时
  3. 日期字段* 表示每天
  4. 月份字段* 表示每月
  5. 星期字段* 表示每周的每一天

常见示例:

  1. * * * * * command
    → 每分钟执行一次

  2. 0 * * * * command
    → 每小时的0分时执行(每小时一次)

  3. 0 0 * * * command
    → 每天午夜(00:00)执行

  4. * * * * 1 command
    → 每周一的所有分钟都执行(通常需要结合其他字段限制)

注意事项:

  • 如果*用在所有5个字段中,命令会每分钟执行一次(可能不是你想要的效果)
  • 星期字段(第5字段)中07都表示周日
  • 实际使用时,建议用具体值替代*以避免意外高频执行

进阶用法:

虽然*表示所有值,但可以通过以下方式实现更灵活的控制: - 逗号(,)表示列表:0 8,12,16 * * *(每天8点、12点、16点) - 连字符(-)表示范围:0 9-17 * * 1-5(工作日9点到17点每小时) - 斜杠(/)表示步长:*/15 * * * *(每15分钟)

需要帮助设计具体的cron表达式时可以告诉我你的需求场景。