Autor Thema: Allgemeines Backupskript! Würdet Ihr das verstehen?  (Gelesen 1341 mal)

Offline CoolTux

  • Developer
  • Hero Member
  • ****
  • Beiträge: 25688
Allgemeines Backupskript! Würdet Ihr das verstehen?
« am: 16 Februar 2019, 19:08:38 »
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
« Letzte Änderung: 16 Februar 2019, 21:58:44 von CoolTux »
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://paypal.me/pools/c/8gULisr9BT
My FHEM Git: https://git.cooltux.net/FHEM/
Mein Dokuwiki:
https://www.cooltux.net

Online Frank_Huber

  • Hero Member
  • *****
  • Beiträge: 3933
Antw:Allgemeines Backupskript! Würdet Ihr das verstehen?
« Antwort #1 am: 16 Februar 2019, 19:19:10 »
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


Offline rischbiter123

  • Full Member
  • ***
  • Beiträge: 378
Antw:Allgemeines Backupskript! Würdet Ihr das verstehen?
« Antwort #2 am: 16 Februar 2019, 19:25:34 »
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

Offline CoolTux

  • Developer
  • Hero Member
  • ****
  • Beiträge: 25688
Antw:Allgemeines Backupskript! Würdet Ihr das verstehen?
« Antwort #3 am: 16 Februar 2019, 19:31:19 »
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://paypal.me/pools/c/8gULisr9BT
My FHEM Git: https://git.cooltux.net/FHEM/
Mein Dokuwiki:
https://www.cooltux.net

Offline CoolTux

  • Developer
  • Hero Member
  • ****
  • Beiträge: 25688
Antw:Allgemeines Backupskript! Würdet Ihr das verstehen?
« Antwort #4 am: 16 Februar 2019, 20:46:30 »
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://paypal.me/pools/c/8gULisr9BT
My FHEM Git: https://git.cooltux.net/FHEM/
Mein Dokuwiki:
https://www.cooltux.net

Online Frank_Huber

  • Hero Member
  • *****
  • Beiträge: 3933
Antw:Allgemeines Backupskript! Würdet Ihr das verstehen?
« Antwort #5 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


Offline rischbiter123

  • Full Member
  • ***
  • Beiträge: 378
Antw:Allgemeines Backupskript! Würdet Ihr das verstehen?
« Antwort #6 am: 16 Februar 2019, 21:12:23 »
Moin,

Zitat
schaut 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

Offline CoolTux

  • Developer
  • Hero Member
  • ****
  • Beiträge: 25688
Antw:Allgemeines Backupskript! Würdet Ihr das verstehen?
« Antwort #7 am: 16 Februar 2019, 21:13:06 »
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://paypal.me/pools/c/8gULisr9BT
My FHEM Git: https://git.cooltux.net/FHEM/
Mein Dokuwiki:
https://www.cooltux.net
Hilfreich Hilfreich x 1 Liste anzeigen

Offline CoolTux

  • Developer
  • Hero Member
  • ****
  • Beiträge: 25688
Antw:Allgemeines Backupskript! Würdet Ihr das verstehen?
« Antwort #8 am: 16 Februar 2019, 22:00:30 »
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://paypal.me/pools/c/8gULisr9BT
My FHEM Git: https://git.cooltux.net/FHEM/
Mein Dokuwiki:
https://www.cooltux.net

Offline rischbiter123

  • Full Member
  • ***
  • Beiträge: 378
Antw:Allgemeines Backupskript! Würdet Ihr das verstehen?
« Antwort #9 am: 16 Februar 2019, 22:16:15 »
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

Offline CoolTux

  • Developer
  • Hero Member
  • ****
  • Beiträge: 25688
Antw:Allgemeines Backupskript! Würdet Ihr das verstehen?
« Antwort #10 am: 16 Februar 2019, 22:32:19 »
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://paypal.me/pools/c/8gULisr9BT
My FHEM Git: https://git.cooltux.net/FHEM/
Mein Dokuwiki:
https://www.cooltux.net

Offline rischbiter123

  • Full Member
  • ***
  • Beiträge: 378
Antw:Allgemeines Backupskript! Würdet Ihr das verstehen?
« Antwort #11 am: 16 Februar 2019, 22:47:43 »
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

Offline CoolTux

  • Developer
  • Hero Member
  • ****
  • Beiträge: 25688
Antw:Allgemeines Backupskript! Würdet Ihr das verstehen?
« Antwort #12 am: 16 Februar 2019, 22:58:56 »
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://paypal.me/pools/c/8gULisr9BT
My FHEM Git: https://git.cooltux.net/FHEM/
Mein Dokuwiki:
https://www.cooltux.net

Offline CoolTux

  • Developer
  • Hero Member
  • ****
  • Beiträge: 25688
Antw:Allgemeines Backupskript! Würdet Ihr das verstehen?
« Antwort #13 am: 19 Februar 2019, 14:20:33 »
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://paypal.me/pools/c/8gULisr9BT
My FHEM Git: https://git.cooltux.net/FHEM/
Mein Dokuwiki:
https://www.cooltux.net

Offline r00t2

  • Full Member
  • ***
  • Beiträge: 336
Antw:Allgemeines Backupskript! Würdet Ihr das verstehen?
« Antwort #14 am: 19 Februar 2019, 15:04:48 »
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?
« Letzte Änderung: 19 Februar 2019, 15:07:59 von r00t2 »
FHEM 6.0 (Raspberry Pi 2 B | Raspbian Buster 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)