微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在 x 秒后启动 cron 作业?

如何解决如何在 x 秒后启动 cron 作业?

我想我误解了 Kubernetes CronJobs。在 CKAD 考试中,有一个问题是每分钟运行一次 CronJob,但它应该在任意时间后开始。我没有看到 CronJobs 或 Jobs 的任何属性让它们在特定时间后启动。这应该是 cron 字符串的一部分还是我完全误解了?

解决方法

你可以这样做

sleep "seconds"; echo " * * * * * command" >> path/to/crontab

我觉得这个问题可能措辞不正确。这可能意味着每个星期六的每一分钟。

 * * * * SAT

或者每分钟到几个小时

* 9-17 * * *

https://crontab.guru/examples.html

,

你可以做类似的事情

@reboot sleep 60 && script.sh

虽然你没有特别提到启动时间。您还可以将睡眠添加到 crontab。

另一种方法是创建一个 systemd 服务(注意:在安装了 systemd 的系统上)

[Unit]
Description=cronjob with delay
After=(some criteria)

[Service]
Type=oneshot
ExecStart=/pathto/script.sh

[Install]
WantedBy=
,

您可以安排您的 CronJob 在特定日期/时间开始,而不是每分钟运行一次,或者您想设置它。有一个 powerful online tool 可以帮助您。例如:

0 0/10 10/1 ? * * *

将安排您的 CronJob 从一天的 10 点开始每 10 分钟运行一次。或者:

0 0/10 * ? * 6/1 *

将安排您的 CronJob 从周五开始每 10 分钟运行一次。

在使用这种特定方法时要记住的重要一点是要了解您的集群运行所在的时区:

所有 CronJob schedule: 次都基于 kube-控制器-管理器。

如果您的控制平面在 Pod 或裸机中运行 kube-controller-manager 容器,为 kube-controller-manager 容器设置的时区 确定 Cron 作业控制器使用的时区。

可以在下面找到有关调度的更多信息/示例:

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。