Allgemeines Backupskript! Würdet Ihr das verstehen?

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

Vorheriges Thema - Nächstes Thema

CoolTux

Es müssen nur die unter Konfiguration gesetzt sein.
Die anderen sind optional.

Zitat von: r00t2 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?


Nicht ganz
Das Sktipt baut seine eigene Backupstruktur unterhalb von
/BACKUPPATH/BACKUPDIRNAME/
zusammen. Es werden unterhalb davon 2 weitere Verzeichnisse automatisch erstellt.
daily und archive
Im daily landen dann täglich BACKUPFILENAME.1.tar.bz2 ausserdem wird je nach Anzahl DAILY_DATA_BACKUPS vorher die anderen Backupfiles um eines hoch verschoben.
BACKUPFILENAME.1.tar.bz2 wird zu BACKUPFILENAME.2.tar.bz2, BACKUPFILENAME.2.tar.bz2 wird zu BACKUPFILENAME.3.tar.bz2 und so weiter.

/home/marko/Google_Drive_Secure/pi-webapp01_BACKUPS/fhem_backups/daily/fhem_backup.1.tar.bz2


Jeden Sonntag erfolgt eine Sondersicherung in archive.

Probiere es einfach mal aus. Wenn Du CLEAN_UP_PATHS= so lässt, also hinter = nichts schreibst wird auch aus dem zu Backupen Ordner nichts gelöscht.


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

r00t2

#16
Klingt gut, danke!

Evtl. wäre es noch gut, die notwendigen Voraussetzungen für das Skript ins Git zu schreiben (also minimale Perl Version, andere Abhängigkeiten, etc.) und wie man es letztendlich sinnvoll aufruft (z. B. zyklisch per cronjob oder per Hand).

Edith:
Was mir gerade noch in den Sinn kommt. Könnte man das Skript so erweitern, dass es ein Netzwerklaufwerk bei Ausführung mounted, prüft, ob alles korrekt ist, dann das Backup ausführt und abschließend das Netzwerklaufwerk wieder unmounted? Sind viele Dinge, ich weiß und vielleicht ist es auch sinnvoller das ganze in ein Shellskript auszulagern, was die "Vorarbeit" macht, dann das Perlskript startet und danach "aufräumt". Ich spreche den Gedanken aber dennoch einfach mal an.
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)

CoolTux

Zitat von: r00t2 am 19 Februar 2019, 15:34:10
Klingt gut, danke!

Evtl. wäre es noch gut, die notwendigen Voraussetzungen für das Skript ins Git zu schreiben (also minimale Perl Version, andere Abhängigkeiten, etc.) und wie man es letztendlich sinnvoll aufruft (z. B. zyklisch per cronjob oder per Hand).

Edith:
Was mir gerade noch in den Sinn kommt. Könnte man das Skript so erweitern, dass es ein Netzwerklaufwerk bei Ausführung mounted, prüft, ob alles korrekt ist, dann das Backup ausführt und abschließend das Netzwerklaufwerk wieder unmounted? Sind viele Dinge, ich weiß und vielleicht ist es auch sinnvoller das ganze in ein Shellskript auszulagern, was die "Vorarbeit" macht, dann das Perlskript startet und danach "aufräumt". Ich spreche den Gedanken aber dennoch einfach mal an.

Mir war schon klar das solche Anforderungen kommen werden  ;D
Das Skript testet jetzt schon ob das Zielverzeichnis überhaupt da ist. Also ob /BACKUPPATH/ existiert als Verzeichnis. Je nachdem ob man dann gesetzt hat SPECIALCHECK_BACKUPPATH=1 oder SPECIALCHECK_BACKUPPATH=0 wird bei ersterem hart abgebrochen oder bei zweiteren die Struktur angelegt.

Ich kann das mounten einbinden. Voraussetzung ist aber das der mount in der /etc/fstab drin steht. Ich mache kein händischen komplett mount.

mount /home/backup/

kann man machen, sofern /home/backup als mount point definiert ist. Als Quelle muss dann natürlich das cifs Share oder nfs share mit entsprechenden Optionen konfiguriert sein.



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

r00t2

Zitat von: CoolTux am 19 Februar 2019, 15:52:55
Mir war schon klar das solche Anforderungen kommen werden  ;D
...

Ich kann das mounten einbinden. Voraussetzung ist aber das der mount in der /etc/fstab drin steht. Ich mache kein händischen komplett mount.

mount /home/backup/

kann man machen, sofern /home/backup als mount point definiert ist. Als Quelle muss dann natürlich das cifs Share oder nfs share mit entsprechenden Optionen konfiguriert sein...
Danke für Deine schnelle Antwort!

Prinzipiell müsstest Du es nicht einbauen, wenn man von der Philosophie ausgeht, dass ein Tool genau eine Aufgabe bearbeiten soll (diese aber entsprechend gut) :)

Man kann das Ganze ja auch per Shellskript "außenrum" bauen, sodass Dein Perlskript nicht unnötig aufgebläht wird. War nur eine Idee, die gerne weiter diskutiert werden darf.

Wichtiger wären mir tatsächlich Dinge wie Abhängigkeiten oder das Einbinden des korrekten Aufrufs in die crontab.
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)