Skip to content
  • Recent
  • Tags
  • 0 Unread 0
  • Categories
  • Unreplied
  • Popular
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Logo
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. [Vorlage] Script für automatisches Backup steuerbar durch VIS

NEWS

  • Wartung am 15.11. – Forum ab 22:00 Uhr nicht erreichbar
    BluefoxB
    Bluefox
    11
    2
    207

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    7.9k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    1.7k

[Vorlage] Script für automatisches Backup steuerbar durch VIS

[Vorlage] Script für automatisches Backup steuerbar durch VIS

Scheduled Pinned Locked Moved Skripten / Logik
283 Posts 29 Posters 54.2k Views
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • simatecS Offline
    simatecS Offline
    simatec
    Developer Most Active
    wrote on last edited by
    #189

    Da gebe ich dir recht.

    Vorteil von nfs oder cifs mounten wäre aber auch, dass auch dort dann ein backup nach x Tagen gelöscht wird.

    Adernfalls haut man sich den FTP zu und muss händisch eingreifen.

    Ich will hier den script in keinster Weise schlecht reden, denn ich finde ihn genial und nutze ihn selber auch.

    Es sollte nur eine Idee sein, damit man noch erwas flexibler wird.

    • Besuche meine Github Seite
    • Beitrag hat geholfen oder willst du mich unterstützen
    • HowTo Restore ioBroker
    1 Reply Last reply
    0
    • PeoplesP Offline
      PeoplesP Offline
      Peoples
      wrote on last edited by
      #190

      @simatec:

      Wäre eventuell die Option mit smb, cifs oder nfs eine Möglichkeit?

      So dass der Script beim Ausführen einen mount ausführt und dann dieses Verzeichnis direkt als Backuppfad genutzt wird?

      Nur so eine Idee … 😉 `

      Könntest du das funktional umsetzen? Mir fehlt da das wissen und ehrlich gesagt auch ein bisschen der Nutzen. Aber wenn du das lauffähig hin bekommst wäre das bestimmt für den Einen oder Anderen ne super Sache.

      Ich beantworte keine Fragen zu Themen via PN

      1 Reply Last reply
      0
      • simatecS Offline
        simatecS Offline
        simatec
        Developer Most Active
        wrote on last edited by
        #191

        Ich probiere mich mal daran.

        Das minimale Backup sehe ich auch als Problem.

        Beim kompletten Backup sollte es nicht das Problem sein, das direkt auf einem gemouteten Laufwerk zu schreiben.

        Ich weiß allerdings nicht, ob man beim iobroker Backup auch ein Parameter für die Pfadangabe setzen kann

        • Besuche meine Github Seite
        • Beitrag hat geholfen oder willst du mich unterstützen
        • HowTo Restore ioBroker
        1 Reply Last reply
        0
        • PeoplesP Offline
          PeoplesP Offline
          Peoples
          wrote on last edited by
          #192

          @simatec:

          Da gebe ich dir recht.

          Vorteil von nfs oder cifs mounten wäre aber auch, dass auch dort dann ein backup nach x Tagen gelöscht wird.

          Adernfalls haut man sich den FTP zu und muss händisch eingreifen.

          Ich will hier den script in keinster Weise schlecht reden, denn ich finde ihn genial und nutze ihn selber auch.

          Es sollte nur eine Idee sein, damit man noch erwas flexibler wird. `

          Das mit dem schlecht reden habe ich persönlich NICHT so aufgefasst! Von daher alles gut.

          Die Idee mit dem löschen auf dem FTP hatten wir hier schon früher mal aber dazu habe ich folgende Ansicht (nur meine):

          Das automatische Löschen auf Ftp kommt für mich nicht in Frage da bei einem Fehler im Script im schlimmsten Fall auch das Backup der Sicherung weg ist.

          Und wieder die alte Leier :lol: bei den Speicherpotentialen die wir alle zu Hause haben reicht es denke ich wenn man die halbjährlich händisch löscht :mrgreen:

          Ich beantworte keine Fragen zu Themen via PN

          1 Reply Last reply
          0
          • PeoplesP Offline
            PeoplesP Offline
            Peoples
            wrote on last edited by
            #193

            @simatec:

            Ich probiere mich mal daran.

            Das minimale Backup sehe ich auch als Problem.

            Beim kompletten Backup sollte es nicht das Problem sein, das direkt auf einem gemouteten Laufwerk zu schreiben.

            Ich weiß allerdings nicht, ob man beim iobroker Backup auch ein Parameter für die Pfadangabe setzen kann `

            Naja im dümmsten Fall könnte man dann nicht den Ordner /backups/ als Mount-Ordner nehmen?

            Ich beantworte keine Fragen zu Themen via PN

            1 Reply Last reply
            0
            • S Offline
              S Offline
              stoepselinho
              wrote on last edited by
              #194

              Hallo

              Super Arbeit die ihr alle macht.

              Hab gestern mal das Script ausprobiert. Über die VIS klappt es bei mir komischerweise nicht. Der Datenpunkt wird zwar gesetzt mit Uhrzeit aber in dem Ordner ist dann kein Backup zu finden.

              Über die Konsole klappt es wunderbar nur das kopieren auf die NAS nicht könnte an Netgear liegen meckert immer an den anmelde Daten rum obwohl die Stimmen.

              Wenn ich das Script starte ist mir aufgefallen das im Reiter Adapter nur noch die zu sehen sind die ich installiert habe. Alle anderen sind weg. Auch die Versionsnummern sind nicht mehr einsehbar. Ist das bei euch auch so? Außerdem hab ich das Gefühl das der iobroker sehr langsam wird und auch öfters abstürzt. Der Absturz ist mir dreimal passiert.

              Gruß

              1 Reply Last reply
              0
              • simatecS Offline
                simatecS Offline
                simatec
                Developer Most Active
                wrote on last edited by
                #195

                @peoples:

                @simatec:

                Ich probiere mich mal daran.

                Das minimale Backup sehe ich auch als Problem.

                Beim kompletten Backup sollte es nicht das Problem sein, das direkt auf einem gemouteten Laufwerk zu schreiben.

                Ich weiß allerdings nicht, ob man beim iobroker Backup auch ein Parameter für die Pfadangabe setzen kann `

                Naja im dümmsten Fall könnte man dann nicht den Ordner /backups/ als Mount-Ordner nehmen? `

                So ich habe da mal ein wenig rumgespielt und folgendes zur cifs Einbindung für dich gefunden.

                Habe es bei mir mal getestet und die Einbindung läuft so problemlos.

                also vor dem Backup würde ich folgendes machen:

                sudo umount /opt/iobroker/backups
                

                Dann das einhängen:

                sudo mount -t cifs -o user=USERNAME,password=PASSWORT,rw,file_mode=0777,dir_mode=0777 //IP_ADDRESSE/FREIGABENAME/ORDNERPFAD /opt/iobroker/backups/
                

                und nach erfolgreichen erstellen des Backups wieder ein:

                sudo umount /opt/iobroker/backups
                

                Wenn der Script als root ausgeführt wird, kann das "sudo" entfallen

                Als Variablen im Javascript bräuchte man denn folgendes für die Einstellungen der Cifs Verbindung:

                  • USERNAME
                - PASSWORT
                
                - IP_ADDRESSE
                
                - FREIGABENAME
                
                - ORDNERPFAD (wie auch bei FTP) 
                

                Ich habe das ganze mal händisch getestet und ein Backup erstellt.

                Es funktioniert alles ohne Probleme und das Backup wird direkt im Cifs-Laufwerk erstellt.

                • Besuche meine Github Seite
                • Beitrag hat geholfen oder willst du mich unterstützen
                • HowTo Restore ioBroker
                1 Reply Last reply
                0
                • simatecS Offline
                  simatecS Offline
                  simatec
                  Developer Most Active
                  wrote on last edited by
                  #196

                  @peoples:

                  Schreibe die Zeit Mal ohne Sekunden händisch in den Datenpunkt. HH:mm ohne SS

                  Was passiert dann? `

                  Lief bis heute alles sauber durch.

                  Und auf einmal … heute wurde kein Backup erstellt ...

                  Habe dann nochmal händisch die Zeit im Datenpunkt geändert und es lief.

                  Gefühlt passiert es aber nur, wenn ich nicht im iobroker.admin eingeloggt bin :?

                  • Besuche meine Github Seite
                  • Beitrag hat geholfen oder willst du mich unterstützen
                  • HowTo Restore ioBroker
                  1 Reply Last reply
                  0
                  • S Offline
                    S Offline
                    stoepselinho
                    wrote on last edited by
                    #197

                    Weis jemand wie man eine WD Cloud einbindet mit dem Upload? oder einen Netgear Stora?

                    1 Reply Last reply
                    0
                    • PeoplesP Offline
                      PeoplesP Offline
                      Peoples
                      wrote on last edited by
                      #198

                      Naja kannst du da keinen ftp-user einrichten dem du Schreibrechte auf ein bestimmtes Verzeichnis gibst?

                      Ich beantworte keine Fragen zu Themen via PN

                      1 Reply Last reply
                      0
                      • PeoplesP Offline
                        PeoplesP Offline
                        Peoples
                        wrote on last edited by
                        #199

                        @simatec:

                        Gefühlt passiert es aber nur, wenn ich nicht im iobroker.admin eingeloggt bin :? `

                        Kann ich mir leider nicht erklären, bei mir läuft das seit dem einrichten (als ich den ersten Post gemacht habe) anstandslos durch.

                        Ich beantworte keine Fragen zu Themen via PN

                        1 Reply Last reply
                        0
                        • simatecS Offline
                          simatecS Offline
                          simatec
                          Developer Most Active
                          wrote on last edited by
                          #200

                          Ich werde es weiter beobachten.

                          Heute lief es wieder sauber durch.

                          • Besuche meine Github Seite
                          • Beitrag hat geholfen oder willst du mich unterstützen
                          • HowTo Restore ioBroker
                          1 Reply Last reply
                          0
                          • simatecS Offline
                            simatecS Offline
                            simatec
                            Developer Most Active
                            wrote on last edited by
                            #201

                            Heute war wie schon letzten Sonntag wieder kein Backup erstellt wurden.

                            Nach Änderung der Zeit im Datenpunkt wurde es erstellt.

                            Habe das Gefühl, dass es immer nur an bestimmten Tagen passiert.

                            Die Datenpunkte habe ich alle verglichen und sind gleich.

                            Beobachte das weiter …

                            Habe mir extra ne Telegrammeldung erstellt, damit ich das ganze besser überwachen kann ...

                            Gesendet von iPhone mit Tapatalk

                            • Besuche meine Github Seite
                            • Beitrag hat geholfen oder willst du mich unterstützen
                            • HowTo Restore ioBroker
                            1 Reply Last reply
                            0
                            • PeoplesP Offline
                              PeoplesP Offline
                              Peoples
                              wrote on last edited by
                              #202

                              Und dass das heute was mit der Zeitumstellung ist nicht möglich?

                              Ich beantworte keine Fragen zu Themen via PN

                              1 Reply Last reply
                              0
                              • simatecS Offline
                                simatecS Offline
                                simatec
                                Developer Most Active
                                wrote on last edited by
                                #203

                                Nein glaub ich nicht.

                                Habe den Datenpunkt manuell auf eine Minute in die Zukunft gesetzt und das Backup startete sofort

                                Gesendet von iPhone mit Tapatalk

                                • Besuche meine Github Seite
                                • Beitrag hat geholfen oder willst du mich unterstützen
                                • HowTo Restore ioBroker
                                1 Reply Last reply
                                0
                                • BuZZyB Offline
                                  BuZZyB Offline
                                  BuZZy
                                  wrote on last edited by
                                  #204

                                  Hallo Zusammen,

                                  muss gestehen: ich habe mir nicht den ganzen Thread durchgelesen.

                                  Habe mir nur das Script angesehen und dazu einen kleinen Hinweis:

                                  ioBroker arbeitet viel "in Memory".. Und schreibt "so wenig wie möglich, so viel wie nötig" auf die Festplatte um die Schreib/Lesezugriffe gering zu halten. Das "große Backup" aus diesem Script stoppt ioBroker nicht bevor das ioBroker Verzeichnis gepackt wird. Das Backup enthält also höchstwahrscheinlich nicht die aktuellsten Daten/States/Objects.

                                  Zitat dazu von Github:
                                  ` > Databases

                                  ioBroker uses "in memory" database to hold the data and saves it on disk with resonable intervals. There are two types of storage:

                                  states (values)

                                  objects (meta/configuration information)

                                  States can be stored in "in memory" or in redis. Objects can be stored only in "in memory" DB. `

                                  Gruß

                                  1 Reply Last reply
                                  0
                                  • PeoplesP Offline
                                    PeoplesP Offline
                                    Peoples
                                    wrote on last edited by
                                    #205

                                    @BuZZy:

                                    Das Backup enthält also höchstwahrscheinlich nicht die aktuellsten Daten/States/Objects. `

                                    Das kann ich ehrlich gesagt nicht widerlegen noch bestätigen, ich kann nur sagen dass mir das nicht bewusst aufgefallen ist.

                                    Dennoch werde ich das auf jeden Fall ändern denn ein nicht aktuelles Backup ist für die Katz.

                                    Tausend Dank für den Hinweis!

                                    Ich beantworte keine Fragen zu Themen via PN

                                    1 Reply Last reply
                                    0
                                    • BuZZyB Offline
                                      BuZZyB Offline
                                      BuZZy
                                      wrote on last edited by
                                      #206

                                      Ich denke eher dass die "Probleme" sich absolut in Grenzen halten..

                                      Wenn es ganz blöd läuft fehlt eventuell ein Object oder die States sind nicht die aktuellsten oder so.. Aber große Probleme werden sich dadurch denke ich nicht ergeben.. Wollte bloß drauf aufmerksam machen dass der richtige Weg ist, ioBroker zu stoppen bevor man das ganze Verzeichnis sichert. 🙂

                                      Gruß

                                      1 Reply Last reply
                                      0
                                      • PeoplesP Offline
                                        PeoplesP Offline
                                        Peoples
                                        wrote on last edited by
                                        #207

                                        Und genau deswegen werde ich das auch so einpflegen.

                                        Danke nochmal!

                                        Ich beantworte keine Fragen zu Themen via PN

                                        1 Reply Last reply
                                        0
                                        • simatecS Offline
                                          simatecS Offline
                                          simatec
                                          Developer Most Active
                                          wrote on last edited by
                                          #208

                                          Ich habe den backup.sh Script mal für CIFS angepasst und auch das starten und stoppen für das komplette Backup.

                                          Des Weiteren habe ich den Pfad für das erstellen des kompletten Backups direkt in den IoBroker Backup Ordner gelegt.

                                          Das hat bei einer CIFS Verbindung den Vorteil, dass erst garnicht auf dem Raspberry oder der Gleichen geschrieben wird, sondern direkt auf dem CIFS Laufwerk.

                                          Für die CIFS Verbindung müsste nur der Javascript mit dem Variablen noch angepasst werden.

                                          Da bin ich nicht so der richtige Ansprechpartner 😉

                                          ##!/bin/bash
                                          
                                          # Beschreibung: Backupscript fuer IoBroker
                                          #
                                          # Basierend auf dem Script von Kuddel: http://forum.iobroker.net/viewtopic.php?f=21&t=9861
                                          #
                                          # Funktionen: - Erstellen eines normalen ioBroker-Backups
                                          #             - Erstellen eines Backups des ganzen ioBroker-Ordners
                                          #             - Optionales loeschen von Backups aelter x-Tage
                                          #             - Optionales weiterkopieren auf einen FTP-Server
                                          #
                                          #
                                          # Author: Steffen
                                          # Version: 1.0 - Erster Entwurf des Backupscripts
                                          # Version: 1.0.1 - Optionaler Upload auf FTP-Server
                                          #
                                          #
                                          # Verwendung: run bash backup.sh "[Backup_Typ|Namens_Zusatz|Loeschen_nach_X_Tagen|FTP_Host|FTP_Verzeichnis|FTP_User|FTP_Passwort]
                                          # run 'bash backup.sh '
                                          #
                                          STRING=$1
                                          echo $STRING
                                          IFS="|"
                                          VAR=($STRING)
                                          
                                          BKP_TYP=${VAR[0]}
                                          NAME_ZUSATZ=${VAR[1]}
                                          BKP_LOESCHEN_NACH=${VAR[2]}
                                          FTP_HOST=${VAR[3]}
                                          FTP_DIR=${VAR[4]}
                                          FTP_USR=${VAR[5]}
                                          FTP_PASS=${VAR[6]}
                                          CIFS_HOST=${VAR[7]}
                                          CIFS_DIR=${VAR[8]}
                                          CIFS_USR=${VAR[9]}
                                          CIFS_PASS=${VAR[10]}
                                          
                                          #Variable fuer optionales Weiterkopieren
                                          BKP_OK="NEIN"
                                          
                                          #Datum definieren
                                          datum=`date +%Y_%m_%d`
                                          #Uhrzeit bestimmten
                                          uhrzeit=`date +%H_%M_%S`
                                          #Stunde definieren
                                          stunde=`date +%H`
                                          
                                          ############################################################################
                                          #									   #
                                          # Optionaler Mount auf CIFS-Server                    			   #
                                          #                                                                          #
                                          ############################################################################
                                          
                                          	if [ -n "$CIFS_HOST" ]; then
                                          		echo
                                          		Backup-Pfad auf CIFS mounten
                                          		sudo umount /opt/iobroker/backups
                                          		sudo mount -t cifs -o user=$CIFS_USR,password=$CIFS_PASS,rw,file_mode=0777,dir_mode=0777 //$CIFS_HOST/$CIFS_DIR /opt/iobroker/backups
                                          		echo "--- CIFS-Server verbunden ---"
                                          	else
                                          		echo "--- Backup-Pfad wurde nicht auf CIFS-Server verbunden ---"
                                          	fi
                                          
                                          ############################################################################
                                          #									   #
                                          # Erstellen eines normalen ioBroker Backups                                #
                                          #                                                                          #
                                          ############################################################################
                                          
                                          if [ $BKP_TYP == "minimal" ]; then
                                          
                                          	echo
                                          #	Backup ausfuehren
                                          	echo --- Es wurde ein Normales Backup gestartet ---
                                          	iobroker backup
                                          	echo
                                          	echo --- Backup Erstellt ---
                                          	BKP_OK="JA"
                                          
                                          #	Backup umbenennen
                                          	mv /opt/iobroker/backups/$datum-$stunde* /opt/iobroker/backups/backupiobroker_minimal$NAME_ZUSATZ-$datum-$uhrzeit.tar.gz
                                          
                                          ############################################################################
                                          #									   #
                                          # Erstellen eines Backups des ganzen ioBroker-Ordners                      #
                                          #                                                                          #
                                          ############################################################################
                                          
                                          elif [ $BKP_TYP == "komplett" ]; then
                                          #	IoBroker stoppen
                                          	cd /opt/iobroker
                                          	iobroker stop
                                          	echo --- IoBroker gestoppt ---
                                          #	Ins ioBroker Backup wechseln um komplettes IoBroker Verzeichnis zu sichern
                                          	cd /opt/iobroker/backups
                                          	echo
                                          #	Backup ausfuehren
                                          	echo --- Es wurde ein Komplettes Backup gestartet ---
                                          	tar -czf $datum-$uhrzeit-backup_komplett.tar.gz --exclude="/opt/iobroker/backups" /opt/iobroker
                                          	echo
                                          	echo --- Backup Erstellt ---
                                          	BKP_OK="JA"
                                          
                                          #	Backup umbenennen
                                          	mv /opt/iobroker/backups/$datum-$stunde*_komplett.tar.gz /opt/iobroker/backups/backupiobroker_komplett$NAME_ZUSATZ-$datum-$uhrzeit.tar.gz
                                          # 	Iobroker restart
                                          #	cd /opt/iobroker
                                          	iobroker start
                                          	echo --- IoBroker gestartet ---
                                          
                                          else
                                          	echo "Kein gueltiger Backup Typ gewaehlt! Moegliche Auswahl: 'minimal' oder 'komplett'"
                                          fi
                                          
                                          ############################################################################
                                          #									   #
                                          # Optionales Loeschen alter Backups                                        #
                                          #                                                                          #
                                          ############################################################################
                                          
                                          if [ $BKP_OK == "JA" ]; then
                                          	if [ -n "$BKP_LOESCHEN_NACH" ]; then
                                          		echo
                                          #		Backups älter X Tage löschen
                                          		echo "--- Alte Backups entfernen ---"
                                          		find /opt/iobroker/backups -name backupiobroker_$BKP_TYP$NAME_ZUSATZ-*.tar.gz -mtime +$BKP_LOESCHEN_NACH -exec rm '{}' \;
                                          		sleep 10
                                          #		echo
                                          	else
                                          		echo "--- Es werden keine alten Backups geloescht ---"
                                          	fi
                                          
                                          ############################################################################
                                          #									   #
                                          # Optionaler Upload des Backups auf einen FTP-Server                       #
                                          #                                                                          #
                                          ############################################################################
                                          
                                          	if [ -n "$FTP_HOST" ]; then
                                          		echo
                                          #		Backup-Files via FTP kopieren
                                          
                                          		echo "--- Backup-File FTP-Upload ---"
                                          #               Verzeichnis wechseln
                                          		cd /opt/iobroker/backups/
                                          
                                          #		Befehl wird mit lftp ausgeführt somit muss das instaliert sein! (debian apt-get install lftp)
                                          
                                          		lftp -e 'cd '$FTP_DIR'/; put backupiobroker_'$BKP_TYP$NAME_ZUSATZ-$datum-$uhrzeit'.tar.gz; bye' -u $FTP_USR,$FTP_PASS $FTP_HOST
                                          		echo
                                          	else
                                          		echo "--- Backup-File wurde nicht auf ein anderes Verzeichnis kopiert ---"
                                          	fi
                                          ############################################################################
                                          #									   #
                                          # Optionaler Umount des CIFS-Servers                    		   #
                                          #                                                                          #
                                          ############################################################################
                                          
                                          	if [ -n "$CIFS_HOST" ]; then
                                          		echo
                                          		Backup-Pfad auf CIFS umounten
                                          		sudo umount /opt/iobroker/backups
                                          		echo "--- Umount CIFS Server ---"
                                          	else
                                          		echo "--- Backup-Pfad wurde nicht vom CIFS-Server getrennt ---"
                                          	fi
                                          	BKP_OK="NEIN"
                                          else
                                          	echo "Kein Backup erstellt!"
                                          fi
                                          

                                          @ peoples

                                          Falls das posten des Codes nicht gewollt ist, bitte sage mir Bescheid.

                                          Dann lösche ich ihn wieder und stelle ihn für deine Arbeit zur Verfügung.

                                          • Besuche meine Github Seite
                                          • Beitrag hat geholfen oder willst du mich unterstützen
                                          • HowTo Restore ioBroker
                                          1 Reply Last reply
                                          0
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          111

                                          Online

                                          32.4k

                                          Users

                                          81.3k

                                          Topics

                                          1.3m

                                          Posts
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                          ioBroker Community 2014-2025
                                          logo
                                          • Login

                                          • Don't have an account? Register

                                          • Login or register to search.
                                          • First post
                                            Last post
                                          0
                                          • Recent
                                          • Tags
                                          • Unread 0
                                          • Categories
                                          • Unreplied
                                          • Popular
                                          • GitHub
                                          • Docu
                                          • Hilfe