Seite 3 von 20

Re: Backup und Restore der Influx Datenbank

Verfasst: Di 2. Jun 2020, 14:53
von Bogeyof
Hallo zusammen, falls ihr schon eine BackupRoutine erstellt habt und diese evtl. gerne per Button aus dem Dashboard starten möchtet, hier eine kleine Vorgehensweise:
Zuerst muss die Datei /var/www/html/checkreboot.sh angepasst werden, hier am Ende z.B. folgende Einträge anhängen:

Code: Alles auswählen

if [ -f /var/www/pipe/Sicherung ]; then
  rm -f /var/www/pipe/Sicherung
  /solaranzeige/MeinBackupSkript.sh
fi
Dieses Skript wird jede Minute aufgerufen und es wird getestet, ob im Verzeichnis /var/www/pipe eine Datei mit einem definierten Namen (hier Sicherung) vorhanden ist und wenn ja wird in der folgenden Zeile das (auf Euch anzupassende) BackupSkript ausgeführt.
Alternativ (besser für Updates) eine Kopie der Datei /var/www/html/checkreboot.sh als /var/www/html/checkbuttons.sh anlegen, darin den obigen Code eintragen und diese Datei in Crontab für minütliche Ausführung eintragen (analog /var/www/html/checkreboot.sh). Damit werden die Änderungen beim Update nicht überschrieben.

Um die gewünschte Datei in /var/www/pipe (hier Sicherung) per Button im Dashboard zu erzeugen brauchen wir noch ein PHP-Skript (z.B. /var/www/html/sicherung.php):

Code: Alles auswählen

<?php
/******************************************************************************
//  Den Raspberry Sichern
//  
******************************************************************************/
$fh = fopen("/var/www/pipe/Sicherung",'w');
fwrite($fh,"MeinBackupSkript.sh \n");
fclose($fh);

echo "<br>";
echo "<br>";
echo "Die Solaranzeige wird jetzt gesichert...<br>";
echo "Sicherung erfolgt innerhalb der folgenden Minute...<br>";
echo "<br>";
echo "<a href=\"javascript:history.go(-1)\">GO BACK</a>";

exit;
?>
Und damit das Ganze auch noch im Dashboard ausgewählt werden kann definieren wir den Button mit dem Text-Plugin im "Html"-Mode (bei mir auch noch mit einem eingeblendeten Bild):
Text_Button.jpg
Eigentlich reicht der folgende Eintrag für den Button:

Code: Alles auswählen

<a href="http://solaranzeige/sicherung.php"><button style="background: #242424; color: white; width: 100%; margin: 1px; margin-bottom: 5px;">Solaranzeige Sicherung</button></a>
Am Ende kann das Ganze dann so aussehen:
Solaranzeige.jpg

Re: Backup und Restore der Influx Datenbank

Verfasst: Di 7. Jul 2020, 11:07
von willi9974
Ich passe gerade das Backup System auf meine Solaranzeige an

ich habe zwei Fragen:

1. Datenbanken

Wen ich die Datebanken aufliste, sind es 4 stück

> show databases
name: databases
name
----
_internal
solaranzeige
steuerung
shelly3em

Shelly3em wurde von mir angelegt, die sichere ich mit.
Frage: muss ich die Datenbank steuerung und _internal auch mitsichern?

2. Habe ich damit alle für einen Full Restore gesichert?

sind zb. auch die Grafana templates gesichert?
Falls nicht alles gesichert ist, was für Verzeichnisse müsste ich noch mitsichern?

Viele Grüße
Willi

Re: Backup und Restore der Influx Datenbank

Verfasst: Di 7. Jul 2020, 11:28
von Bogeyof
Zu 1., das sollte Ulrich beantworten, ich sichere sie nicht mit.
Zu 2., hier ein Auszug aus der Sicherung auf mein NAS Laufwerk (FritzBox):

Code: Alles auswählen

