Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. JavaScript
    5. Kommando exec cp -r ..... funktioniert nicht

    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

    Kommando exec cp -r ..... funktioniert nicht

    This topic has been deleted. Only users with topic management privileges can see it.
    • M
      mkoke last edited by Negalein

      Hallo,
      benötige einmal Unterstützung für folgendes Kommando im Script:

      on({id: 'hm-rpc.0.NEQ141234.1.STATE', val: true}, function (obj) {
      exec('cp -r /opt/iobroker/iobroker-data/test.jpg  /media/fritzbox-usb/test.jpg');
      });
      

      Wenn ich es in der Shell ohne exec ausführe, funktioniert es prima, nur leider im Script mit exec nicht.
      Was mache ich falsch?

      Danke
      mkoke


      Mod-Edit: Code/Log in Code Tags gepackt. Bitte benutzt die Code Tags Funktion -> </>
      Hier gehts zur Hilfe.

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

        @mkoke Zwei Dinge:

        • exec in der Javascript-Instanz erlaubt?
        • der User iobroker (darunter läuft Javascript) hat Rechte die Datei zu lesen und im Ziel zu schreiben?

        Bild 1.png
        Test Rechte (im Terminal):

        sudo -u iobroker cp -r /opt/iobroker/iobroker-data/test.jpg /media/fritzbox-usb/test.jpg
        
        1 Reply Last reply Reply Quote 0
        • M
          mkoke last edited by

          Danke für die Antwort,

          exec in der Javascript-Instanz ist erlaubt.

          Der User iobroker hat keine Berechtigung. Wie kann ich Ihm die benötigten Rechte zuweisen?

          AlCalzone 1 Reply Last reply Reply Quote 0
          • AlCalzone
            AlCalzone Developer @mkoke last edited by AlCalzone

            @mkoke Nutze doch einfach die eingebauten Methoden zum Kopieren von Dateien:
            https://nodejs.org/api/fs.html#fs_fs_copyfilesync_src_dest_mode

            on({ id: "hm-rpc.0.NEQ141234.1.STATE", val: true }, function (obj) {
              fs.copyFileSync(
                "/opt/iobroker/iobroker-data/test.jpg",
                "/media/fritzbox-usb/test.jpg"
              );
            });
            

            Die Berechtigungen des mounts musst du dennoch anpassen.

            1 Reply Last reply Reply Quote 0
            • M
              mkoke last edited by

              @AlCalzone Danke für den Tipp. Das kannte ich so nicht.

              Jetzt benötige ich noch einmal Hilfe für die Einstellung der Berechtigungen. Kann ich nicht so ganz nachvollziehen, da es ja direkt in der Shell funktioniert. Was muss ich jetzt noch einstellen? Sorry, ist für mich noch ziemlich neu.

              AlCalzone Meister Mopper 2 Replies Last reply Reply Quote 0
              • AlCalzone
                AlCalzone Developer @mkoke last edited by

                @mkoke Der Nutzer iobroker benötigt Schreibzugriff. Auf der Konsole bist du als ein anderer angemeldet, daher funktioniert es dort und in ioBroker nicht. Wie das geht, kann ich dir nicht sagen, da ich nicht weiß, wie das Laufwerk konfiguriert ist.

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

                  @mkoke Du musst dem Zielsystem (da wo etwas ausgeführt werden soll) den SSH-Schlüssel von Deinem ioBroker-User zuteilen:

                  auf dem ioBroker.System:
                  sudo su - iobroker -s /bin/bash
                  cd ~/.ssh
                  ssh-keygen -t rsa
                  
                  3 x Enter
                     
                  auf dem Zielsystem:
                  pi@192.168.xxx.xxx> mkdir -p ~/.ssh
                  
                  auf dem ioBroker.System:
                  iobroker@iobroker> cat ~/.ssh/id_rsa.pub | ssh pi@192.168.xxx.xxx 'cat >> .ssh/authorized_keys'
                  
                  noch einmalig das Passwort eingeben, danach ist es nicht mehr nötig
                  

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

                  Support us

                  ioBroker
                  Community Adapters
                  Donate

                  990
                  Online

                  31.8k
                  Users

                  80.0k
                  Topics

                  1.3m
                  Posts

                  4
                  7
                  565
                  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