gpt4 book ai didi

date - Jenkins - 每个月结束前 2 天运行作业

转载 作者:行者123 更新时间:2023-12-02 20:29:02 25 4
gpt4 key购买 nike

美好的一天,

我需要每月在月底前两天在 Jenkins 中运行作业

该问题类似于问题:run cron job on end of every month ,但就我而言,接受的回应是 Not Acceptable 。 (因为修改生产代码超出了范围,人们仍然希望在规定时间之外执行它。)

我在通用 crontab 环境中发现了类似的问题和潜在的解决方案:

0 23 27-30 * * [ $(date +\%d -d "2 days") == 01 ]

但是 Jenkins 不支持这种语法,给我错误消息:

Invalid input: "0 23 27-30 * * [ $(date +\%d -d "2 days") == 01 ]": line 1:15: expecting EOF, found ' '

有没有 Jenkins 大师指点一下?

编辑:在下面答案的帮助下,我想出了以下解决方案:

  • 添加字符串参数自动运行
  • 将 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 中一项作业可以有多个 cron 表达式: enter image description here底部的线显示这应该按预期工作。

所以你可以使用以下内容:

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

关于date - Jenkins - 每个月结束前 2 天运行作业,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49295240/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com