Добрый день,
Мне нужно запускать работу в Jenkins ежемесячно, за два дня до конца месяца.
Вопрос аналогичен вопросу: запускать задание cron в конце каждого месяца, но принятый ответ неприемлем в моем случае. (Потому что изменение производственного кода выходит за рамки, и люди все равно хотели бы выполнять его в нерабочее время.)
Я нашел похожие проблемы и потенциальное решение в общей среде crontab:
0 23 27-30 * * [ $(date +\%d -d "2 days") == 01 ]
Но Jenkins не поддерживает такой синтаксис, выдавая мне сообщение об ошибке:
Неверный ввод: "0 23 27-30 * * [ $(date +\%d -d "2 days") == 01 ]": строка 1:15: ожидается EOF, найдено ' '
Любые гуру Дженкинса, чтобы дать указатели?
Изменить: с помощью приведенного ниже ответа я нашел следующее решение:
- Добавить строковый параметр Автозапуск
- Установите Crontab на
H 4 26-30 * *
- Модифицированный скрипт выполнения:
_
if (($Autorun == 0)) || (( [ $(date +\%d -d "2 days") == 01 ] && $Autorun == 1 )); then
My_execute stuff
else
echo "Dummy run, autorun only 2 days before end of month."
exit 1
fi
if (( [ $(date +\%d -d "2 days") == 01 ])); then DoStuff else echo "Dummy run, autorun only 2 days before end of month." exit 1 fi
15.03.2018