#!/bin/bash
#Festplatte einbinden
sudo mount -t cifs -o credentials=$HOME/.smbcredentials,vers=1.0 //192.168.77.2/FRITZ.NAS/Toshiba-ExternalUSB3-0-01/ /mnt/nas
#altes Backup vorher loeschen
rm /mnt/nas/BackupRaspi/Dataold/*
mv /mnt/nas/BackupRaspi/Data/* /mnt/nas/BackupRaspi/Dataold
#Backup erstellen
sudo influxd backup -portable -database solaranzeige /mnt/nas/BackupRaspi/Data
sudo service influxdb restart
tar -vcf /mnt/nas/BackupRaspi/Data/BackupSolAnz_${zeit}.tar /var/www/html /etc/dhcpcd.conf /var/lib/grafana /var/spool/cron/crontabs /etc/influxdb /etc/grafana /etc/php/7.3/cli/php.ini 
#Festplatte auswerfen
sudo umount /mnt/nas
Hiermit wird die Datenbank (mit jeweils 1 zusätzlichem Backup in .../Dataold) gesichert, zusätzlich mit dem TAR-Befehl alle wichtigen Verzeichnisse (in welchen sich evtl. etwas verändert hat gegenüber Grundinstallation)
Die Grafana Einstellungen usw. sind damit auch gesichert, die Dashboards (falls selbst verändert) müssen über Grafana selbst mit Export gesichert werden...

Re: Backup und Restore der Influx Datenbank

Verfasst: Di 7. Jul 2020, 12:45
von willi9974
läuft! Backup funktioniert.

@Bogeyof, ich zieh meinen Hut! Dein Dashboard ist mega!
Darf ich fragen wie du an all die werte kommt, was du für ein System daheim hast und ob du das etwas erklären kannst?
Würde mir dein Dashboard gerne mal genauer anschauen und ggf. das eine oder andere kopieren / Anregungen holen :-)
Könntest du das Export File reinstellen, damit man es sich mal genauer anschauen kann?

Mega cool!

Re: Backup und Restore der Influx Datenbank

Verfasst: Di 7. Jul 2020, 13:15
von Ulrich

Code: Alles auswählen

> show databases
name: databases
name
----
_internal
solaranzeige
steuerung
shelly3em
Die Datenbank _internal wird von Influx selber angelegt. Ich gehe davon aus, dass dort die Rechte usw. abgespeichert sind. Ich würde sie mit sichern.

Die Datenbank steuerung enthält Daten für die Wallbox Steuerung und Buttons auf den Dashboards. Wer keine Wallbox hat und keine Buttons zur Steuerung von Relais oder Wechselrichtern hat, der braucht die Datenbank nicht zu sichern. Die ist dann leer. Am besten einfach einmal hinein sehen, was da so drin steht. Bei einem neuen Image ist sie leer.

Bitte lest auch einmal dieses Dokumnet durch:
download/Wartung.pdf
Die Wartung kann noch ausgebaut werden. Da sind wir erst am Anfang. Wer eine flexible Routine hat, die können wir gerne hier für alle zur Verfügung stellen. Einfach eine user.wartung.php erstellen und hochladen, oder mir zusenden.

Re: Backup und Restore der Influx Datenbank

Verfasst: Di 7. Jul 2020, 16:38
von Bogeyof
willi9974 hat geschrieben:
Di 7. Jul 2020, 12:45

Würde mir dein Dashboard gerne mal genauer anschauen und ggf. das eine oder andere kopieren / Anregungen holen :-)
Könntest du das Export File reinstellen, damit man es sich mal genauer anschauen kann?

Mega cool!
Schau doch mal hier:
viewtopic.php?f=19&t=748

System ist Kostal Plenticore mit BYD HVS Stromspeicher. Das sollte mit anderen Systemen vermutlich relativ ähnlich machbar sein...

Re: Backup und Restore der Influx Datenbank

Verfasst: Do 29. Okt 2020, 22:17
von DasMoritz
Moin zusammen,

ich möchte mal eben nachfragen da ich mir nicht ganz sicher bin:

Ich würde gerne täglich Abends die Datenbank um 23:00 auf mein NAS (Synologs DS3615XS) sichern um so beim Datenträgerausfall "sicher" zu sein.
Ich bin was das angeht etwas Paranoid: Auf dem DS3615XS läuft ein RAID5, tägliche Sicherung in die Cloud und auf ein zweites NAS zu Hause.

Meine Frage ist nun folgende:
Wenn ich es richtig gesehen habe, dann hat Ulrich die Möglichkeit geschaffen das über die "Wartung" zu machen, alternativ gibt es obenstehende Beschreibungen. Gibt es nun einen "Königsweg"?

Vielen Dank,
Moritz

Re: Backup und Restore der Influx Datenbank

Verfasst: Do 29. Okt 2020, 22:39
von TeamO
Wenn ich morgen daran denke schreibe ich mal meine Sicherung zusammen. Bei mir schreib erstmal ein Raspi die Daten in ne Remote-Datenbank auf einen anderen Raspi. Dann wird noch wöchentlich eine Komplettsicherung von beiden Raspi gemacht, dann werden sie wichtigsten Dateien gesichert und zu guter Letzt noch jede Stunde die Datenbanken gesichert. Alle Sicherungen landen bei mir auch auf ne NAS von Synology.
Ich bin da auch etwas paranoid 😁

Re: Backup und Restore der Influx Datenbank

Verfasst: Fr 30. Okt 2020, 10:11
von TeamO
So, hier mal meine Einstellungen für's Backup:

Vorbereitungen:
  • Anlegen des User pi mit entsprechendem Kennwort auf der NAS
  • Anlegen eines Backup-Ordners auf der NAS mit Berechtigung für den User pi
  • Anpassen von /ect/fstab zum Mounten eines NFS-Shares auf der NAS (ich habe dafür WinSCP verwendet; Login mit root):

    Code: Alles auswählen

    NAS-IP:/Pfad_zum_Backup-Ordner /backup nfs rw 0 0
    
    An ende eine Leerzeile lassen
  • Anpassen von /etc/crontab für mount nach boot:

    Code: Alles auswählen

    @reboot root sleep 20 && umount -a
    @reboot root sleep 40 && mount -a

Wöchentliche Komplettsicherung:
  • Installation von raspiBackup

    Code: Alles auswählen

    sudo curl -sLO https://www.linux-tips-and-tricks.de/raspiBackupInstallUI.sh && sudo bash ./raspiBackupInstallUI.sh
  • Konfiguration nach eigenen Vorstellungen z.B.:
    • M3 -> C2 (Verzeichnispfad für die Backups) = /backup
    • C3 (Anzahl vorzuhaltender Backups) = 2
    • C4 (Backup Typ) = „Sichere mit dd und stelle unter Windows wieder her“
    • C5 (Zu stoppende und startende Services) = grafana-server + influxdb
      • Grafana-server
      • influxdb
    • C8 (regelmäßiges Backup) = nach Wunsch
      • R1 -> R2 -> Sonntag
      • R3 = 01:00
    • C9 (Komprimierung) = „Komprimiere den dd Backup“

Stündliches Datenbank-Backup und Sicherung von ein paar Dateien:
  • Anpassen von /etc/crontab für Datenbank-Backup:

    Code: Alles auswählen

    # Backup von Datenbanken
    30 *	* * *	pi    influxd backup -portable -database solaranzeige /backup/Datenbanken/solaranzeige
    
    Hier bei Bedarf noch weitere Datenbanken in eigene Unterordner (/backup/Datenbanken/XXX) sichern (Abstand der Sicherungen ca. 2-5 Minuten).
  • Code: Alles auswählen

    # Backup von Dateien
    50 1	* * 6	pi    cp /var/www/html/*user.config.php /backup/Dateien/
    51 1	* * 6	pi    cp /var/www/html/meldungen_senden.php /backup/Dateien/
    52 1	* * 6	pi    cp /var/www/html/befehle.ini.php /backup/Dateien/
    53 1	* * 6	root    cp -r /var/lib/grafana/plugins/* /backup/Dateien/grafana/
Auch bei der crontab muss an Ende eine Leerzeile vorhanden sein!

Zu guter Letzt werden jetzt noch Datenbank-Backup gelöscht, welche älter als 2 Tage sind:
  • darin eine Datei anlegen autodelete.sh:

    Code: Alles auswählen

    mcedit autodelete.sh
  • folgenden Inhalt eintragen:

    Code: Alles auswählen

    #!/bin/bash
    find /backup/Datenbanken/senec/* -mtime +2 -exec rm {} \;
    find /backup/Datenbanken/solaranzeige/* -mtime +2 -exec rm {} \;
    find /backup/Datenbanken/steuerung/* -mtime +2 -exec rm {} \;
    
  • crontab erneut anpassen:

    Code: Alles auswählen

    @daily /bin/bash/ /home/pi/script/autodelete.sh
Wieder an die Leerzeile am Ende der crontab denken!


Ich glaube das war jetzt alles.

Re: Backup und Restore der Influx Datenbank

Verfasst: Mi 30. Dez 2020, 18:05
von Filips
TeamO hat geschrieben:
Fr 30. Okt 2020, 10:11
  • Anpassen von /ect/fstab zum Mounten eines NFS-Shares auf der NAS (ich habe dafür WinSCP verwendet; Login mit root):

    Code: Alles auswählen

    NAS-IP:/Pfad_zum_Backup-Ordner /backup nfs rw 0 0
    
Ich hab das mal versucht im ssh einzubinden:

Code: Alles auswählen

 mount -t nfs nas-ip:/Pfad_zum_Backup-Ordner /backup 
Aber da hab ich nur eine Fehlermeldung bekommen. „mount: only root can use "--types" option“ - mein Fehler.
Auch

Code: Alles auswählen

 sudo mount -t nfs nas-ip:/Pfad_zum_Backup-Ordner /backup 
Hat nur folgende Meldung ausgeworfen „mount.nfs: access denied by server while mounting“
Was mach ich falsch, oder soll ich den Test ignorieren und den Befehl in Fstab eintragen - klappt schon?

Filip