Allgemeines Backupskript! Würdet Ihr das verstehen?

Begonnen von CoolTux, 16 Februar 2019, 19:08:38

Vorheriges Thema - Nächstes Thema

CoolTux

Hallo,

Ich habe die letzten Tage an ein allgemeines Backupskript in Perl gearbeitet.
Diesem Skript wird eine Konfigurationsdatei übergeben und ich würde Euch gerne fragen ob Ihr versteht was genau die einzelnen Punkte machen. Mir geht es darum eine ausreichende kleine Dokumentation zur Konfiguration zu machen.


### Konfiguration
# wie soll das Verzeichnis heißen wo die Backups hin geschrieben werden
BACKUPDIRNAME=fhem_backups

# Name der Backupdatei
BACKUPFILENAME=fhem_backup

# Startverzeichnis wo Daten liegen zum sichern
SOURCEPATH=/opt/fhem/backup

# Dateien Komma getrennt welche gesichert werden sollen. Kann auch zum Beispiel mittels *.md oder * fur alles lauten. Muss sich aber unterhalb von SOURCEPATH befinden
FILES_TO_BACKUP=FHEM-"`date +%Y%m%d`"*.tar.gz

# Verzeichnis unter welches die Backupstruktur aufgebaut werden soll.
BACKUPPATH=/home/marko/Google_Drive_Secure/pi-webapp01_BACKUPS

# wie viele Backups sollen aufgehoben werden.
DAILY_DATA_BACKUPS=6



### Special Konfiguration
# Soll bei nicht vorhanden sein des Backupverzeichnis das Skript abgebrochen werden. Sinnvoll bei encfs oder eingebundenen Netzwerkverzeichnissen. 0 nein 1 ja
SPECIALCHECK_BACKUPPATH=1

