gpt4 book ai didi

linux - 每次运行时都调整 Cronjob?

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:34:51 35 4
gpt4 key购买 nike

我正在尝试为我编写的 Jira 安排一个两阶段备份过程。

首先必须触发 Jira 备份,然后需要 20-30 分钟才能创建并可供下载。

从备份完成且可用开始,只能每 48 小时触发一次备份,这似乎需要 20-30 分钟才能触发。

其次,可以在创建备份后的 24 小时内下载 jira 备份。

我的问题是,如果我为触发器安排一个 cron,然后安排一个小时后下载,例如。

0 4 */2 * * /bin/bash jira.sh triggerbackup
0 5 */2 * * /bin/bash jira.sh downloadbackup

第一次备份没问题,但下次会出错,因为 crontab 将在 48 小时限制后执行 20-30 分钟。

两个 cron 任务都需要“延迟”让我们说一个小时是安全的,以便每次运行脚本时都在 48 小时窗口之外。

第一次

0 4 */2 * * /bin/bash jira.sh triggerbackup
0 5 */2 * * /bin/bash jira.sh downloadbackup

第二次

0 5 */2 * * /bin/bash jira.sh triggerbackup
0 6 */2 * * /bin/bash jira.sh downloadbackup

第三次

0 6 */2 * * /bin/bash jira.sh triggerbackup
0 7 */2 * * /bin/bash jira.sh downloadbackup

等等

就个人而言,我只是推迟频率,但我不制定规则。我在想可能有一个我看不到 atm 的简单解决方案,但不管怎样,这是一个我从未遇到过的有趣问题。有什么想法可以通过 cron 实现吗?

最佳答案

使用 at 代替 cron。在备份脚本的末尾安排 49 小时后的下一次备份,并安排下载脚本。

at now + 49 hours <<EOF
/bin/bash jira.sh triggerbackup
EOF
at now + 1 hours <<EOF
/bin/bash jira.sh downloadbackup
EOF

关于linux - 每次运行时都调整 Cronjob?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37473144/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com