Nano Hash - криптовалюты, майнинг, программирование

Дженкинс - запускать работу за 2 дня до конца каждого месяца

Добрый день,

Мне нужно запускать работу в 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

  • Какую работу с Дженкинсом ты выполняешь. Это просто настроено через конвейеры пользовательского интерфейса или jenkins? Если конвейеры, это декларативно или по сценарию? 15.03.2018
  • вы можете получить некоторое представление здесь stackoverflow.com/questions/6139189/ 15.03.2018

Ответы:


1

К сожалению, триггеры Jenkins Build не поддерживают запись скрипта bash внутри себя. Тем не менее, есть еще варианты, в зависимости от того, насколько строгим является ваше требование «за 2 дня до конца месяца».

Вариант 1:

Выполняйте мою работу только один раз в месяц:

@monthly

Вариант 2:

Запускайте задание со второго по последний день каждого месяца:

0 23 27-30 * *

Вариант 3:

Запустите его как 3 отдельных задания, как в this< /а>

Это потребует от вас добавления проверки даты в начале скриптовой части задания и выхода, если это не предпоследний день месяца.

Для получения дополнительной информации вы можете «настроить» задание и щелкнуть синий знак вопроса, который показывает много информации о том, как jenkins интерпретирует этот синтаксис cron.

15.03.2018
  • Вариант 2 звучит многообещающе... Я думаю изменить сценарий выполнения на 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
  • Да, это звучит разумно - или если вы счастливы иметь 3 работы, то 3-й вариант тоже может сработать. 15.03.2018

  • 2

    Нет необходимости создавать три рабочих места. Одно задание может иметь несколько выражений cron в Jenkins: введите здесь описание изображения Строка внизу показывает, что это должно работать как надо.

    Таким образом, вы можете использовать следующее:

    0 23 30 1,3,5,7,8,10,12 *
    0 23 29 4,6,9,11 *
    0 23 27-28 2 *
    

    У этого все еще есть недостаток для февраля, который выполняется дважды в високосные годы, чего труднее избежать. Если это проблема, но не проблема запуска на один день раньше в високосные годы, вы можете просто использовать 27 вместо 27-28.

    06.05.2021
    Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..