在Linux/Unix的crontab
中,星号(*
)是一个通配符,表示"所有可能的值"。它可以用在时间字段中,表示该字段的每一个有效取值。
*
的含义:一个标准的cron表达式有5个时间字段(有时加第6个字段用于用户或命令):
* * * * * <command>
| | | | |
| | | | +----- 星期几 (0 - 6) (0表示周日)
| | | +------- 月份 (1 - 12)
| | +--------- 日期 (1 - 31)
| +----------- 小时 (0 - 23)
+------------- 分钟 (0 - 59)
*
表示每分钟*
表示每小时*
表示每天*
表示每月*
表示每周的每一天* * * * * command
→ 每分钟执行一次
0 * * * * command
→ 每小时的0分时执行(每小时一次)
0 0 * * * command
→ 每天午夜(00:00)执行
* * * * 1 command
→ 每周一的所有分钟都执行(通常需要结合其他字段限制)
*
用在所有5个字段中,命令会每分钟执行一次(可能不是你想要的效果)0
和7
都表示周日*
以避免意外高频执行虽然*
表示所有值,但可以通过以下方式实现更灵活的控制:
- 逗号(,
)表示列表:0 8,12,16 * * *
(每天8点、12点、16点)
- 连字符(-
)表示范围:0 9-17 * * 1-5
(工作日9点到17点每小时)
- 斜杠(/
)表示步长:*/15 * * * *
(每15分钟)
需要帮助设计具体的cron表达式时可以告诉我你的需求场景。