Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. [Vorlage] Script für automatisches Backup steuerbar durch VIS

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

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

    This topic has been deleted. Only users with topic management privileges can see it.
    • B
      Baerny last edited by

      Hallo Steffen, hier mein Script

      // *******************************************************************************************************
      //
      // Backup Script 
      //
      //
      // Funktionen:  1\. Typisches Backup wie es der Befehl ./iobroker backup erstellt
      //              2\. Großes Backup das den ganzen IoBroker Ordner inkl. aller Unterordner/Dateien Sichert 
      //
      //
      // V1.0   - 22.12.2017  Automatisches Backupscript
      // V1.0.1 - 12.01.2018  Uploadmöglichkeit auf einen FTP-Server eingebaut
      //                      Hier wird die lftp-Funktion benutzt somit muss diese auch in Debian vorhanden sein!
      //                      lftp kann mit dem Befehl: apt-get install lftp installiert werden.
      //
      // *******************************************************************************************************
      
      // -----------------------------------------------------------------------------
      // allgemeine Variablen
      // -----------------------------------------------------------------------------
      var logging = true;                                        // Logging on/off
      var instanz = 'javascript.0';  instanz = instanz + '.';     // 
                                                                  //
      var pfad0 =   'System.Iobroker.Backup.';                    // Pfad innerhalb der Instanz - Status allgemien
      
      var bash_script = 'bash /opt/iobroker/backup.sh ';          // Pfad zu backup.sh Datei
      
      // Wichtig! Es dürfen keine Leerzeichen in dem Backup-Array sein wenn kein Eintrag benötigt wird
      // nur '' verwenden!
      
      var Backup = [];                                        // Array für die Definition der Backuptypen und deren Details
          Backup[0] = [];
          Backup[0][0] = 'minimal';                           // Backup Typ (nicht verändern)
          Backup[0][1] = '';                                  // Names Zusatz, wird an den Dateinamen angehängt bspw. Master/Slave (falls gewünscht, ansonsten leer lassen) 
          Backup[0][2] = '10';                                // Alte Backups löschen nach X Tagen (falls gewünscht, ansonsten leer lassen)
          Backup[0][3] = '192.168.178.48';                       // FTP-Host
          Backup[0][4] = 'iobroker/backup';        // genaue Verzeichnissangabe bspw. /volume1/Backup/ auf FTP-Server (falls gewünscht, ansonsten leer lassen)
          Backup[0][5] = 'iobroker';                          // Username für FTP - Verbindung
          Backup[0][6] = '#########';                          // Passwort für FTP - Verbindung
      
          Backup[1] = [];
          Backup[1][0] = 'komplett';                          // Backup Typ (nicht verändern)
          Backup[1][1] = '';                                  // Names Zusatz, wird an den Dateinamen angehängt bspw. Master/Slave (falls gewünscht, ansonsten leer lassen)
          Backup[1][2] = '10';                                // Alte Backups löschen nach X Tagen (falls gewünscht, ansonsten leer lassen)
          Backup[1][3] = '192.168.178.48';                       // FTP-Host
          Backup[1][4] = 'iobroker/backup';         // genaue Verzeichnissangabe bspw. /volume1/Backup/ auf FTP-Server (falls gewünscht, ansonsten leer lassen)
          Backup[1][5] = 'backup';                          // Username für FTP - Verbindung
          Backup[1][6] = '#########';                          // Passwort für FTP - Verbindung
      
      var Wochentage = ['Sonntag','Montag','Dienstag','Mittwoch','Donnerstag','Freitag','Samstag'];       // Wochentage für die Backupeistellungen angelegt werden 
                                                                                                          // (Mit Sonntag beginnen wegen Schedule)
      var BkpZeit_Schedule = []; 
      // =============================================================================
      // Objekt
      
      1 Reply Last reply Reply Quote 0
      • K
        Kueppert last edited by

        @peoples:

        @eXTreMe:

        Es hängt wohl am kopieren auf mein NAS…. aber es sind die gleichen Parameter wie beim Minimal Backup im Script eingetragen, und beim Minimal Backup klappt ja alles. `

        @Baerny:

        Wie bei Steffen, das kleine Backup wird auf die Synology übertragen.

        Gruß Baerny `
        Dann zeigt mal bitte den Konfigteil aus eurem Javascript ohne das Passswort des Nas (Zeilen 16 -57), dann gebe ich euch den direkten Putty - Aufruf und ihr könnt diesen dann ausprobieren ob der das Backup auf den Ftp kopiert.

        @Kueppert:

        Ich habe test2 importiert und immer wenn ich in die Zeit rein klicke, ändert sich meine Bitte? (view denk ich oder? war die Autokorrektur wieder fleißig [emoji38] ? und springt in die Start View. Hast du da irgendwo sowas eingebaut gehabt? Nein bei mir nicht, ich blende wie gesagt die "Konfig-View" in der die ganzen Einstellungen gemacht werden in meine "Home-View" mit dem genannten widget ein, dann sieht man es standardmäßig. Für dieses Widget stelle ich dann die Sichtbarkeit in Abhängigkeit des Datenpunktes ein, ich kann dir hier gerne nochmal paar Screenshots machen wenn dir das hilft. Hoppela lol,

        ja war die Korrektur wieder Klasse 😄

        Hab nochmal weiter getestet… Am PC habe ich das Problem nicht, nur in vis (egal ob über Cloud oder WLAN).

        Ich teste Mal weiter und melde mich. Vielleicht wären paar Screens von dir doch hilfreich, dann baue ich die Mal nach und teste die zusätzlich mit...

        Danke dir und Grüße, Thorsten

        Gesendet von meinem HUAWEI RIO-L01 mit Tapatalk

        1 Reply Last reply Reply Quote 0
        • B
          Baerny last edited by

          @poeples

          Manchmal ist man so was von blind, habe den Fehler ( User falsch eingetragen )gefunden, klappt bei mir jetzt.

          Vielen Dank

          Baerny

          1 Reply Last reply Reply Quote 0
          • Peoples
            Peoples last edited by

            @Baerny:

            @poeples

            Manchmal ist man so was von blind, habe den Fehler ( User falsch eingetragen )gefunden, klappt bei mir jetzt.

            Vielen Dank

            Baerny `

            :lol: :lol:

            Wollte es im Moment schreiben. Denke das ist schon jedem passiert

            1 Reply Last reply Reply Quote 0
            • E
              eXTreMe last edited by

              @peoples:

              @eXTreMe:

              Es hängt wohl am kopieren auf mein NAS…. aber es sind die gleichen Parameter wie beim Minimal Backup im Script eingetragen, und beim Minimal Backup klappt ja alles. `

              Dann zeigt mal bitte den Konfigteil aus eurem Javascript ohne das Passswort des Nas (Zeilen 16 -57), dann gebe ich euch den direkten Putty - Aufruf und ihr könnt diesen dann ausprobieren ob der das Backup auf den Ftp kopiert. `

              Hier der Konfig-Teil aus dem Script, alle werte sind bei minimal und komplett identisch, bis auf die tage die das backup behalten werden soll, aber daran sollte es ja nicht scheitern:

              <code>// -----------------------------------------------------------------------------
              // allgemeine Variablen
              // -----------------------------------------------------------------------------
              var logging = true;                                        // Logging on/off
              var instanz = 'javascript.0';  instanz = instanz + '.';     // 
                                                                          //
              var pfad0 =   'System.Iobroker.Backup.';                    // Pfad innerhalb der Instanz - Status allgemien
              
              var bash_script = 'bash /opt/iobroker/backup.sh ';          // Pfad zu backup.sh Datei
              
              // Wichtig! Es dürfen keine Leerzeichen in dem Backup-Array sein wenn kein Eintrag benötigt wird
              // nur '' verwenden!
              
              var Backup = [];                                        // Array für die Definition der Backuptypen und deren Details
                  Backup[0] = [];
                  Backup[0][0] = 'minimal';                           // Backup Typ (nicht verändern)
                  Backup[0][1] = '';                                  // Names Zusatz, wird an den Dateinamen angehängt bspw. Master/Slave (falls gewünscht, ansonsten leer lassen) 
                  Backup[0][2] = '30';                                // Alte Backups löschen nach X Tagen (falls gewünscht, ansonsten leer lassen)
                  Backup[0][3] = '192.168.10.30';                     // FTP-Host
                  Backup[0][4] = 'backup/ioBroker/';                  // genaue Verzeichnissangabe bspw. /volume1/Backup/ auf FTP-Server (falls gewünscht, ansonsten leer lassen)
                  Backup[0][5] = 'iobroker';                          // Username für FTP - Verbindung
                  Backup[0][6] = 'xxxx';                         // Passwort für FTP - Verbindung
              
                  Backup[1] = [];
                  Backup[1][0] = 'komplett';                          // Backup Typ (nicht verändern)
                  Backup[1][1] = '';                                  // Names Zusatz, wird an den Dateinamen angehängt bspw. Master/Slave (falls gewünscht, ansonsten leer lassen)
                  Backup[1][2] = '10';                                // Alte Backups löschen nach X Tagen (falls gewünscht, ansonsten leer lassen)
                  Backup[1][3] = '192.168.10.30';                     // FTP-Host
                  Backup[1][4] = 'backup/ioBroker/';                  // genaue Verzeichnissangabe bspw. /volume1/Backup/ auf FTP-Server (falls gewünscht, ansonsten leer lassen)
                  Backup[1][5] = 'iobroker';                          // Username für FTP - Verbindung
                  Backup[1][6] = 'xxxx';                         // Passwort für FTP - Verbindung
              
              var Wochentage = ['Sonntag','Montag','Dienstag','Mittwoch','Donnerstag','Freitag','Samstag'];       // Wochentage für die Backupeistellungen angelegt werden 
                                                                                                                  // (Mit Sonntag beginnen wegen Schedule)
              var BkpZeit_Schedule = []; [/code]</code>
              
              1 Reply Last reply Reply Quote 0
              • Peoples
                Peoples last edited by

                @Kueppert:

                Vielleicht wären paar Screens von dir doch hilfreich, dann baue ich die Mal nach und teste die zusätzlich mit… `

                Wenn es nicht mehr ist, kein Problem:
                2417_test2.jpg
                Hier die View in dem die Einstellungen sind. (bei mir Test2)

                2417_view_in_widget.jpg
                Hier die View in dem ich das View in Widget benutze und ein- bzw. ausblenden will (bei mir Test)

                2417_einblenden_button.jpg
                Und hier noch der Button über den ich ein blende, ausgeblendet wird über den Schließen Button

                Hoffe mal das bringt dich weiter, wenn nicht einfach nochmal melden!

                1 Reply Last reply Reply Quote 0
                • Peoples
                  Peoples last edited by

                  @eXTreMe:

                  Hier der Konfig-Teil aus dem Script, alle werte sind bei minimal und komplett identisch, bis auf die tage die das backup behalten werden soll, aber daran… `
                  Da hast du recht, sind bei mir auch unterschiedlich.

                  Führe mal via Konsole/Putty folgendes aus und sag was passiert (vorher noch das PW ersetzen):

                  bash backup.sh "komplett||10|192.168.10.30|backup/ioBroker/|iobroker|DeinPasswort"
                  
                  1 Reply Last reply Reply Quote 0
                  • E
                    eXTreMe last edited by

                    @peoples:

                    @eXTreMe:

                    Hier der Konfig-Teil aus dem Script, alle werte sind bei minimal und komplett identisch, bis auf die tage die das backup behalten werden soll, aber daran… `
                    Da hast du recht, sind bei mir auch unterschiedlich.

                    Führe mal via Konsole/Putty folgendes aus und sag was passiert (vorher noch das PW ersetzen):

                    bash backup.sh "komplett||10|192.168.10.30|backup/ioBroker/|iobroker|DeinPasswort"
                    ```` `  
                    

                    Das klappt!!!

                    Wo liegt denn dann nun der Fehler?

                    –- Es wurde ein Komplettes Backup gestartet ---

                    tar: Entferne führende „/“ von Elementnamen

                    tar: Entferne führende „/“ von Zielen harter Verknüpfungen

                    --- Backup Erstellt ---

                    --- Alte Backups entfernen ---

                    --- Backup-File FTP-Upload ---

                    Verzeichniswechsel OK, cwd=/backup/ioBroker

                    157628827 Bytes übertragen in 15 Sekunden (10.27 MiB/s)

                    1 Reply Last reply Reply Quote 0
                    • Webranger
                      Webranger last edited by

                      Kann mir evtl jemand sagen warum meine Zeiten so komisch dargestellt werden?

                      2958_bildschirmfoto_2018-01-21_um_18.19.22.png

                      Bekomm das irgendwie nicht hin das das "normal" angezeigt wird.

                      Gruss

                      1 Reply Last reply Reply Quote 0
                      • Peoples
                        Peoples last edited by

                        @eXTreMe:

                        Das klappt!!!

                        Wo liegt denn dann nun der Fehler? `

                        Dann machen wir mal weiter, geh mal in das JavaScript und schreibe bspw. in Zeile 110 folgendes:

                        backup_erstellen('komplett','','10','192.168.10.30','backup/ioBroker/','iobroker','DeinPasswort');
                        

                        Dann auf Speichern. Dadurch wird die Funktion backup_erstellen mit den angegebenen Parametern aufgerufen und führt die backup.sh aus.

                        Auch hier wieder PW ändern und sagen was passiert.

                        1 Reply Last reply Reply Quote 0
                        • Peoples
                          Peoples last edited by

                          @ringdingringding:

                          Kann mir evtl jemand sagen warum meine Zeiten so komisch dargestellt werden? `

                          Hast du unter CSS-Allgemein evtl. ne falsche Breite angegeben?

                          1 Reply Last reply Reply Quote 0
                          • Webranger
                            Webranger last edited by

                            selbst wenn ich css alles raus lösche bleibt es so wie es ist

                            1 Reply Last reply Reply Quote 0
                            • Peoples
                              Peoples last edited by

                              Und wenn du jetzt mal 100px (bei mir steht da 60px) reinschreibst was ist dann?

                              1 Reply Last reply Reply Quote 0
                              • Webranger
                                Webranger last edited by

                                dann passiert nur das:

                                2958_bildschirmfoto_2018-01-21_um_18.29.50.png

                                1 Reply Last reply Reply Quote 0
                                • Peoples
                                  Peoples last edited by

                                  Puh…

                                  Welche Vis-Version hast du? Ich hab die 1.0.4

                                  Gib mir mal nur von dem Uhrzeit-Widget den Export dann schau ich mal wie das bei mir aussieht

                                  1 Reply Last reply Reply Quote 0
                                  • Webranger
                                    Webranger last edited by

                                    hab auch die 1.0.4

                                    ! ````
                                    [{"tpl":"tplJquiInputDatetime","data":{"oid":"javascript.0.System.Iobroker.Backup.komplett.BackupZeit_Montag","g_fixed":false,"g_visibility":false,"g_css_font_text":true,"g_css_background":false,"g_css_shadow_padding":false,"g_css_border":false,"g_gestures":false,"g_signals":false,"signals-cond-0":"==","signals-val-0":true,"signals-icon-0":"/vis/signals/lowbattery.png","signals-icon-size-0":0,"signals-blink-0":false,"signals-horz-0":0,"signals-vert-0":0,"signals-hide-edit-0":false,"signals-cond-1":"==","signals-val-1":true,"signals-icon-1":"/vis/signals/lowbattery.png","signals-icon-size-1":0,"signals-blink-1":false,"signals-horz-1":0,"signals-vert-1":0,"signals-hide-edit-1":false,"signals-cond-2":"==","signals-val-2":true,"signals-icon-2":"/vis/signals/lowbattery.png","signals-icon-size-2":0,"signals-blink-2":false,"signals-horz-2":0,"signals-vert-2":0,"signals-hide-edit-2":false,"timeOnly":true,"hideSeconds":true,"size":"1","visibility-cond":"==","visibility-val":1,"visibility-groups-action":"hide","g_last_change":false,"lc-type":"last-change","lc-is-interval":true,"lc-is-moment":false,"lc-format":"","lc-position-vert":"top","lc-position-horz":"right","lc-offset-vert":0,"lc-offset-horz":0,"lc-font-size":"12px","lc-font-family":"","lc-font-style":"","lc-bkg-color":"","lc-color":"","lc-border-width":"0","lc-border-style":"","lc-border-color":"","lc-border-radius":10,"lc-zindex":0},"style":{"left":"797px","top":"92px","width":"60px","height":"","z-index":"2","font-weight":"bold"},"widgetSet":"jqui"}]

                                    1 Reply Last reply Reply Quote 0
                                    • Peoples
                                      Peoples last edited by

                                      Schaut bei mir ganz normal aus, hast du vielleicht in deinem Projekt irgenwo Css - mäßig was definiert das hierrauf evtl. Auswirkungen hat?

                                      Wenn du noch das Main-Projekt hast könntest du es dort mal importieren und schauen wie es aussieht.

                                      1 Reply Last reply Reply Quote 0
                                      • A
                                        Adnim last edited by

                                        hab es auch gerade installiert läuft klasse.

                                        Hatte aber auch anfangs die komische anzeige.

                                        Man muss unter Allgemein die Size von 1 erhöhen und nicht unten bei Css-allgemein.

                                        Danke für das Skript!!

                                        1 Reply Last reply Reply Quote 0
                                        • Webranger
                                          Webranger last edited by

                                          Aaaaah DANKE das war es!

                                          2958_bildschirmfoto_2018-01-21_um_18.54.14.png

                                          Perfekt dann ist das erstmal erledigt und ich kann mir was neues ausdenken 😉

                                          2958_bildschirmfoto_2018-01-21_um_19.01.59.png

                                          1 Reply Last reply Reply Quote 0
                                          • E
                                            eXTreMe last edited by

                                            @peoples:

                                            @eXTreMe:

                                            Das klappt!!!

                                            Wo liegt denn dann nun der Fehler? `

                                            Dann machen wir mal weiter, geh mal in das JavaScript und schreibe bspw. in Zeile 110 folgendes:

                                            backup_erstellen('komplett','','10','192.168.10.30','backup/ioBroker/','iobroker','DeinPasswort');
                                            

                                            Dann auf Speichern. Dadurch wird die Funktion backup_erstellen mit den angegebenen Parametern aufgerufen und führt die backup.sh aus.

                                            Auch hier wieder PW ändern und sagen was passiert. `

                                            Danke für deine Hilfe! habe den Fehler gefunden:

                                            Nach dem einfügen der Zeile gab es in log eine Meldung, dass das exec kommando in den javascript adapter settings aktiviert sein muss, ich hatte heute erst den javascript adapter geupdated, in der alten version (3.4.0 meine ich hatte ich davor) gab es diese einstellung nicht, da hatte ich nämlich auch schon mal nachgeschaut die tage.

                                            Haken rein und läuft.

                                            Am besten erwähnst du noch in deinem ersten Posting, dass die aktuelle version des Javascript adapters erforderlich ist.

                                            Danke nochmal!

                                            1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            685
                                            Online

                                            31.7k
                                            Users

                                            79.9k
                                            Topics

                                            1.3m
                                            Posts

                                            29
                                            283
                                            41423
                                            Loading More Posts
                                            • Oldest to Newest
                                            • Newest to Oldest
                                            • Most Votes
                                            Reply
                                            • Reply as topic
                                            Log in to reply
                                            Community
                                            Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                            The ioBroker Community 2014-2023
                                            logo