Cron - Как запустить задание в первый день недели после указанного c дня месяца? - PullRequest
1 голос
/ 12 февраля 2020

Мы хотим запланировать работу, которая будет выполняться в будний день 12-го или в первый рабочий день после 12-го. Могу ли я указать это в cron?

1 Ответ

2 голосов
/ 13 февраля 2020

Вы не можете определить такие логики c в cron, и обычный способ - добавить их в скрипт, который вы хотите запустить. Так что запускайте скрипт каждый день так:

0 0 * * * /path/to/script.sh

и добавляйте внутрь

if [ "$(date +%d%m)" == "0101" ]
then rm -f /var/run/flag
fi
if [ $(date +%d) -ge 12 ] && [ $(date +%w) -gt 0 ] &&  [ $(date +%w) -lt 6 ] && [ ! -f /var/run/flag ]
then <do the work>
touch /var/run/flag
fi
exit

Также вам следует позаботиться о запуске только один раз (насколько я понимаю)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...