使用bash生成cron配置?

时间:2012-09-07 08:16:18

标签: algorithm bash cron

在我的问题中,我会得到一个数字n。我需要创建一个cron配置来在n天内运行一次脚本。

例如,如果n = 20,脚本应该每20天运行一次。

有什么建议吗?

1 个答案:

答案 0 :(得分:2)

如果不是不可能的话,那个配置就会变得很难看(你可能每天必须枚举它会被执行......)

创建配置要比每天执行要容易得多。然后在脚本内(或在包装脚本中)检查它是否应该实际执行。

可以使用

完成此检查
  • 算术,类似于:daycounter=$(( ($(date +%s) / (60*60*24) ) % 20))
  • 使用状态文件,其具有存储上次执行时间的创建日期

基于文件的解决方案具有更强的容错能力,如果您的服务器在计划当天停机,它将在第二天执行,而算术计划在下一个周期(20天后)。 / p>

如果将功能包装在文件中,则cron条目看起来非常好:

10 1 * * * executeeveryxday nameofthestatefile 20 "command to execute"

当然,如果你有更多的服务器和条目,并希望从中心位置管理它,也许最好从数据库中获取任务。