我需要find一个方法来处理一个工作,以便它在每个星期三的每个星期三运行。 这可能吗?
我的crontab的网页(我可惜似乎无法在网上find)给出了以下例子:
# Run on every second Saturday of the month 0 4 8-14 * * test $(date +\%u) -eq 6 && echo "2nd Saturday"
适应这个你的目的…
0 4 8-14 * * test $(date +\%u) -eq 3 && job.sh
使用cron本身是不可能的,但是你可以每周调用一次脚本来做testing:
在crontab中,每周三12.00运行second_wed.sh:
0 12 * * 3 /home/you/bin/second_wed.sh
在second_wed.sh中:
#!/usr/bin/env bash day_of_month=`date +"% if [ $day_of_month -gt 7 -a $day_of_month -lt 15 ]; then # Call your program here instead of 'ls'… ls fi
基于这个答案,你可以这样做:
00 12 * * Wed expr `date +\%d` \> 7 \& `date +\%d` \< 15 >/dev/null && runJob.sh
您可以避免使用星期几技巧加星期几的组合来运行外部脚本:
# Run on every second Wednesday of the month 0 4 8-14 * Wed job.sh
这也避免了运行另一个外部程序。 8-14select所有与本月第二周相匹配的日子。 然后它会在那个星期三过滤掉。