Ankündigung

Einklappen
Keine Ankündigung bisher.

Datensicherung

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    Datensicherung

    Hallo zusammen,

    allgemeine Frage: Wie macht ihr eine Datensicherung von eurer Visu?

    Gruß
    Alex

    #2
    Scheduled task auf dem NAS, bei dem diverse Verzeichnisse täglich (pages, items, logics) remote gesichert werden und einmal die Woche ein Fullbackup incl. den anderen Verzeichnissen. Hatten zu dem Thema aber schon einige Threads incl. Details und Tricks etc. Für SQL läuft unter sh vorher ein script welches einen DB-Dump erzeugt.

    Kommentar


      #3
      Ich habe auf dem Raspi bzw. Beaglebone per Cronjob ein Script eingebunden, welches alle relevanten Dateien (Logics, Items, Plugins... incl. des Scripts selbst) in dem Fall sichert, falls es seit dem letzten Scriptaufruf geändert wurde. Die Sicherung lege ich als gezippte Datei mit einem Zeitstempel im Namen auf einem NAS ab. Das Script läuft bei mir einmal am Tag.

      Dem Script solltet ihr per Parameter (über Cronjob) den Namen eures Raspi mitgeben (falls ihr wie ich mehrere Smarthome.py-Rechner am laufen habt), dann werden die Sicherungen in verschiedenen Verzeichnissen auf dem NAS abelegt:
      30 5 * * * root /usr/local/smarthome/BackupSmarthome.sh RaspiHauptRechner

      Als Denkanstoss hier mein Script "BackupSmarthome.sh" - natürlich müsst ihr zumindest die Pfadangaben anpassen.
      Code:
      ################################################## #############################################
      # MF September 2016
      # Backup Script - Sicherung der Sourcecodedateien von smarthome.py auf einem NAS
      # Erwarteter Parameter: $1 = Angabe des Rechnernamens, der auf dem NAS als Pfad gesetzt wird
      ################################################## #############################################
      
      # Dateinamen setzen
      pathSH="/usr/local/smarthome/"
      pathNAS=$pathSH"mnt/NAS/"
      fileCur=$pathSH"archiveSmarthome.tar"
      fileOld=$pathSH"archiveSmarthomeOld.tar"
      fileBack=$pathNAS$1"/smarthomepy_$1_$(date "+%y%m%d-%H%M%S").tgz"
      
      # Verzeichnis auf Steuerung erstellen in welches NAS gemounted werden soll
      mkdir -p $pathNAS
      
      # NAS mounten
      sudo mount -t cifs -o username=smarthome,password=XXX //192.168.123.5/NetBackup/ $pathNAS
      
      # Archiv erstellen
      # Datei /usr/local/smarthome/var/log/smarthome.log nicht hinzufügen, da sonst Dateien immer unterschiedlich
      # Archiv nicht komprimieren, da sonst Dateien immer unterschiedlich
      tar vcf $fileCur /usr/local/smarthome/BackupSmarthome.sh /usr/local/smarthome/logics/ /usr/local/smarthome/items/ /usr/local/smarthome/plugins/ /usr/local/smarthome/etc/
      
      # Dateien vergleichen
      result=$(diff $fileCur $fileOld)
      if [ $? -eq 0 ]
      then
      echo "Keine Sourcecodeänderungen zur vorherigen Version"
      else
      #echo "Sourcecodeänderungen haben stattgefunden"
      
      # Neue Datei auch als alte ablegen
      cp $fileCur $fileOld
      
      # Neue Datei komprimieren
      gzip $fileCur
      
      # Verzeichnis auf NAS erstellen mit Name (des Steuerungs-Rechners), der in Parameter #1 dem Script übergeben wird
      mkdir -p $pathNAS$1
      
      #Neue gezippte Datei auf NAS ablegen. -n = Best. Datei nicht überschreiben
      mv -n $fileCur.gz $fileBack
      
      echo $result
      fi
      Zuletzt geändert von bmx; 28.12.2016, 07:00.

      Kommentar


        #4
        Die Sache hat beim PI mit SD m.E. nur einen groben Nachteil: Du erzeugst m.E. jeden Tag unnötige Schreibzyklen welche auf die Haltbarkeit gehen, daher hatte ich mich dazu entschlossen das tar und alles vom NAS aus anzustarten.

        Weiter solltest Du IMHO die DB aus dem Backup herauslassen, denn das Dingens wird ist dann ohnehin nicht konsistent wenn es nicht sauber in einen Dump gefahren worden ist.

        Das mit dem Delta hatte ich mir auch überlegt, aber dann aus praktischen Erwägungen verworfen. Die eingesparte Datenmenge ist minimal da die Datenmenge im Gesamten (mit Ausnahme der SQL-DB) sehr klein ist, der Aufwand im Falle eines Verlustes alles wieder inkrementell zusammenfahren zu müssen wird deutlich größer sein. Soll keine Kritik sein, aber mir ist ein File was alles enthält deutlich lieber...

        Kommentar


          #5
          @webfischly schönes Script, danke! Für dauerhaft automatische Backup's auf das NAS müsste man überlegen, wie man einen Rotationszyklus hinkommt - z.B. 1x wöchentlich volle Kopie, Rest dann inkrementell, alles > 2 Wochen löschen (in dieser Art, ++ --). Gute Basis dafür ...
          /tom

          Kommentar


            #6
            @Sandmann60: Die DB habe ich aus diesem/gleichen Grund auch extra nicht in das Script aufgenommen.
            Bezüglich Schreibzyklen: Wenn man mit dieser Methode Schreibzyklen auf dem lokalen Medium vermeiden will, kann man die Datei gleich auf dem NAS erzeugen lassen. Das Script kann aus meiner Sicht trotzdem auf dem Raspi per Cronjob gestartet werden (also den Pfad in der folgenden Sciptzeile anpassen: tar vcf <PFADANGABE-AUF-DEM-NAS>

            @TOM: Also den Rotationszyklus kannst Du doch super mit einem Cronjob lösen. Einfach nochmal ein zweites Script so angepasst, dass es alles sichert ("volle Kopie") und dieses per Cronjop einmal im Monat oder pro Woche aufrufen lassen..

            Kommentar


              #7
              Hi webfischly , hmm, bin mir nicht sicher, aber landen denn die Files nicht erst im tmp auf der SD und werden dann final auf das NAS kopiert? Ich bin mir nicht mehr sicher, es hätte zugegeben schon seinen Charme das Backup sozusagen per Push wegzuschieben und nicht via Pull vom NAS....

              Kommentar


                #8
                Danke für das Script. Gute Grundlage.
                Ich schiebe das Backup auch gleich auf den Mountpoint des NAS. Ich glaube nicht, dass er lokal zwischen staged.

                Die smarthome.db excluden macht sinn. Vorher ein Dump machen und diesen abziehen.

                Um eine Rotation hinzubekommen einfach noch ne Zeile anhängen. so werden alle Dateien im Verzeichnis gelöscht, die älter als X Tage sind.

                Stichwort: find | xargs rm

                Kommentar


                  #9
                  Ich habe einen NAS mit Raid auf dem alles läuft( smarthome + smartvisu + eibd) -> da braucht's kein backup mehr !
                  (vorher lief alles auf den pi, und die wichtigen verzeichnisse waren mount points auf dem NAS)

                  Kommentar


                    #10
                    Zitat von schlaubi666 Beitrag anzeigen
                    Ich habe einen NAS mit Raid auf dem alles läuft( smarthome + smartvisu + eibd) -> da braucht's kein backup mehr !
                    (vorher lief alles auf den pi, und die wichtigen verzeichnisse waren mount points auf dem NAS)
                    Aha, und wie machst Du dann Updates bzw. wie gehst Du vor falls Du mal was löschst oder einen Configfehler baust?
                    No risk no fun?

                    Kommentar


                      #11
                      Zitat von schlaubi666 Beitrag anzeigen
                      Ich habe einen NAS mit Raid auf dem alles läuft( smarthome + smartvisu + eibd) -> da braucht's kein backup mehr !
                      Bis der Raid Controller abraucht und Müll schreibt..... dann hast du gespiegelten Müll.
                      Ein Raid ersetzt kein Backup.

                      Kommentar


                        #12
                        Ich pushe jede Nacht per Cronjob die geänderten Dateien vom Pi zu Google Drive. Dazu habe ich die relevanten Verzeichnisse in ein Verzeichnis gesymlinkt. Diese Verzeichnis wird dann vom Pi zu Google Drive synchronisiert (mit drive https://github.com/odeke-em/drive).

                        Kommentar

                        Lädt...
                        X