![Crontab 在特定日期执行的问题](https://linux22.com/image/618735/Crontab%20%E5%9C%A8%E7%89%B9%E5%AE%9A%E6%97%A5%E6%9C%9F%E6%89%A7%E8%A1%8C%E7%9A%84%E9%97%AE%E9%A2%98.png)
我们在特定用户的 crontab 下有一个 cron 作业,该作业应该仅在工作日运行。在我们更改它之前,该作业每天都在运行。
在我们将下一行中的 days 语句从 '*' 更改为 '1-5' 之后,testscript.sh 仍然会在所有日子和不应该运行的周末运行。
00 21 * * 1-5 /usr/local/bin/test_script.sh >> /var/log/userdirectory/test_script.log 2>&1
知道原因吗?
答案1
嗯,最有可能的情况是更新 crontab 时出了问题。如果您无法找到具体问题,有一个简单的解决方法:在 test_script.sh 中,如果这不是运行脚本的正确日期之一,请添加几行退出。例如:
#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
(是的,我知道有更好的方法来做这些陈述;这只是一种非常容易理解和看到它在做什么的方法)