Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Blockly
    5. Script per exec ausführen / sudo Rechteproblem?

    NEWS

    • Wir empfehlen: Node.js 22.x

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker goes Matter ... Matter Adapter in Stable

    Script per exec ausführen / sudo Rechteproblem?

    This topic has been deleted. Only users with topic management privileges can see it.
    • CrunkFX
      CrunkFX Forum Testing @Bert last edited by

      @Bert Hast du in den Instanzeinstellungen des Javascript Adapters die exec funktion aktiviert?

      B 1 Reply Last reply Reply Quote 0
      • B
        Bert @CrunkFX last edited by

        @CrunkFX said in Script per exec ausführen / sudo Rechteproblem?:

        @Bert Hast du in den Instanzeinstellungen des Javascript Adapters die exec funktion aktiviert?

        Ja ist aktiviert. Ohne sudo im exec-Block wird das Script ausgeführt, aber nur die Befehle "state set" welche einen Wert eines Objekts in ioBroker setzen.
        bei allen anderen Befehlen scheinen die Rechte zu fehlen 🙄

        CrunkFX 1 Reply Last reply Reply Quote 0
        • CrunkFX
          CrunkFX Forum Testing @Bert last edited by

          @Bert IOBroker Alle Rechte zu geben ist afaik nicht der richtige Weg. Vielleicht könntest du ja Mal dein Script hier reinstellen (in Codetags bitte) und dann kann evtl jemand der sich mit Linux auskennt das Mal anschauen. Vielleicht @Thomas-Braun

          B Thomas Braun 2 Replies Last reply Reply Quote 0
          • B
            Bert @CrunkFX last edited by

            Hier ist das Skript:

            mountpoint='/media/pi/770E-65D0'
            STORAGEPATH="/media/pi/770E-65D0"
            IMAGENAME="rpi"
            LOGFILE="/var/log/"$HOSTNAME_${IMAGENAME}_"backup-image.log"
            
            sudo mount -a
            
            iobroker state set 0_userdata.0.Status_des_SD-Karten_Backups_des_ioBrokers "1"
             
            echo $(date +%Y-%m-%d_%H-%M-%S) " - Started to clone image" >> ${LOGFILE}
             
            sudo dd if=/dev/mmcblk0 of=${STORAGEPATH}/${IMAGENAME}_$(date +%Y-%m-%d).img bs=1MB
             
            echo $(date +%Y-%m-%d_%H-%M-%S) " - Finished to clone image" >> ${LOGFILE}
            
            iobroker state set 0_userdata.0.Status_des_SD-Karten_Backups_des_ioBrokers "2"
             
            echo $(date +%Y-%m-%d_%H-%M-%S) " - Started to resize image" >> ${LOGFILE}
             
            sudo /bin/bash /usr/local/bin/pishrink.sh -d ${STORAGEPATH}/${IMAGENAME}_$(date +%Y-%m-%d).img ${STORAGEPATH}/${IMAGENAME}_$(date +%Y-%m-%d)-small.img
             
            echo $(date +%Y-%m-%d_%H-%M-%S) " - Finished to resize big image" >> ${LOGFILE}
             
            echo $(date +%Y-%m-%d_%H-%M-%S) " - Started to delete big image" >> ${LOGFILE}
             
            sudo rm ${STORAGEPATH}/${IMAGENAME}_$(date +%Y-%m-%d).img
             
            echo $(date +%Y-%m-%d_%H-%M-%S) " - Finished to delete big image" >> ${LOGFILE}
            
            iobroker state set 0_userdata.0.Status_des_SD-Karten_Backups_des_ioBrokers "3"
             
            echo $(date +%Y-%m-%d_%H-%M-%S) " - Started to compress small image" >> ${LOGFILE}
             
            gzip -q ${STORAGEPATH}/${IMAGENAME}_$(date +%Y-%m-%d)-small.img
             
            echo $(date +%Y-%m-%d_%H-%M-%S) " - Finished to compress small image" >> ${LOGFILE}
            
            iobroker state set 0_userdata.0.Status_des_SD-Karten_Backups_des_ioBrokers "4"
            
            mv ${STORAGEPATH}/${IMAGENAME}_$(date +%Y-%m-%d)-small.img.gz /media/pi/bserver
             
            iobroker state set 0_userdata.0.Status_des_SD-Karten_Backups_des_ioBrokers "5"
            
            echo $(date +%Y-%m-%d_%H-%M-%S) " - Mission Accomplished!!!" >> ${LOGFILE}
             
            
            B 1 Reply Last reply Reply Quote 0
            • B
              Bert @Bert last edited by

              Als Ergänzung:
              Grundsätzlich ist mir der Weg zum Ziel vollkommen egal!
              Also wenn es einen Umweg gibt um das Script auszuführen, dann nehme ich den selbstverständlich auch in kauf!
              Mir stellt sich gerade die Frage ob man das Script wohlmöglich per URL bzw. http Befehl ausführen lassen kann ?!

              Meister Mopper 1 Reply Last reply Reply Quote 0
              • Meister Mopper
                Meister Mopper @Bert last edited by Meister Mopper

                @Bert Soviel wie ich verstehe, muss Dein ioBroker-user auch Schreibrechte auf dem Zielsystem haben. Vielleicht hilft ja dieser thread weiter.

                B 1 Reply Last reply Reply Quote 0
                • B
                  Bert @Meister Mopper last edited by

                  @Meister-Mopper
                  Vielen Dank für deinen Tipp!
                  Habe die Schritte aus deinem Beitrag mal durchgeführt, aber das hat leider auch nicht funktioniert.
                  Habe bestimmt schon vorher irgendwas irreparabel gemacht durch das ganz Rechte-hin-und-her vergeben 😔
                  Ich denke ich werde besser erstmal das Backup-Image aufspielen und nochmal recherchieren.
                  Vielleicht hat ja noch jemand einen Tipp

                  F 1 Reply Last reply Reply Quote 0
                  • F
                    fastfoot @Bert last edited by

                    @Bert Installiere dir den Terminaladapter und führe das Skript von dort aus. Das wird zwar auch nicht funktionieren aber du siehst womöglich sehr viel besser wo es hakt. Dort ist der user nämlich auch der iobroker

                    1 Reply Last reply Reply Quote 0
                    • Thomas Braun
                      Thomas Braun Most Active @CrunkFX last edited by Thomas Braun

                      @CrunkFX sagte in Script per exec ausführen / sudo Rechteproblem?:

                      und dann kann evtl jemand der sich mit Linux auskennt das Mal anschauen. Vielleicht @Thomas-Braun

                      Von skripten und insbesondere JavaSkript hab ich keine Ahnung.
                      Soll das oben ein shell-skript sein? Dann fehlt da mindestens mal die shebang.

                      CrunkFX B 2 Replies Last reply Reply Quote 0
                      • CrunkFX
                        CrunkFX Forum Testing @Thomas Braun last edited by

                        @Thomas-Braun Ich hatte in Erinnerung, dass du ein verfechter von sudo bist, daher dachte ich du könntest evtl. bei dem Rechteproblem helfen

                        Thomas Braun 1 Reply Last reply Reply Quote 0
                        • Thomas Braun
                          Thomas Braun Most Active @CrunkFX last edited by

                          @CrunkFX @Bert
                          Ich verstehe den Ansatz schon nicht:

                          ein Skript zusammenkopiert welches meine SD-Karte während des laufenden Betriebs klont, shrinkt, gzipt und anschließend auf meinen NAS verschiebt.

                          Ich sicher lediglich per backitup den ioBroker relevanten Kram weg, das System selber ist mir doch wumpe. Das zimmer ich ohnehin schnell fix auf eine neue SD-Karte, im Falle eines Falles. Da mach ich gar keine Klimmzüge für.

                          1 Reply Last reply Reply Quote 1
                          • B
                            Bert @Thomas Braun last edited by

                            Hallo zusammen,
                            sorry für die späte Antwort, haben spontan ein paar Tage Urlaub gemacht...

                            @Thomas-Braun said in Script per exec ausführen / sudo Rechteproblem?:

                            @CrunkFX sagte in Script per exec ausführen / sudo Rechteproblem?:

                            und dann kann evtl jemand der sich mit Linux auskennt das Mal anschauen. Vielleicht @Thomas-Braun

                            Von skripten und insbesondere JavaSkript hab ich keine Ahnung.
                            Soll das oben ein shell-skript sein? Dann fehlt da mindestens mal die shebang.

                            sorry, die Shebang ist vorhanden, hab ich nur nicht mitkopiert 🤦‍♂️

                            @Thomas-Braun said in Script per exec ausführen / sudo Rechteproblem?:

                            @CrunkFX @Bert
                            Ich verstehe den Ansatz schon nicht:

                            ein Skript zusammenkopiert welches meine SD-Karte während des laufenden Betriebs klont, shrinkt, gzipt und anschließend auf meinen NAS verschiebt.

                            Ich sicher lediglich per backitup den ioBroker relevanten Kram weg, das System selber ist mir doch wumpe. Das zimmer ich ohnehin schnell fix auf eine neue SD-Karte, im Falle eines Falles. Da mach ich gar keine Klimmzüge für.

                            Naja, der eine so, der andere so. Für mich wäre es schon von Vorteil eine "Plug&Play-Sicherung" zu haben die ich zuvor komfortabel aus dem ioBroker gestartet habe. In der VIS soll eine schöne View mit diversen Systembefehlen laufen wo sich auch ein Backup-Button gut macht.
                            Backitup ist natürlich auch im Einsatz und sichert regelmäßig auf dem NAS. Wenn ich am System rumfummel starte ich das Backup-Script vorher von Hand. Alles kein Thema.
                            Trotzdem ist Neugier und der Wunsch nach etwas Komfort vorhanden, aber da das jetzt doch viel zu viel Zeit frisst muss eine von-Hand-Sicherung und Backitup reichen.

                            @fastfoot said in Script per exec ausführen / sudo Rechteproblem?:

                            @Bert Installiere dir den Terminaladapter und führe das Skript von dort aus. Das wird zwar auch nicht funktionieren aber du siehst womöglich sehr viel besser wo es hakt. Dort ist der user nämlich auch der iobroker

                            Terminaladapter habe ich probiert, aber wie du schon sagtest bringt mich das auch nicht weiter 🤷‍♂️
                            Aber auch für den Tipp danke!

                            SBorg 1 Reply Last reply Reply Quote 0
                            • SBorg
                              SBorg Forum Testing Most Active @Bert last edited by

                              @Bert Naja, nur weil ein "sudo" davor steht, heißt das noch lange nicht, dass der Befehl auch ausgeführt wird.
                              #6 dürfte schon scheitern, da normalerweise nur "root" mounten darf. Das klappt zwar dann mittels "sudo", nur muss man dann das root-Passwort eingeben (was in einem automatischem Skript eher schlecht geht)...
                              Versuche als Test einfach mal ein

                              sudo -u iobroker sudo mount -a
                              

                              Damit wird dein Befehl als User iobroker ausgeführt.

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

                              Support us

                              ioBroker
                              Community Adapters
                              Donate

                              859
                              Online

                              32.0k
                              Users

                              80.5k
                              Topics

                              1.3m
                              Posts

                              6
                              14
                              1905
                              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