linux – 在Crontab中通用的方式指定每n分钟,其中n> 60

参见英文答案 > Why is my crontab not working,and how can I troubleshoot it?5个
在crontab中,我看到了几个答案,用户要求每隔5分钟运行一次:
*/5 * * * * command

或者每隔5分钟就有一个偏移:

10-59/5 * * * * command

我已经看到一些创造性的解决方案,人们每90分钟制作2行crontabs:

0 0-21/3 * * * whatever
30 1-22/3 * * * whatever

感谢下面的答案之一(感谢@khaled),这是3小时30分钟的另一个创意解决方案:

0 0-23/7 * * * whatever
30 3-23/7 * * * whatever

是否有每x分钟问题的通用解决方案?例如,我目前需要每3小时30分钟.

解决重复标记:链接的问题明显不同 – 有关如何设置和调试cron作业的一般建议.我指的是一个特定的问题,我们正在达到cron语法的极限.我正在寻找一种解决“每超过60分钟”问题的通用算法,这在链接问题中没有解决.

解决方法

你只需要自己做数学计算就可以得到所需的工作来实现你的计时.
0 0-23/7 * * * whatever
30 3-23/7 * * * whatever

从这两个例子可以得出一个简单的算法(当有30分钟的偏移时):

>添加两个条目:一个偏移0分钟,另一个偏移30分钟.
>指定小时范围宽度等于持续时间* 2.
>指定小时偏移量:一个以0开头,另一个以丢弃30分钟零件后的持续时间开始.

如果你想得更多,你可以为每75分钟的事情提出类似的解决方案.

编辑:

Cron不能用于所有类型的预定作业.例如,在每月的最后一天每月执行一次作业.你不能简单地用cron来做,因为月份的最后一天会从一个月变为另一个月.要解决此问题,您可以在月末(28-31)的可能值范围内运行cron作业,并在执行实际作业之前验证它是否真的是脚本中的最后一天.

相关文章

查找全部容器的日志文件 $ sudo find /var/lib/docker/conta...
Linux日志文件中列属性的详细解析
在Linux系统中没有duf命令,如何有效地管理磁盘空间?
深入探讨EncryptPad在Linux操作系统中的功能和优势
原理和应用场景:Linux中ttyload工具的工作原理和实际用途
深度解析SELinux的三种策略类型