本博客在如下这个博客上进行了细化分析,如下这个博客来源连接如下:
https://blog.csdn.net/dccmxj/article/details/79291792
crontab表达式"分、时、日、月、周"5个域中,日期(1-31)、星期(0-6)两个域都表示哪一天。为了验证“日、周”同时设置时,哪个域生效。
所做的验证如下:
做验证时的当前时间为2020、7、24 周五 12:02:00
(1) 2 12 25 * 5 /bin/echo "25 * 5" >> /tmp/lgftest (用于验证日期、星期中,日期不满足,星期满足时是否生效)
(2) 2 12 24 * 6 /bin/echo "24 * 6" >> /tmp/lgftest (用于验证日期、星期中,日期满足,星期不满足时是否生效)
(3) 2 12 * * 5 /bin/echo "* * 5" >> /tmp/lgftest (用于验证日期、星期中,日期为* 满足<* 默认所有有效值>,星期为数值满足时是否生效)
(4) 2 12 * * 6 /bin/echo "* * 6" >> /tmp/lgftest (用于验证日期、星期中,日期为* 满足 <* 默认所有有效值>,星期为数值不满足时是否生效)
实际输出效果如下:
root@OpenWrt:~# cat /tmp/lgftest
24 * 6
* * 5
25 * 5
总结:
对比(1)、(2)说明:当日期、星期都是数值(非“*”值)时,满足 || 关系,即满足任何一个就生效;
对比(3)、(4)说明:当日期、星期中,有一个是数值,另一个是“*”值时,数值生效,而“*”值不生效;
当然当日期、星期都是“*”值时,指每一天都生效,就不用纠结到底是谁生效。