Normalerweise bin ich der Konsument und "blöde" Fragensteller in diesem Forum.
Heute kann ich evtl dem einen oder anderen etwas zurück geben.
Nachdem mir die erste CCU abgeraucht ist und ich sie leider nicht wiederbeleben konnte - ist nun die nächste am Start - damit ich bei einem erneuten Ausfall nicht wieder bei 0 Anfangen muss, erstellt die CCU Backup.
Das Backup der HomeMatic wird durch die CCU selbst erstellt. Dazu herzlichen Dank an Jens Maus.
Aktuell habe ich folgende Komponenten im Einsatz:
ein NAS - zum Speichern von Daten
ein RasbperryPi 3 als CCU2 (also RASPIMATIC) - da wird das Backup jede Nacht autoamtisch angestossen
ein weiterer Pi3, welcher ganz viele Aufgaben hat (Steuerung WLAN, Radio, Wetterdaten verarbeiten etc.) - neu auch meine Backup_Strategie der Homematic umsetzen.
Da ich nun nicht einfach Backups auf Vorrat generieren möchte habe ich mir eine "Strategie" zurecht gelegt.
Die wie folgt lautet:
es gibt max 8 Backups.
Das Backup um 15. im Monat wird als Monatsbackup weg gesichert
Das Backup vom 15.11 wird zusätzlich noch als Jahresbackup gesichert.
Da ich es nicht schaffa die Datei anzuhängen kommt nun hlat der gazne Code hier (inkl. Kommentaren)
Für das Scripüt wird keine Haftung übernommen.
Code: Alles auswählen
#!/bin/sh
#Variablen initierung
#Damit dieses Script funktioniert darf im Backup Ordner neben den Backups keine Dateien liegen (Anzahl Unterordner spielen keine Rolle, doch der Name der Unterordner muss mit einem Buchstaben beginnen zwischen I und Z - so ist sichergestellt das die Backups (beginnen ja mit home...) zuerst aufgelistet werden.
#Pfad zum BackupOrdner (muss existierren)
BackupPfad="/home/pi/HM_Backup"
#Pfad zum MonatsBackupOrdner (muss existieren)
PfadzumMonatsBackup=$BackupPfad"/Monat/"
#Pfad zum JahresBackupOrdner (muss exisiteren)
PfadzumJahresBackup=$BackupPfad"/Jahr/"
#Anzahl Unterordner in BackupOrdner (in der Standartkonfig sind es 2)
minus=2
#Tag von welchem das Monatsbackup gespeichert wird (Angabe immer 2 stellig z.B.: 01 oder 25)
MTag=15
#Monat von welchem Das Jahresbackup gesichert wird (Tag ist der gleiche wie das Monatsbackup) (Angabe immer 2 Stellig)"
MMonat=11
#Anzahl der täglichen Backups behalten (ältere werden gelöscht)
maxanzahl=8
#vorhandene Backup auslesen
Backupordner=(`find $BackupPfad -maxdepth 1 -type f `)
Backups=${#Backupordner[@]}
StandBackups="0"
while [ $StandBackups -lt $Backups ]
do
aktBackup=${Backupordner[$StandBackups]}
# echo $aktBackup
stellen=$(expr length $aktBackup)
# echo $stellen
ende=`expr $stellen - 9`
# echo $ende
start=`expr $ende - 9`
# echo $start
ccut=$start"-"$ende
Datum=`echo $aktBackup | cut -c $ccut`
# echo $Datum
Monat=`echo $Datum | cut -c6-7`
# echo $Monat
Tag=`echo $Datum | cut -c 9-`
# echo $Tag
#Monatsbackup abspeichern
if [ $Tag == $MTag ] ;then
sudo cp $aktBackup $PfadzumMonatsBackup
fi
#Jahresbackup abspeichern
if [ $Tag == $MTag ] && [ $Monat == $MMonat ] ;then
sudo cp $aktBackup $PfadzumJahresBackup
fi
StandBackups=$[StandBackups+1]
done
#Ordnerinhalt in Array abfüllen
ARRAY=(`ls $BackupPfad`)
ende=${#ARRAY[@]}
# Wert in Variable "Minus" abziehen weil soviel Unternoder in diesem Ordner liegen
ende=$[$ende-$minus]
i="0"
if [ $ende -gt $maxanzahl ];then
zuloeschen=$[$ende-maxanzahl]
cd $BackupPfad
while [ $i -lt $zuloeschen ]
do
# echo ${ARRAY[$i]}
sudo rm -rf ${ARRAY[$i]}
i=$[$i+1]
done
fi
Gruss
Dani