Hallo Leute, Mit einem Cronetab möchte ich ein Backupscript menütlich aufrufen. Das Script hat eine "Erinnerung", das es bereits läuft, damit es kein zweites mal gestartet wird. Nun stellt sich mir die Frage, was passiert, wenn das Script abbricht, oder der RPI neu gestartet wird. Dann wird das Script ja nie wieder ausgeführt! Wie gehe ich da am besten vor? Täglich ein zweites "Watchdog" script ausführen? Das Pseudoscript sieht jetzt wie folgt aus:
1 | #! /bin/bash
|
2 | if [ -f /backuper/inprogress ];then |
3 | echo "Backup läuft schon - Beende Cronetab script" |
4 | else
|
5 | echo "Starte neues Backup" |
6 | echo "Starte neues Backup" > /backuper/inprogress |
7 | #Grüne LED an
|
8 | echo "ON" > /backuper/LED_GREEN |
9 | echo "OFF" > /backuper/LED_YELLOW |
10 | #Mounte Dislocker Laufwerk, wenn ein USB Device angeschlossen ist
|
11 | /backuper/autodislocker.sh |
12 | if [! -d /backuper/dismount ]; then |
13 | #Dislocker mount schiefgegangen, oder kein Laufwerk vorhanden
|
14 | rm -f /backuper/inprogress |
15 | #Beide LEDs aus
|
16 | echo "OFF" > /backuper/LED_GREEN |
17 | echo "OFF" > /backuper/LED_YELLOW |
18 | break
|
19 | else
|
20 | #Beide LEDs an
|
21 | echo "ON" > /backuper/LED_GREEN |
22 | echo "ON" > /backuper/LED_YELLOW |
23 | #Starte neuen Screen, welcher das Backup ausführt.
|
24 | screen -mS backup /backuper/autohddrsync.sh
|
25 | #Backup fertig. Lösche die inprogress Datei
|
26 | rm -f /backuper/inprogress |
27 | #Beide LEDs aus
|
28 | echo "OFF" > /backuper/LED_GREEN |
29 | echo "OFF" > /backuper/LED_YELLOW |
30 | fi
|
31 | fi
|