algorithm - 使用 bash 生成 cron 配置?

标签 algorithm bash cron

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

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

有什么建议吗?

最佳答案

如果不是不可能的话,该配置将非常丑陋(您可能必须每天枚举它将被执行的每一天......)

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

这个检查可以用

  • 算术,类似于:daycounter=$(( ($(date +%s)/(60*60*24) ) % 20))
  • 带有一个状态文件,其中包含存储最后执行时间的创建日期

基于文件的解决方案具有更高的容错性,如果您的服务器在计划的那一天宕机,它将在第二天执行,而算法计划在下一个周期(20 天后)。

如果将功能包装在一个文件中,您的 cron 条目看起来会非常漂亮:

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

当然,如果您有更多的服务器和条目,并希望从一个中心位置进行管理,也许从数据库中获取任务会更好。

关于algorithm - 使用 bash 生成 cron 配置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12314275/

相关文章:

git - 我可以使用 Cron 在 macOS 上安排每日提交吗?

centos 6.3 中的 python cron 作业错误

python - 在docker容器中为django运行cron作业时manage.py脚本中出现错误

algorithm - 比赛决定名次

算法到 'trim'一个图

arrays - Bash - 使用数组删除文件

bash - 在 Ubuntu/Bash 和 Windows/Powershell 之间生成具有不同结果的 SHA1 签名

Linux sed - 在开始和结束时删除而不删除中间语法

algorithm - push relabel算法分析

python - 有没有一种有效的方法可以将一个字符串拆分为两个字符串?