Update backup_iobroker_folder.sh

This commit is contained in:
Andre
2017-09-22 23:02:05 +02:00
committed by GitHub
parent c0eb88812f
commit a34cdfe7bf

View File

@@ -1,84 +1,84 @@
#!/bin/bash #!/bin/bash
# Backupscript für ein Backup von ioBroker unter Docker auf einer Synology Disk Station (Sicherung des ioBroker-Verzeichnises). # Backupscript fuer ein Backup von ioBroker unter Docker auf einer Synology Disk Station (Sicherung des ioBroker-Verzeichnises).
# Vorhaltezeit der letzten Backups: 90 Tage, ältere Backups werden automatisch gelöscht. # Vorhaltezeit der letzten Backups: 90 Tage, ältere Backups werden automatisch geloescht.
# #
# By André Germann # By Andre Germann
# Version 1.0 (22.03.2017) # Version 1.1 (22.09.2017)
# #
# ACHTUNG: Dieses Script muss vorher auf die Synology Disk Station kopiert und dann auch dort ausgeführt werden! # ACHTUNG: Dieses Script muss vorher auf die Synology Disk Station kopiert und dann auch dort ausgefuehrt werden!
# Für die geplante, regelmäßige Ausführung bietet sich der Aufgabenplaner der Disk Station an. # Fuer die geplante, regelmaessige Ausfuehrung bietet sich der Aufgabenplaner der Disk Station an.
# #
# ACHTUNG: Dieses Script stoppt vor der Sicherung des Verzeichnises den ioBroker Container! # ACHTUNG: Dieses Script stoppt vor der Sicherung des Verzeichnises den ioBroker Container!
# Zur Sicherheit wird empfohlen ioBroker vor dem Backup innerhalb des Containers zu stoppen. # Zur Sicherheit wird empfohlen ioBroker vor dem Backup innerhalb des Containers zu stoppen.
# Dieses kann zum Beispiel über den vorherigen Aufruf des Scripts iobroker_stop.sh aus ioBroker heraus erledigt werden. # Dieses kann zum Beispiel ueber den vorherigen Aufruf des Scripts iobroker_stop.sh aus ioBroker heraus erledigt werden.
# Deklaration der Variablen. Pfade und Bezeichnungen müssen ggf. entsprechend angepasst werden. # Deklaration der Variablen. Pfade und Bezeichnungen muessen ggf. entsprechend angepasst werden.
iobrokerPATH='/volume1/docker/iobroker_mount' # Pfad des gemounteten ioBroker-Verzeichnises (zu sicherndes Verzeichnis) auf der Synology Disk Station iobrokerPATH='/volume1/docker/iobroker_mount' # Pfad des gemounteten ioBroker-Verzeichnises (zu sicherndes Verzeichnis) auf der Synology Disk Station
backupPATH='/volume1/docker/iobroker_backup/archiv' # Pfad zum Speichern des Backups backupPATH='/volume1/docker/iobroker_backup/archiv' # Pfad zum Speichern des Backups
iobrokerCONTAINERNAME='iobroker' # Name des ioBroker-Containers in Docker iobrokerCONTAINERNAME='iobroker' # Name des ioBroker-Containers in Docker
# Start Script - Ab hier muss nichts mehr geändert werden! # Start Script - Ab hier muss nichts mehr geaendert werden!
echo "#####################################################" echo "#####################################################"
echo "############## Backupscript gestartet. ##############" echo "############## Backupscript gestartet. ##############"
echo "#####################################################" echo "#####################################################"
### Backup ioBroker-Verzeichnis ### Backup ioBroker-Verzeichnis
# ioBroker-Container stoppen # ioBroker-Container stoppen
echo "" echo ""
echo "Der ioBroker-Container ($iobrokerCONTAINERNAME) in Docker wird gestoppt..." echo "Der ioBroker-Container ($iobrokerCONTAINERNAME) in Docker wird gestoppt..."
docker stop $iobrokerCONTAINERNAME > /dev/null docker stop $iobrokerCONTAINERNAME > /dev/null
echo "Container in Docker gestoppt." echo "Container in Docker gestoppt."
echo "" echo ""
echo "######################################################" echo "######################################################"
sleep 5 sleep 5
# Backupdatei erstellen # Backupdatei erstellen
echo "" echo ""
echo "Der Ordner $iobrokerPATH wird gesichert..." echo "Der Ordner $iobrokerPATH wird gesichert..."
tar -C "$iobrokerPATH" -czf "$backupPATH/backup-$(date +%d.%m.%y-%R).tar.gz" . tar -C "$iobrokerPATH" -czf "$backupPATH/backup-$(date +%d.%m.%y-%R).tar.gz" .
echo "Sicherung des Ordners erstellt." echo "Sicherung des Ordners erstellt."
echo "" echo ""
echo "######################################################" echo "######################################################"
sleep 5 sleep 5
# Alte Backups loeschen (Loescht per "rm" alle "*.tar.gz"-Dateien im Ordner, die älter als 90 Tage sind) # Alte Backups loeschen (Loescht per "rm" alle "*.tar.gz"-Dateien im Ordner, die aelter als 90 Tage sind)
echo "" echo ""
echo "Entfernen alter Backups aus dem Verzeichnis $backupPATH..." echo "Entfernen alter Backups aus dem Verzeichnis $backupPATH..."
find -P "$backupPATH/" -maxdepth 1 -type f \( -name '*.tar.gz' \) -ctime +19 -exec rm {} \; find -P "$backupPATH/" -maxdepth 1 -type f \( -name '*.tar.gz' \) -ctime +19 -exec rm {} \;
echo "Alte Backups wurden entfernt." echo "Alte Backups wurden entfernt."
echo "" echo ""
echo "######################################################" echo "######################################################"
sleep 5 sleep 5
# ioBroker-Container starten # ioBroker-Container starten
echo "" echo ""
echo "Der ioBroker-Container ($iobrokerCONTAINERNAME) in Docker wird gestartet..." echo "Der ioBroker-Container ($iobrokerCONTAINERNAME) in Docker wird gestartet..."
docker start $iobrokerCONTAINERNAME > /dev/null docker start $iobrokerCONTAINERNAME > /dev/null
echo "Container in Docker gestartet." echo "Container in Docker gestartet."
echo "" echo ""
echo "################### Script Ende ######################" echo "################### Script Ende ######################"
exit 0 exit 0