Crontab 在特定日期执行的问题

Crontab 在特定日期执行的问题

我们在特定用户的 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

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

相关内容