【发布时间】:2015-04-24 21:42:53
【问题描述】:
我在 crontab 中看到了这个 cron 设置,我很好奇脚本何时实际执行。
8 10 * * 6 expr `date +\%W` \% 2 == 1 >/dev/null || /path/to/script/scriptToRun.sh
【问题讨论】:
标签: unix cron cron-task cronexpression
我在 crontab 中看到了这个 cron 设置,我很好奇脚本何时实际执行。
8 10 * * 6 expr `date +\%W` \% 2 == 1 >/dev/null || /path/to/script/scriptToRun.sh
【问题讨论】:
标签: unix cron cron-task cronexpression
这么挑剔的语法……
8 10 * * 6 expr `date +\%W` \% 2 == 1 >/dev/null || /path/to/script/scriptToRun.sh
首先,cronjob:
+---------------- minute (0 - 59)
| +------------- hour (0 - 23)
| | +---------- day of month (1 - 31)
| | | +------- month (1 - 12)
| | | | +---- day of week (0 - 6) (Sunday=0 or 7)
| | | | |
* * * * * command to be executed
8 10 * * 6
所以在这种情况下,这意味着 cronjob每周六 10 点 8 点执行。
然后,man date 说:
%W
一年中的周数,周一为一周的第一天 (00..53)
$(date +\%W) \% 2 == 1 >/dev/null 表示:如果周数不是 2 的倍数,则将输出发送到 dev/null。否则,正常进行。
所以脚本会在每隔一个星期六的 10:08 执行。
【讨论】: