如何配置Cron Job实现分时段执行:部分时段每30分钟,其余每小时?
实现特定时段不同频率的Cron Job配置
当然可以实现,对你这种基础用户来说,最直接的方式是配置两个独立的Cron任务,分别对应两种执行频率的时段,避开单个表达式的局限性。
举个具体例子(假设你需要在周一到周五的9:00-18:00每30分钟执行一次,其余时间每1小时执行一次):
1. 特定时段的30分钟执行任务
添加这条Cron规则:
*/30 9-17 * * 1-5 /path/to/your/script.sh
*/30:每30分钟触发一次9-17:覆盖9:00到17:30(17:30是该时段内最后一次触发,18:00由另一个任务接管)1-5:周一到周五/path/to/your/script.sh:替换成你实际要执行的脚本/命令路径
2. 其余时段的1小时执行任务
添加这两条Cron规则:
0 */1 * * 0,6 /path/to/your/script.sh 0 0-8,19-23 * * 1-5 /path/to/your/script.sh
第一条对应周末全天,第二条对应工作日的0:00-8:00、19:00-23:00:
0 */1:每小时的第0分钟触发(确保整小时执行)0,6:周日和周六0-8,19-23:工作日的非目标时段
关键注意事项
- 两个任务的执行时间无重叠:特定时段最后一次触发是17:30,下一次18:00由第二个任务执行,不会重复跑脚本。
- 若你的特定时段不是9-18,只需要调整小时范围即可,比如想在10:00-20:00执行,就把第一个任务的
9-17改成10-19。 - 用
crontab -e命令编辑Cron规则,保存后自动生效。
内容的提问来源于stack exchange,提问作者elanjcoop
相关产品推荐
相关产品推荐

