Seite 1 von 1

Wichtig: Backup erstellen der config.xml

Verfasst: Mo 11. Jun 2018, 18:11
von mick14
Ich empfinde es als wichtig ein Backup zu erstellen der config.xml

Grundsätzlich erstellt FB.Switch ein Backup nach einer Änderung der Konfig. Die config.xml liegt im Ordner

/data

Es kann immer mal vorkommen, das Rasperry stürzt ab oder die SD Karte raucht ab.

Einfach mal die config.xml auf einem PC oder in der Cloud sichern. So kann man sich im Notfall mühselige Arbeit ersparen.

Gruesse
Mick

Re: Wichtig: Backup erstellen der config.xml

Verfasst: Mi 13. Jun 2018, 08:53
von onkeldave
Am besten den ganzen Ordner /data sichern, da im Unterverzeichnis /data/images die Icons für die Geräte liegen, falls sowas benutzt wird. Ich habe mir für den Zweck mal ein SSH Gerät angelegt, mit dem ich per Knopfdruck aus der WebApp den Ordner in ein Vezeichnis /backup außerhalb der WebApp sichern kann. Mit dem Off Button wir das Backup zurück kopiert. Das klappt allerdings nur bedingt, weil es danach ein Problem mit den Rechten gibt (config.xml kann nicht geschrieben werden). Das liegt wohl daran, das nicht Benutzer www-data den Kopiervorgang durchführt, sonder der Benutzer „pi“ (in meinem Fall “bananapi“).

Code: Alles auswählen

   <device buttonLabelOn="Bkup" buttonLabelOff="Rstr">
      <id>30</id>
      <name>Config Backup</name>
      <vendor>ssh</vendor>
      <address>
        <masterdip/>
        <slavedip/>
        <tx433version/>
        <rawCodeOn>sudo cp -r /var/www/fb-switch/data /var/www/backup/fb-switch</rawCodeOn>
        <rawCodeOff>sudo cp -r /var/www/backup/fb-switch/data /var/www/fb-switch; sudo chmod g+s /var/www; sudo chmod 775 /var/www; sudo chown -R www-data:www-data /var/www</rawCodeOff>
        <ssh_address>127.0.0.1</ssh_address>
        <ssh_user>bananapi</ssh_user>
        <ssh_password>######</ssh_password>
      </address>
      <room>xRaspberry</room>
      <senderid/>
      <status>ON</status>
      <showDeviceStatus>OFF</showDeviceStatus>
    </device>
Außerdem habe ich mir ein automatisches Backup über den Pi auf mein NAS eingerichtet. Dazu habe ich ein Script geschrieben, das die komplette Webapp als Zip Datei auf meinem NAS in regelmässigen abständen per cronjob sichert.
Dazu muss zuerst zip installiert werden

Code: Alles auswählen

sudo apt-get install zip unzip
dann das Script im Verzeichnis /usr/bin erstellt werden

Code: Alles auswählen

sudo nano /usr/bin/appbkup
mit folgendem Inhalt

Code: Alles auswählen

#! /bin/bash
sudo rm -r /var/www/fbs_backup.zip
echo "Altes Backup gelöscht"
zip -r -u -q /var/www/fbs_backup.zip /var/www/fb-switch/
echo
echo "WebApp gezippt"
echo
curl --upload-file /var/www/fbs_backup.zip ftp://Benutzer:Passwort@192.168.158.4/backup/pi/
echo
echo "Webserver auf NAS gesichert"
echo
Das ganze noch ausführbar machen

Code: Alles auswählen

sudo chmod 755 /usr/bin/appbkup
und einen cronjob erstellen, der das Script regemässig ausführt.

Code: Alles auswählen

sudo crontab -e
Eintrag:

Code: Alles auswählen

0 3 * * 7 /usr/bin/appbkup
Das Backup wird dann jeden Sonntag nachts um 3 Uhr automtisch durchgeführt.
Die Gesamte Webapp wird gezipt und per ftp auf eine Freigabe meines NAS kopiert.

Mann das ganze auch händisch starten, in dem man auf der Konsole des Pi einfach appbkup eingibt. Deshalb sollte das Script in /usr/bin liegen. Allerdings habe ich das für Wheezy geschrieben, ich hoffe, es geht bei Stretch immernoch so...