2016-05-27 19 views
1

Ich versuche, einen zweistufigen Backup-Prozess für Jira zu planen, den ich gescriptet habe.Einen Cronjob jedes Mal anpassen, wenn er ausgeführt wird?

Zuerst muss ein Jira-Backup ausgelöst werden, es dauert dann 20-30 Minuten, um erstellt zu werden und zum Download verfügbar zu sein.

Das Auslösen einer Sicherung kann nur alle 48 Stunden erfolgen, beginnend mit dem Zeitpunkt, an dem die Sicherung abgeschlossen ist & verfügbar, was 20-30 Minuten nach dem Auslösen dauert.

Zweitens kann ein jira-Backup innerhalb von 24 Stunden heruntergeladen werden, nachdem das Backup erstellt wurde.

Mein Problem ist, wenn ich einen Cron für den Trigger planen und dann den Download etwa eine Stunde später planen z.

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

Die erste Sicherung ist in Ordnung, aber das nächste Mal wird es Fehler als die crontab 20-30minutes Grenze kurz vor der 48 Stunden ausgeführt wird.

Beide Cron-Aufgaben müssten "rutschen" lässt sagen, eine Stunde, um sicher zu sein, um außerhalb der 48 Stunden Fenster jedes Mal, wenn das Skript läuft z.

erstmals

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

zweites Mal

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

drittes Mal

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

usw.

Persönlich würde ich nur die Frequenz verzögern, aber ich don‘ t mache die Regeln. Ich denke, dass es eine einfache Lösung gibt, die ich atm nicht sehen kann, aber entweder ist es ein interessantes Problem, das ich noch nie begegnet bin. Irgendwelche Ideen, wie man dies über cron erreicht?

+2

Das ist schrecklich. Überlegen Sie sich lieber, was das harte Limit verursacht. –

+0

Yup, soweit ich das beurteilen kann Es ist nur eine Atlassian-Sache, um die Anzahl der Backups zu reduzieren. Ich bestätige, dass die Jira-Backups über 48 Stunden ein wenig übertrieben sind, aber immer noch die schlechteste Backup-Strategie sein könnte, die ich gesehen habe. Ich sehe keine andere Antwort als die Häufigkeit zu reduzieren, z. alle 3 Tage oder mehr. – geniestacks

+0

Vielleicht benutze ich nur eine andere Version, aber können Sie Jira nicht für automatische Backups einrichten und haben dann ein Skript, das es verfügbar macht, wenn sich eine neue Datei am Backup-Speicherort befindet? – bluerojo

Antwort

4

Anstelle von cronat verwenden. Am Ende des Backup-Skripts planen Sie die nächste Sicherung 49 Stunden später und planen Sie das Download-Skript.

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