当前位置: 首页 > 知识库问答 >
问题:

使用Kubernetes为月的最后一天安排CronJob

黄俊誉
2023-03-14

我们有一个要求,我们必须在每月的最后一天使用 Kubernetes 中的 cron 调度程序自动运行我们的作业。例如,对于 3 月,它应该在 3 月 31 日下午 6 点运行。对于4月,它应该在4月30日下午6点运行。任何帮助是值得赞赏的。谢谢。

共有1个答案

禄星腾
2023-03-14

您可以使用date命令来控制是否执行另一个脚本或命令:

# Tested using GNU coreutils date 8.30
/bin/sh -c "[ $(date -d +1day +%d) -eq 1 ] && echo 'It is the last day of the month!'"

# It is the last day of the month!

您可以使用此逻辑和 CronJob 在每个月的 28 日至 31 日运行,但只有在明天是该月的第 1 天时才执行脚本:

apiVersion: batch/v1
kind: CronJob
metadata:
  name: hello
spec:
  # Run at 6pm on the 28th-31st of each month
  schedule: "0 18 28-31 * *"
  jobTemplate:
    spec:
      template:
        spec:
          containers:
          - name: cronjob
            image: busybox:1.35.0
            imagePullPolicy: IfNotPresent
            command:
            - /bin/sh
            - -c
            - "[ $(date -d +1day +%d) -eq 1 ] && job.sh"
          restartPolicy: OnFailure

此外,如果您的基本映像中的date版本存在差异并且它不支持-d 1day,只需将日期检查卸载到您的实际容器作业中,并让您的作业检查以查看“明天”是否是1号。

 类似资料:
  • 问题内容: 我在计算本月下一个最后一天何时发送预定的通知时遇到问题。 这是我的代码: 这是导致问题的线,我相信: 如何使用日历正确设置下个月的通知的最后一天? 问题答案: 这将返回当前月份的实际最大值。例如,现在是leap年的2月,因此它返回29作为。

  • 问题内容: 如果您提供的在你上一个月的最后一天: 在mozilla上有对此行为的引用。这是可靠的跨浏览器功能还是我应该考虑替代方法? 问题答案: var month = 0; // January var d = new Date(2008, month + 1, 0); alert(d); // last day in January 输出差异是由于实现方式的差异,而不是日期不同。 当然,仅因为

  • 问题内容: 我正在设法迅速获得每月的第一天和最后一天。 到目前为止,我有以下内容: 但是我不确定如何获得最后的约会。我是否缺少内置方法?显然,它必须考虑leap年等。 问题答案: 您只需使用以下命令即可获得每月的第一天 要获得该月的最后一天,请添加一个月并减去一天: 或者,使用为您提供开始时间和月份长度的方法: 对于月份的最后一天的日期,请加上月份的长度减去一秒: 为Swift5更新:

  • 问题内容: 亲爱的专业人员, 我有一个查询来获取本月的第一天和最后一天,但是我对本月第一天的时间戳有疑问。 自2015年2月起,我希望获得以下结果: @LastDOM是正确的,但是我没有得到@FirstDOM的时间戳部分的零,我得到了正确的日期,但是是运行脚本的时间。假设是上午8:50,我得到: 修复此小故障的最佳方法是什么? 问候, 缺口 问题答案: 将@FirstDOM转换为如下形式: 我希望

  • 是否可以使用以下公式计算月的第三个最后一天: 我想要的结果的一些例子: 1月28日 2月25日/26日 3月28日 4月27日 5月29日 6月27日 7月28日 8月28日 9月27日 10月28日 11月27日 十二月二十八日

  • 问题 你需要去找出一个月的最后一天,但是一年中的各月并没有一个固定时间表。 解决方案 利 用JavaScript 的日期下溢来找到给出月份的第一天: now = new Date lastDayOfTheMonth = new Date(1900+now.getYear(), now.getMonth()+1, 0) 讨论 JavaScript 的日期构造函数成功地处理溢出和下溢情况,使日期的计算