在不同时间生成自动 cron 作业

在不同时间生成自动 cron 作业

您好,我是 cron 新手。是否可以每小时随机运行一次自动 cron 作业?

语法应该每天都不同,例如:

34,57,44,30,37,31,38,30,44,35,36,56,46,55,54,40,45,44,42,35,50,59,48,34,52,* * * * *

据我所知,上述代码将在 0:34、01:57、02:44.... 至 23:52 发送 cron 作业。我目前正在用 PHP 生成语法,但不确定如何将其发送到 cron 命令或是否安全。请告知如何实现此目的。

答案1

您可以使用具有延迟的静态 cronjob:

0 *    * * *   user    sleep $(($RANDOM % 59))m; my_command

(未经测试但应该可行)

答案2

由于末尾的通配符不受限制,您提供的代码将每分钟运行一次。cron 条目的整个第一个字段只是 cron 将与之匹配以检查是否应运行该程序的分钟值列表。

Cron 也只是对时间值进行取模。将分钟数除以 11 可使 cron 在每个小时的 :00、:11、:22、:33、:44 和 :55 分钟标记处启动。

相关内容