Linux 每次运行时调整Cronjob?

Linux 每次运行时调整Cronjob?,linux,bash,cron,crontab,Linux,Bash,Cron,Crontab,我正试图为Jira安排一个两阶段的备份过程,我已经编写了脚本 首先必须触发Jira备份,然后需要20-30分钟才能创建和下载 从备份完成并可用开始,只能每48小时触发一次备份,这似乎需要20-30分钟才能触发 其次,jira备份可以在创建备份后24小时内下载 我的问题是,如果我为触发器安排一个cron,然后再安排下载,比如一小时后 0 4 */2 * * /bin/bash jira.sh triggerbackup 0 5 */2 * * /bin/bash jira.sh downloadb

我正试图为Jira安排一个两阶段的备份过程,我已经编写了脚本

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

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

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

我的问题是,如果我为触发器安排一个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实现这一点,您有什么想法吗?

不要使用
cron
使用
at
。在备份脚本结束时,计划49小时后的下一次备份,并计划下载脚本

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

现在+49小时而不是
cron
使用
at
。在备份脚本结束时,计划49小时后的下一次备份,并计划下载脚本

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

现在+49小时,这太可怕了。想想看是什么导致了硬限制。Youp,我可以说这只是一个亚特兰西的事情来减少备份量。我承认48小时Jira备份有点过分,但仍然可能是我见过的最糟糕的备份策略。除了减少频率(如每3天或更长时间)之外,我看不到其他答案。也许我只是使用了不同的版本,但你不能设置Jira进行自动备份,然后有一个脚本使其在备份位置找到新文件时可用吗?太可怕了。想想看是什么导致了硬限制。Youp,我可以说这只是一个亚特兰西的事情来减少备份量。我承认48小时Jira备份有点过分,但仍然可能是我见过的最糟糕的备份策略。除了减少频率(如每3天或更长时间)之外,我看不到其他答案。也许我只是使用了不同的版本,但您不能设置Jira进行自动备份,然后使用脚本,使其在备份位置找到新文件时可用吗?