如何配置CRON任务实现每30分钟执行一次,且仅在14:00至次日10:00时段运行?
实现每30分钟运行且避开10:00-14:00的Cron任务
要实现你描述的需求,直接用一条标准Cron表达式就能搞定,不需要拆分多个任务。最终的表达式如下:
*/30 14-23,0-9 * * *
表达式拆解说明
让我逐个部分解释为什么这样写:
- 分钟位 (
*/30): 表示每30分钟触发一次,也就是在每个小时的0分和30分执行任务。 - 小时位 (
14-23,0-9): 这里用逗号分隔了两个时间范围:14-23:覆盖下午2点到晚上11点的所有小时0-9:覆盖凌晨0点到上午9点的所有小时
组合起来就完美跳过了上午10点到下午2点(10:00-14:00)的时段。
- 日/月/周位 (
* * *): 三个星号表示任务每天、每月、每周都按上述规则执行,没有额外的日期限制。
验证执行时间
举几个例子确认符合你的需求:
- ✅ 14:00、14:30、...、23:30 会正常执行
- ✅ 00:00、00:30、...、09:30 会正常执行
- ❌ 10:00、10:30、11:00、...、13:30 不会执行
这个表达式在绝大多数Linux/Unix系统的标准Cron中都能正常工作,如果你的系统用的是非标准Cron实现(比如某些云平台的定时任务),可能需要微调,但核心逻辑是一致的。
内容的提问来源于stack exchange,提问作者zadroga
相关产品推荐
相关产品推荐

