在我的问题中,我会得到一个数字n。我需要创建一个cron配置来在n天内运行一次脚本。
例如,如果n = 20,脚本应该每20天运行一次。
有什么建议吗?
答案 0 :(得分:2)
如果不是不可能的话,那个配置就会变得很难看(你可能每天必须枚举它会被执行......)
创建配置要比每天执行要容易得多。然后在脚本内(或在包装脚本中)检查它是否应该实际执行。
可以使用
完成此检查daycounter=$(( ($(date +%s) / (60*60*24) ) % 20))
基于文件的解决方案具有更强的容错能力,如果您的服务器在计划当天停机,它将在第二天执行,而算术计划在下一个周期(20天后)。 / p>
如果将功能包装在文件中,则cron条目看起来非常好:
10 1 * * * executeeveryxday nameofthestatefile 20 "command to execute"
当然,如果你有更多的服务器和条目,并希望从中心位置管理它,也许最好从数据库中获取任务。