树莓派6.1.0系统Cron任务配置问题:任务在不同日期重复执行
Cron任务同时指定日和星期几的行为说明
这不是树莓派6.1.0系统的异常,是Cron的标准规则:当同时指定日(day of month)和星期几(day of week)参数时,Cron会将这两个条件视为**逻辑或(OR)**关系——只要满足其中一个条件,任务就会触发,而非你预期的“同时满足两个条件才执行”。
以你配置的06 21 2 3 6为例,它的实际逻辑是:
- 3月的2日,无论当天是星期几,21:06执行任务
或者 - 3月的每个周六,无论当天是几号,21:06执行任务
所以3月2日(周六)满足两个条件会执行,3月9日(周六)满足第二个条件也会执行,这完全符合Cron的设计逻辑。
如果需要实现“仅在3月2日且当天是周六时执行”的需求,Cron本身不支持这种逻辑与的组合,你可以在任务脚本中添加判断逻辑:
# 检查当前日期是否为3月2日且是周六(%m是两位月份,%d是两位日期,%u是1-7表示周一到周日,周六是6) if [ "$(date +%m%d%u)" != "03026" ]; then exit 0 fi
然后将Cron配置修改为06 21 2 3 *,这样任务会在3月2日21:06触发脚本,脚本内部再判断当天是否为周六,不满足则直接退出,从而实现仅当两个条件都满足时执行的效果。
内容的提问来源于stack exchange,提问作者BaruchLi
相关产品推荐
相关产品推荐

