Crontab问题与特定的日子执行

我们在特定用户的crontab下有一个cron作业,应该只在工作周的时间内运行。 工作在我们改变之前一整天都在运行。

在我们将下面一行中的天数语句从“*”更改为“1-5”之后,testscript.sh仍然在运行所有的日子和周末,这是不应该的。

00 21 * * 1-5 /usr/local/bin/test_script.sh >> /var/log/userdirectory/test_script.log 2>&1

任何想法为什么?

那么,最有可能的情况是,当你更新crontab的时候出了问题。 如果你不能追踪到具体的问题,那么有一个简单的解决方法:在test_script.sh中,如果不是运行脚本的正确date之一,可以添加几行来退出。 就像是:

 #quit if we're doing this on the wrong day of the week if date | grep Sun &> /dev/null then exit 0 fi if date | grep Sat &> /dev/null then exit 0 fi 

(是的,我知道有更好的方法来做这些陈述;这只是一个很容易理解的方法,看看它在做什么)