У нас есть задание cron под crontab конкретного пользователя, которое должно выполняться только в рабочие дни недели. Работа работала все дни, прежде чем мы ее поменяли.
После того как в следующей строке мы изменили выражение days с «*» на «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 добавьте пару строк для выхода, если это не один из правильных дней для запуска скрипта. Что-то вроде:
#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
(да, я знаю, что есть более эффективные способы сделать эти утверждения; это просто способ сделать это, что действительно легко понять и увидеть, что он делает)