永远不会执行的 cron 作业

问题描述 投票:0回答:7

有没有办法创建一个 cron 表达式来根本不运行作业?

我想用这个表达:

0 0 0 1 1 ? 3099

...这实际上可以完成这项工作,因为它将在 3099 年运行,但是有没有更干净的方法来做到这一点?

unix cron
7个回答
141
投票

如果即使在遥远的将来,您仍然在寻找强大的东西,请尝试https://stackoverflow.com/a/13938099/1601531,我建议在 crontab 条目中使用February 31st,而这并不是有意的执行。

0 0 5 31 2 ?

32
投票

我需要一个有效的 cron 计划(

?
语法在我的系统中不起作用)来解析真实的日期,但实际上是“从不”。我目前最好的解决方案是选择最近的闰年,看看 2 月 29 日是哪一天。 2016 年 2 月 29 日是星期一,所以下一个星期一 2 月 29 日目前是最远的。

0 0 29 2 1
产生接下来的 5 个触发器:

02/29/2044 00:00:00Z
02/29/2072 00:00:00Z
02/29/2112 00:00:00Z
02/29/2140 00:00:00Z
02/29/2168 00:00:00Z

虽然不完美,但已经可以了。


21
投票

选择过去的日期。

这种事永远不会再发生了。除非今天是土拨鼠日。只是不要选择土拨鼠日。


0
投票

我为您的问题创建了一个副本(点击此处查看),并同意您最初的建议。经过测试,Quartz 似乎永远不会执行年份超过 2300 的 cron 表达式。


0
投票

我需要类似的包含秒数的东西,我已经使用 DevToys 应用程序生成了一个 CRON 表达式,该表达式将在很远的将来发生:https://devtoys.app/


-4
投票

打开 crontab 文件并删除该条目是适当的方法。或者您也可以将 cronjob 调用的可执行文件模拟链接到空 shell 脚本。

请告诉我们有关您的设置的更多信息,然后我们会看到...


-12
投票

将其注释掉 - 在其前面放置

#
符号。非常有用,特别是如果您担心到 3099 年您会忘记所做的更改。

另一种可能性是让它执行虚拟命令,例如

true rm -rf /

© www.soinside.com 2019 - 2024. All rights reserved.