# Verzeichnisse welche aufgeräumt werden sollen. Löschen aller Daten älter CLEAN_UP_DAYS Tage
CLEAN_UP_PATHS=/opt/fhem/backup/*

# löschen älter X Tage
CLEAN_UP_DAYS=4

# soll das Ergebnis des Backups (ok|error) in ein FHEM Dummy geschrieben werden? 0 nein 1 ja
# telnet Instanz muss ohne SSL und Passwort vorhanden sein
FHEMSUPPORT=1

# Name des FHEM Dummys für das schreiben des Ergebnisses
FHEMDUMMY=dummyBackupScript


### MySQL DB Dumps
# soll ein MYSQL Dump erstellt werden  0 nein 1 ja
MYSQLDUMP=0

# Datenbank User
DBUSER=

# Datenbank User Passwort
DBPASS=

# Instanzname der Datenbank
DBNAMES=fhemLogHistory

#  wo soll der Dump hingeschrieben werden
DBBACKUPPATH=/opt/fhem/backup




Grüße
Leon
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

Frank_Huber

Hi Leon,

FILES_TO_BACKUP=
Sieht für mich eher nach dem Name der Sicherungsdatei aus.
Unter FILES_TO_BACKUP= würde ich eher z.B. "/opt/fhem/*" sehen.

Grüße
Frank

Gesendet von meinem Doogee S60 mit Tapatalk


rischbiter123

Moin,

ich versuchs mal.

### Konfiguration
FINDCMDPATH=/usr/bin/find         ?
BACKUPDIRNAME=fhem_backups   Name des Ordners, in dem das Backup abgelegt wird
BACKUPFILENAME=fhem_backup   Name des Files
SOURCEPATH=/opt/fhem/backup   ?
FILES_TO_BACKUP=FHEM-"`date +%Y%m%d`"*.tar.gz    Erstellen des Files
BACKUPPATH=/home/CoolTux/Google_Drive_Secure/pi-webapp01_BACKUPS    Dort wird das Backup extern gespeichert
DAILY_DATA_BACKUPS=6   Anzahl der täglichen Backups?

### Special Konfiguration
SPECIALCHECK_BACKUPPATH=1   ?
CLEAN_UP_PATHS=/opt/fhem/backup/*   'Normales' Backup-Directory
CLEAN_UP_DAYS=4   Löschen von Backups, die älter als 4 Tage sind?
FHEMSUPPORT=1   ?
FHEMDUMMY=dummyBackupScript   Dummy, in den die Konfigurationsdatei geschrieben wird?

LG

Andreas
4*Raspi, Max Thermostate und Fensterkontakte, FB7590, Mysensors und NanoCUL, IT und Sonoff, zigbee2mqtt2

CoolTux

Ich sehe schon da gibt es noch einiges zu Dokumentieren.

Das Skript arbeitet komplett FHEM unabhängig, einzig der Status des durchgelaufenden Skriptes kann in FHEM dar gestellt werden.
Ich werde nachher noch ein paar Sätze in den ersten Thread schreiben. Mal schauen ob das dann schon ausreichend ist.

Danke Euch
Grüße
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

CoolTux

schaut mal bitte ob die Erklärungen soweit verständlich sind.


Grüße
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

Frank_Huber

Ja, jetzt ist es deutlicher, wobei hier jetzt das Beispiel nicht passt, oder?

FILES_TO_BACKUP=FHEM-"`date +%Y%m%d`"*.tar.gz    # Dateien Komma getrennt welche gesichert werden sollen. Kann auch zum Beispiel mittels *.md oder * fur alles lauten. Muss sich aber unterhalb von SOURCEPATH befinden

FHEM-"`date +%Y%m%d`"*.tar.gz
Würde ja bedeuten dass er nur Sicherungen von heute sichert.


Gesendet von meinem Doogee S60 mit Tapatalk


rischbiter123

Moin,

Zitatschaut mal bitte ob die Erklärungen soweit verständlich sind.

Für mich jetzt ja.

LG

Andreas
4*Raspi, Max Thermostate und Fensterkontakte, FB7590, Mysensors und NanoCUL, IT und Sonoff, zigbee2mqtt2

CoolTux

Zitat von: Frank_Huber am 16 Februar 2019, 20:55:05
Ja, jetzt ist es deutlicher, wobei hier jetzt das Beispiel nicht passt, oder?

FILES_TO_BACKUP=FHEM-"`date +%Y%m%d`"*.tar.gz    # Dateien Komma getrennt welche gesichert werden sollen. Kann auch zum Beispiel mittels *.md oder * fur alles lauten. Muss sich aber unterhalb von SOURCEPATH befinden

FHEM-"`date +%Y%m%d`"*.tar.gz
Würde ja bedeuten dass er nur Sicherungen von heute sichert.


Gesendet von meinem Doogee S60 mit Tapatalk

Genau. FHEM macht ja selber ein Backup und legt die Datei ins /opt/fhem/backup Verzeichnis ab, diese Datei wird dann weg gesichert. Backup vom Backup so zu sagen. Man kann dem Skript auch sagen sichere das FHEM als ganzes dann brauch man das FHEM Backup nicht mehr. Aber ich lasse FHEM Backup ein Backup von FHEM machen und sichere die FHEM Backupdatei und noch andere Sachen dann in ein weiteres Nachtbackup weg.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

CoolTux

Ich habe die Kommentare für die Konfigdatei mal entsprechend oben eingefügt. Was denkt Ihr? Kann man das soweit an User aushändigen?

Aktuell hat das Skript leider noch keine Simulation. Heißt wenn falsch konfiguriert dann im schlimmsten Fall Daten überschrieben oder gelöscht. Nicht so gut, oder?
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

rischbiter123

Moin,

wenn Du hier DAILY_DATA_BACKUPS=6 oder hier CLEAN_UP_DAYS abfangen könntest, dass mindestens die Eingabe größer 1 sein muss, dürfte bei falscher Konfiguration doch höchstens ein nicht funktionieren sein. Oder sehe ich das falsch?

LG

Andreas
4*Raspi, Max Thermostate und Fensterkontakte, FB7590, Mysensors und NanoCUL, IT und Sonoff, zigbee2mqtt2

CoolTux

Das ist eine sehr gute Idee.
Dennoch besteht die Gefahr bei CLEAN_UP_PATHS ein falsches Verzeichnis an zu geben und dann sind darin alle Daten älter X Tage gelöscht.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

rischbiter123

Moin,

meine Programmierkenntnisse sind leider nur rudimentär, aber könnte man das nicht mit Sourcepath verknüpfen, so dass nur das gelöscht werden kann, was gesichert wurde?

LG

Andreas
4*Raspi, Max Thermostate und Fensterkontakte, FB7590, Mysensors und NanoCUL, IT und Sonoff, zigbee2mqtt2

CoolTux

Das sollte gehen. Zu mindest kann dann nichts vom System gelöscht werden. Man kann zwar immer noch im Sourcepath was anderes sichern wie löschen aber eben nur im Sourcepath. Das muss reichen.
Danke Dir für Deine tollen Ideen.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

CoolTux

Ich denke mal ich bin dann soweit durch mit meinem Backupscript. Wer möchte kann es gerne verwenden

https://github.com/LeonGaultier/backupME
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

r00t2

#14
Danke dafür!

Noch eine Sache zum Verständnis.

Aus den Elementen BACKUPDIRNAME, BACKUPFILENAME und BACKUPPATH der Config wird die letztendliche Backupstruktur aufgebaut, oder?

Also bei Deinem Beispiel würde die Backupstruktur aufgebaut in:
/home/marko/Google_Drive_Secure/pi-webapp01_BACKUPS/fhem_backups/fhem_backup

Hab ich das richtig verstanden?

Wenn ja: Setzt das Script automatisch ein Datum in das Element BACKUPFILENAME, um es nicht zu überschreiben, wenn mehrere Backupfiles gesichert werden sollen?

Und: Müssen alle Konfigurations-Elemente in der Datei gesetzt sein, auch wenn sie nicht notwendig sind? Z. B. muss das Element DBUSER etc. vorhanden (aber nicht gesetzt) sein, wenn keine DB verwendet wird oder kann  man die Elemente einfach komplett weglassen?
FHEM 6.0 (Raspberry Pi 2 B | Raspberry Pi OS Lite | Perl 5.28.1 | UZB Z-WAVE.Me | Hue Bridge V1 | SIGNALDuino 433 MHz | FritzBox | Kodi | Pioneer AVR | MQTT | Node-RED | Diverse Google Dienste)