Назад | Перейти на главную страницу

Проблема crontab с выполнением в определенные дни

У нас есть задание 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

(да, я знаю, что есть более эффективные способы сделать эти утверждения; это просто способ сделать это, что действительно легко понять и увидеть, что он делает)