我在crontab中看到了这个cron设置,我很好奇脚本实际执行的时间。
8 10 * * 6 expr `date +\%W` \% 2 == 1 >/dev/null || /path/to/script/scriptToRun.sh
答案 0 :(得分:3)
这种挑剔的语法......
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.08 执行。
然后,man date
说:
%的W
周数,周一为周的第一天(00..53)
$(date +\%W) \% 2 == 1 >/dev/null
表示:如果周数不是2的倍数,则将输出发送到dev / null。否则,正常进行。
因此脚本每隔一个星期六以10.08 执行。