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

前端之家收集整理的这篇文章主要介绍了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作业,并在执行实际作业之前验证它是否真的是脚本中的最后一天.

猜你在找的Linux相关文章