Backup - Programm?
Moderator: Co-Administratoren
-
- Beiträge: 972
- Registriert: 03.02.2014, 18:04
- Wohnort: Münsterland
- Hat sich bedankt: 27 Mal
- Danksagung erhalten: 8 Mal
Backup - Programm?
Hallo zusammen,
cuxd kann ja Backups erstellen. Ich möchte gerne jede Nacht ein Backup erstellen. Auf Dauer wird mir das aber eigentlich zuviel.
Eigentlich hatte ich mir folgendes überlegt:
* Backup der letzten 30 Tage halten, danach löschen
* Backup vom 01. des Monats sollen aber behalten werden
Hat jemand so etwas schonmal in freier Laufbahn gesehen und kann mir den Weg weisen?
Viele Grüße,
Christian
cuxd kann ja Backups erstellen. Ich möchte gerne jede Nacht ein Backup erstellen. Auf Dauer wird mir das aber eigentlich zuviel.
Eigentlich hatte ich mir folgendes überlegt:
* Backup der letzten 30 Tage halten, danach löschen
* Backup vom 01. des Monats sollen aber behalten werden
Hat jemand so etwas schonmal in freier Laufbahn gesehen und kann mir den Weg weisen?
Viele Grüße,
Christian
- eiGelbGeek
- Beiträge: 979
- Registriert: 24.07.2014, 17:46
- Wohnort: Ruhrpottrandgebiet
- Hat sich bedankt: 105 Mal
- Danksagung erhalten: 19 Mal
Re: Backup - Programm?
Wohin willst du deine Backups denn speichern ?
Wenn es z.b. ein Raspberry ist oder ein andere Linux System .... dann könnte man sicherlich ein Bash Script schreiben, das die Anzahl der Dateien im Ordner prüft und wenn 30 erreicht sind, dann das erste File in ein Monats Verzeichnis schiebt und alle andere in ein Letzter Monat Ordner .... dieser wird vorher geleert.... somit hätte man den letzen Monat immer komplett bis zum nächsten Monat... und Die monatlichen Backups für immer.
Ich schätze RSnaphot kann das von Hause auch ... da muss man sich aber ordentlich einlesen.
Wenn es z.b. ein Raspberry ist oder ein andere Linux System .... dann könnte man sicherlich ein Bash Script schreiben, das die Anzahl der Dateien im Ordner prüft und wenn 30 erreicht sind, dann das erste File in ein Monats Verzeichnis schiebt und alle andere in ein Letzter Monat Ordner .... dieser wird vorher geleert.... somit hätte man den letzen Monat immer komplett bis zum nächsten Monat... und Die monatlichen Backups für immer.
Ich schätze RSnaphot kann das von Hause auch ... da muss man sich aber ordentlich einlesen.
Nur weil es nicht geht, muss es nicht kaputt sein ^^
Apple for Work, Linux for Network, iOS for Mobility and still Windows for Solitaire
Apple for Work, Linux for Network, iOS for Mobility and still Windows for Solitaire
-
- Beiträge: 972
- Registriert: 03.02.2014, 18:04
- Wohnort: Münsterland
- Hat sich bedankt: 27 Mal
- Danksagung erhalten: 8 Mal
Re: Backup - Programm?
Ziel ist eien Synology. Dort steht RS apshot grundsätzlich zur Verfügung. Jedoch sind das für mich böhmische Dörfer.
Ich bin da auf etwas lauffähigem angewisen. Jemand ne Idee?
Ich bin da auf etwas lauffähigem angewisen. Jemand ne Idee?
- eiGelbGeek
- Beiträge: 979
- Registriert: 24.07.2014, 17:46
- Wohnort: Ruhrpottrandgebiet
- Hat sich bedankt: 105 Mal
- Danksagung erhalten: 19 Mal
Re: Backup - Programm?
Später mehr ... habe meinen Beitrag erstmal wieder gelöscht.... klappte nicht so wie ich das wollte
Nur weil es nicht geht, muss es nicht kaputt sein ^^
Apple for Work, Linux for Network, iOS for Mobility and still Windows for Solitaire
Apple for Work, Linux for Network, iOS for Mobility and still Windows for Solitaire
- eiGelbGeek
- Beiträge: 979
- Registriert: 24.07.2014, 17:46
- Wohnort: Ruhrpottrandgebiet
- Hat sich bedankt: 105 Mal
- Danksagung erhalten: 19 Mal
Re: Backup - Programm?
Code: Alles auswählen
mkdir /SD-KARTEN-PFAD/backup/; /usr/local/addons/cuxd/extra/ccu_backup /SD-KARTEN-PFAD/backup/; scp /SD-KARTEN-PFAD/backup/* nas_user@nas:/PFAD/ZUM/BACKUPORDER/; rm -R /SD-KARTEN-PFAD/backup/
Mir ist klar das das noch nicht die vollständige Lösung deiner Vorstellung ist, aber mit diesen, bekommst du die backUps schonmal zum NAS und werden von der CCU wieder gelöscht.
Alternativ: Du mountest die NAS Freigabe in der CCU ... mir persönlich gefällt die SSH Variante besser.....
Dann wäre der Aufruf wie folgt:
Code: Alles auswählen
/usr/local/addons/cuxd/extra/ccu_backup /PFAD/ZUM/MOUNT/POINT/
Nur weil es nicht geht, muss es nicht kaputt sein ^^
Apple for Work, Linux for Network, iOS for Mobility and still Windows for Solitaire
Apple for Work, Linux for Network, iOS for Mobility and still Windows for Solitaire
- eiGelbGeek
- Beiträge: 979
- Registriert: 24.07.2014, 17:46
- Wohnort: Ruhrpottrandgebiet
- Hat sich bedankt: 105 Mal
- Danksagung erhalten: 19 Mal
Re: Backup - Programm?
Code: Alles auswählen
#!/bin/bash
Monthly_Archiv_PFAD=/Users/kevin/Desktop/CCU_BackUp/Monthly/
Monthly_Backup_PFAD=/Users/kevin/Desktop/CCU_BackUp/Daily/
###########################
#Ab hier nichts verändern!#
###########################
#Abfrage ob der Ordner für komprimierte Monatliche BackUp's vorhanden ist!
if [ -d "$Monthly_Archiv_PFAD" ]; then
echo "Verzeichnis für Monatliche BackUp's vorhanden!"
else
mkdir -p $Monthly_Archiv_PFAD
echo "Verzeichnis für Monatliche BackUp's angelegt!"
fi
#Abfrage ob der Ordner für Tägliche BackUp's vorhanden ist!
if [ -d "$Monthly_Backup_PFAD" ]; then
echo "Verzeichnis für Tägliche BackUp's vorhanden!"
else
mkdir -p $Monthly_Backup_PFAD
echo "Verzeichnis für Tägliche BackUp's war nicht vorhanden! Kein Monatliches BackUp angelegt!"
exit
fi
#Abfrage ob der Ordner für Tägliche BackUp's leer ist!
cd $Monthly_Backup_PFAD
list=$(echo *)
if [ "$list" = "*" ]; then
echo "Verzeichnis hat keinen Inhalt, kein Monatliches BackUp erstellt!"
else
tar -C "$(dirname "$Monthly_Backup_PFAD")" -zvchf "$Monthly_Archiv_PFAD"CCU_BackUp_$(date +%m_%Y).tar.gz "$(basename "$Monthly_Backup_PFAD")"
rm $Monthly_Backup_PFAD*
fi
Das wäre das Bash Skript, das die Inhalte aus den Täglichen BackUps komprimiert, in den Monatlichen Ordner schiebt und anschliessend den Täglichen Ordner leer.
Auslösen kannst du das Script über einen CronJob oder auch über ein CCU Programm mit Zeitsteuerung.
Die Backup's sind so 5 MB groß ... je nach Ausstattung der CCU ... 31*5 155 MB im Monat, 2 GB im Jahr .... Ich werde von hinten Monatliche Backups löschen .... sprich wenn 12 Monats BackUps vorhanden sind, dann wird das älteste gelöscht...
*Glaube das ist eine bessere BackUp Strategie*
PS: Natürlich kann man die Täglichen BackUps auch nur Wöchentlich machen ..... das kann man ja in der Zeitsteuerung im CCU Programm einstellen .... (wenn umbedingt Platz gesparrt werden soll)
Natürlich kannst du auch am 1.ten eines Monats das BackUp in 2 Ordner kopieren .... das wäre alles im CCU Programm machbar ...
Nur weil es nicht geht, muss es nicht kaputt sein ^^
Apple for Work, Linux for Network, iOS for Mobility and still Windows for Solitaire
Apple for Work, Linux for Network, iOS for Mobility and still Windows for Solitaire
-
- Beiträge: 972
- Registriert: 03.02.2014, 18:04
- Wohnort: Münsterland
- Hat sich bedankt: 27 Mal
- Danksagung erhalten: 8 Mal
Re: Backup - Programm?
Erstmal vielen Dank für deine Unterstützung.
Ich befürchte, ich brauche eine weitere Anleitung, wo ich das bash-script wie speichere. Und dann muss ich wissen, wie ich es aus einem CCU - Programm aufrufen kann. Gerne auch einen guten google-Treffer, den ich dann abrarbeiten kann...
Ich befürchte, ich brauche eine weitere Anleitung, wo ich das bash-script wie speichere. Und dann muss ich wissen, wie ich es aus einem CCU - Programm aufrufen kann. Gerne auch einen guten google-Treffer, den ich dann abrarbeiten kann...
- eiGelbGeek
- Beiträge: 979
- Registriert: 24.07.2014, 17:46
- Wohnort: Ruhrpottrandgebiet
- Hat sich bedankt: 105 Mal
- Danksagung erhalten: 19 Mal
Re: Backup - Programm?
Puh dann wird es schwer ... wenn du so keine Ahnung von der Bash hast .... mit der Bash kann man ganze Systeme zerstören...
Das ist mein aktueller Stand! Das rufe ich jeden Montag um 04:00 per CronJob auf. Es löscht die älteste Tägliche Datei, komprimiert die restlichen Dateien und schiebt sie zu den Wöchentlichen BackUps anschliessend wird der Tägliche Ordner gelöscht, bis auf die neuste Datei! (Deswegen wird vorher auch die Älteste gelöscht, so habe ich immer die letzte im Ordner, aber komprimiere keine Dateien doppelt) Sobald 5 Dateien im Wöchentliche Ordner sind, werden sie zu einen Monatlichen BackUp komprimiert ind ebenfalls wird vorher das älteste gelöscht, und die neuste bleibt im Ordner vorhanden. (daher wird bei der Initialisierung auch eine dummy.txt angelegt, damit keine ganze Woche verloren geht beim Start. die Dummy.txt löscht sich automatisch im durchlauft. Nicht selbst löschen! kann zu Datenverlusten führen!
PS: Keine Haftung für Datenverluste ......
Code: Alles auswählen
#Script für automatisierte Homematic CCU2 System BackUp's mit einem Linux/Unix System!
#Version 0.2
#Copyright by eiGelbGeek - 13.07.2016
#Nutzung auf eigene Gefahr, ich übernehme keine Verantwortung für Datenverluste!
#!/bin/bash
##########################################################################################
#Konfiguration
#Pfad zum BackUp Verzeichnis!
PFAD=/Users/kevin/Desktop/CCU_BackUp/
#Angabe der Wochen bis ein Monat's BackUp erstellt wird!
monthly_interval=5
#Anzahl der Monat's BackUp, bei erreichen wird das älteste gelöscht!
monthly_del_interval=12
##########################################################################################
#Ab hier nichts verändern!
##########################################################################################
#Abfrage ob der Ordner für komprimierte Monatliche BackUp's vorhanden ist!
if [ -d "$PFAD/Monthly/" ]; then
echo "Verzeichnis für Monatliche BackUp's -> OK!"
else
mkdir -p $PFAD/Monthly/
echo "Verzeichnis für Monatliche BackUp's -> OK!"
fi
#Abfrage ob der Ordner für komprimierte Wöchentliche BackUp's vorhanden ist!
if [ -d "$PFAD/Weekly/" ]; then
cd $PFAD/Weekly/
list=$(echo *)
if [ "$list" = "*" ]; then
touch $PFAD/Weekly/dummy.txt
echo "Verzeichnis für Wöchentliche BackUp's -> OK!"
else
echo "Verzeichnis für Wöchentliche BackUp's -> OK!"
fi
else
mkdir -p $PFAD/Weekly/
touch $PFAD/Weekly/dummy.txt
echo "Verzeichnis und Dummy für Wöchentliche BackUp's -> OK!"
fi
#Abfrage ob der Ordner für Tägliche BackUp's vorhanden ist!
if [ -d "$PFAD/Daily/" ]; then
echo "Verzeichnis für Tägliche BackUp's -> OK!"
else
mkdir -p $PFAD/Daily/
echo "Verzeichnis für Tägliche BackUp's -> OK!"
echo "Initialisierung des Homematic BackUp Script -> OK"
exit
fi
#Wöchentliches komprimiertes BackUp erzeugen und Tägliche BackUp's löschen!
cd $PFAD/Daily/
list=$(echo *)
if [ "$list" = "*" ]; then
echo "Verzeichnis hat keinen Inhalt, kein Wöchentliches BackUp erstellt!"
else
cd $PFAD/Daily/
ls -t | tail -n 1 | xargs rm -f
tar -C "$(dirname "$PFAD/Daily/")" -zvchf "$PFAD/Weekly/"CCU_BackUp_$(date +vom_%d_%m_%Y_um_%H_%M_%S).tar.gz "$(basename "$PFAD/Daily/")"
cd $PFAD/Daily/
ls -t | tail +2 | xargs rm -f
fi
#Monatliches komprimiertes BackUp erzeugen und Wöchentliche löschen! (Intervall in der Konfiguration einstellen!)
cd $PFAD/Weekly/
anzahl=$(ls -F |grep -v / | wc -l)
anzahl_k=$((anzahl+1))
if [ $anzahl -ge $monthly_interval ]; then
cd $PFAD/Weekly/
ls -t | tail -n 1 | xargs rm -f
tar -C "$(dirname "$PFAD/Weekly/")" -zvchf "$PFAD/Monthly/"CCU_BackUp_$(date +vom_%d_%m_%Y_um_%H_%M_%S).tar.gz "$(basename "$PFAD/Weekly/")"
cd $PFAD/Weekly/
ls -t | tail +2 | xargs rm -f
else
echo "Intervall für Monatliches BackUp noch nicht erreicht!"
fi
#Ältestes Monatliche Backup löschen, wenn das Interval zum löschen erreicht ist
cd $PFAD/Monthly/
anzahl_k=$((monthly_del_interval+1))
anzahl=$(ls -F |grep -v / | wc -l)
if [ $anzahl -ge $anzahl_k ]; then
ls -t | tail -n 1 | xargs rm -f
else
echo "Intervall zum löschen Monatlicher BackUps noch nicht erreicht!"
fi
Das ist mein aktueller Stand! Das rufe ich jeden Montag um 04:00 per CronJob auf. Es löscht die älteste Tägliche Datei, komprimiert die restlichen Dateien und schiebt sie zu den Wöchentlichen BackUps anschliessend wird der Tägliche Ordner gelöscht, bis auf die neuste Datei! (Deswegen wird vorher auch die Älteste gelöscht, so habe ich immer die letzte im Ordner, aber komprimiere keine Dateien doppelt) Sobald 5 Dateien im Wöchentliche Ordner sind, werden sie zu einen Monatlichen BackUp komprimiert ind ebenfalls wird vorher das älteste gelöscht, und die neuste bleibt im Ordner vorhanden. (daher wird bei der Initialisierung auch eine dummy.txt angelegt, damit keine ganze Woche verloren geht beim Start. die Dummy.txt löscht sich automatisch im durchlauft. Nicht selbst löschen! kann zu Datenverlusten führen!
PS: Keine Haftung für Datenverluste ......
Nur weil es nicht geht, muss es nicht kaputt sein ^^
Apple for Work, Linux for Network, iOS for Mobility and still Windows for Solitaire
Apple for Work, Linux for Network, iOS for Mobility and still Windows for Solitaire
- eiGelbGeek
- Beiträge: 979
- Registriert: 24.07.2014, 17:46
- Wohnort: Ruhrpottrandgebiet
- Hat sich bedankt: 105 Mal
- Danksagung erhalten: 19 Mal
Re: Backup - Programm?
Wenn ich das Script komplett fertig habe, versuche ich dir zu helfen es in deinen NAS zu integrieren. Aber im Moment ändere ich noch zuviel am Script.
Nun wird das Wöchentliche Backup nur ausgeführt wenn auch Montags ist und das Monatliche nun wenn der Erste Tag im Monat ist.
Die Täglichen BackUps kommen derzeit noch direkt von der CCU. Ich überlege gerade ob ich das nicht auch in Script integrieren sollte, damit man alles an einer Stelle hat.
Code: Alles auswählen
#Script für automatisierte rotierende Homematic CCU2 System BackUp's mit einem Linux/Unix System!
#Version 0.3
#Copyright by eiGelbGeek - 13.07.2016 - Letzte Änderung: 14.07.2016
#Written @ macOS
#Nutzung auf eigene Gefahr, ich übernehme keine Verantwortung für Datenverluste!
#!/bin/bash
##########################################################################################
#Konfiguration
#BackUp Unterordner werden durch das Script Automatisch angelegt! Nur den Pfad zum BackUp Ordner angeben!
PFAD=/Users/kevin/Desktop/CCU_BackUp/
#Anzahl der Monat's BackUp, bei erreichen wird das älteste gelöscht!
monthly_del_interval=12
##########################################################################################
#Ab hier nichts verändern!
##########################################################################################
#Abfrage ob der Ordner für Logging vorhanden ist!
if [ -d "$PFAD/#Log/" ]; then
echo "$(date +%d_%m_%Y__%H_%M_%S) - Verzeichnis für Log Dateien -> OK!" >> $PFAD#Log/CCU_BackUP.log
else
mkdir -p $PFAD/#Log/
echo "$(date +%d_%m_%Y__%H_%M_%S) - Verzeichnis für Log Dateien wurde anlegt -> OK!" >> $PFAD#Log/CCU_BackUP.log
fi
#Abfrage ob der Ordner für komprimierte Monatliche BackUp's vorhanden ist!
if [ -d "$PFAD/Monthly/" ]; then
echo "$(date +%d_%m_%Y__%H_%M_%S) - Verzeichnis für Monatliche BackUp's -> OK!" >> $PFAD#Log/CCU_BackUP.log
else
mkdir -p $PFAD/Monthly/
echo "$(date +%d_%m_%Y__%H_%M_%S) - Verzeichnis für Monatliche BackUp's wurde anlegt -> OK!" >> $PFAD#Log/CCU_BackUP.log
fi
#Abfrage ob der Ordner für komprimierte Wöchentliche BackUp's vorhanden ist!
if [ -d "$PFAD/Weekly/" ]; then
cd $PFAD/Weekly/
list=$(echo *)
if [ "$list" = "*" ]; then
touch $PFAD/Weekly/dummy.txt
echo "$(date +%d_%m_%Y__%H_%M_%S) - Verzeichnis für Wöchentliche BackUp's -> OK!" >> $PFAD#Log/CCU_BackUP.log
else
echo "$(date +%d_%m_%Y__%H_%M_%S) - Verzeichnis für Wöchentliche BackUp's -> OK!" >> $PFAD#Log/CCU_BackUP.log
fi
else
mkdir -p $PFAD/Weekly/
touch $PFAD/Weekly/dummy.txt
echo "$(date +%d_%m_%Y__%H_%M_%S) - Verzeichnis und Dummy für Wöchentliche BackUp's wurde anlegt -> OK!" >> $PFAD#Log/CCU_BackUP.log
fi
#Abfrage ob der Ordner für Tägliche BackUp's vorhanden ist!
if [ -d "$PFAD/Daily/" ]; then
echo "$(date +%d_%m_%Y__%H_%M_%S) - Verzeichnis für Tägliche BackUp's -> OK!" >> $PFAD#Log/CCU_BackUP.log
else
mkdir -p $PFAD/Daily/
echo "$(date +%d_%m_%Y__%H_%M_%S) - Verzeichnis für Tägliche BackUp's wurde anlegt -> OK!" >> $PFAD#Log/CCU_BackUP.log
echo "$(date +%d_%m_%Y__%H_%M_%S) - Initialisierung des Homematic BackUp Script -> OK" >> $PFAD#Log/CCU_BackUP.log
exit
fi
#Tägliches BackUp erzeugen
#fehlt noch, wird derzeit durch die CCU selbst erzeugt und über SCP in den Täglichen BackUp Ordner kopiert
#Wöchentliches komprimiertes BackUp erzeugen und Tägliche BackUp's löschen!
datumWochentag=$(date +%u)
if [ $datumWochentag -eq 1 ]; then
cd $PFAD/Daily/
list=$(echo *)
if [ "$list" = "*" ]; then
echo "$(date +%d_%m_%Y__%H_%M_%S) - Tägliches Verzeichnis hatte keinen Inhalt, kein Wöchentliches BackUp erstellt!" >> $PFAD#Log/CCU_BackUP_Weekly.log
else
cd $PFAD/Daily/
ls -t | tail -n 1 | xargs rm -f
tar -C "$(dirname "$PFAD/Daily/")" -zvchf "$PFAD/Weekly/"CCU_BackUp_$(date +vom_%d_%m_%Y_um_%H_%M_%S).tar.gz "$(basename "$PFAD/Daily/")"
cd $PFAD/Daily/
ls -t | tail +2 | xargs rm -f
echo "$(date +%d_%m_%Y__%H_%M_%S) - Wöchentliches BackUp erstellt!" >> $PFAD#Log/CCU_BackUP_Weekly.log
fi
else
echo "$(date +%d_%m_%Y__%H_%M_%S) - Nächstes Wöchentliches BackUp wird nächsten Montag erstellt!" >> $PFAD#Log/CCU_BackUP_Weekly.log
fi
#Monatliches komprimiertes BackUp erzeugen und Wöchentliche löschen! (Intervall in der Konfiguration einstellen!)
datumTag=$(date +%d)
if [ $datumTag -eq 01 ]; then
cd $PFAD/Weekly/
list=$(echo *)
if [ "$list" = "*" ]; then
echo "$(date +%d_%m_%Y__%H_%M_%S) - Wöchentliches Verzeichnis hatte keinen Inhalt, kein Monatliches BackUp erstellt!" >> $PFAD#Log/CCU_BackUP_Monthly.log
else
cd $PFAD/Weekly/
ls -t | tail -n 1 | xargs rm -f
tar -C "$(dirname "$PFAD/Weekly/")" -zvchf "$PFAD/Monthly/"CCU_BackUp_$(date +vom_%d_%m_%Y_um_%H_%M_%S).tar.gz "$(basename "$PFAD/Weekly/")"
cd $PFAD/Weekly/
ls -t | tail +2 | xargs rm -f
echo "$(date +%d_%m_%Y__%H_%M_%S) - Monatliches BackUp erstellt!" >> $PFAD#Log/CCU_BackUP_Monthly.log
fi
else
datumMonat=$(date +%m)
if [ $datumMonat -eq 12 ]; then
nextmonth=1
else
nextmonth=$(($datumMonat+1))
fi
datumYear=$(date +%y)
echo "$(date +%d_%m_%Y__%H_%M_%S) - Kein Monatliches BackUp erstellt, nächstes BackUp wird am 1.$nextmonth.$datumYear erstellt!" >> $PFAD#Log/CCU_BackUP_Monthly.log
fi
#Ältestes Monatliches Backup löschen, wenn der Interval zum löschen erreicht ist
cd $PFAD/Monthly/
anzahl_k=$((monthly_del_interval+1))
anzahl=$(ls -F |grep -v / | wc -l)
if [ $anzahl -ge $anzahl_k ]; then
ls -t | tail -n 1 | xargs rm -f
else
echo "$(date +%d_%m_%Y__%H_%M_%S) - Kein Monatliches BackUp gelöscht, Intervall zum löschen von BackUps noch nicht erreicht!" >> $PFAD#Log/CCU_BackUP_Monthly.log
fi
Nun wird das Wöchentliche Backup nur ausgeführt wenn auch Montags ist und das Monatliche nun wenn der Erste Tag im Monat ist.
Die Täglichen BackUps kommen derzeit noch direkt von der CCU. Ich überlege gerade ob ich das nicht auch in Script integrieren sollte, damit man alles an einer Stelle hat.
Nur weil es nicht geht, muss es nicht kaputt sein ^^
Apple for Work, Linux for Network, iOS for Mobility and still Windows for Solitaire
Apple for Work, Linux for Network, iOS for Mobility and still Windows for Solitaire