在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表达式时可以告诉我你的需求场景。