我正在尝试为我编写的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实现这一点?
答案 0 :(得分:4)
而不是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