Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Datei per Javascript auf Remote-Rechner kopieren

    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

    Datei per Javascript auf Remote-Rechner kopieren

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

      Hallo,

      ich möchte gerne die Datei "Wasserverbrauch.png" aus dem Verzeichnis "/opt/iobroker/phantomjs_images" in das tmp-Verzeichnis meiner CCU2 kopieren.

      Auf der Konsole funktioniert das problemlos mit

      scp /opt/iobroker/phantomjs_images/Wasserverbrauch.png root@192.168.0.20/tmp/
      

      Dazu habe ich auch schon mit ssh-keygen einen gemeinsamen Schlüssel vergeben und ihn in der Datei authorized_keys unter /root/.ssh auf der CCU2 gespeichert.

      Meine Frage ist nun aber, wie ich die Datei mit einem Javascript kopiere. Muss ich dazu per

      npm install scp
      

      erst den scp-Wrapper für node.js installieren oder geht das auch direkt mit Bordmitteln?

      Gruß,

      Thorsten

      1 Reply Last reply Reply Quote 0
      • D
        dtp last edited by

        Hab mal gerade scp installiert, allerdings erhalte ich dann beim Aufruf im Skript immer die Fehlermeldung:

        javascript.0 script.js.common.phantomjs_Verbrauchswerte: Error: Cannot find module '/opt/iobroker/node_modules/iobroker.javascript/node_modules/scp'
        

        da scp direkt unter "/opt/iobroker/node_modules/" installiert wurde. Wie bekomme ich das nun in das korrekte Verzeichnis installiert?

        Gruß,

        Thorsten

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

          Schau dir mal https://github.com/steelbrain/node-ssh/ an. Musst du im Konfig-Dialog vom JS-Adapter eintragen, damit es im richtigen ORdner installiert wird.

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

            Du kannst im Javascript mit exec() Befehle auf der Kommandozeile ausführen.. Hast du mal

            exec('scp /opt/iobroker/phantomjs_images/Wasserverbrauch.png root@192.168.0.20:/tmp/');
            ````In deinem Script probiert?
            
            Gruß
            D 1 Reply Last reply Reply Quote 0
            • D
              dtp @BuZZy last edited by dtp

              Hi,

              dieser Thread ist zwar schon etwas älter, zumal ich das Thema zwischenzeitlich auch nicht weiter verfolgt hatte, nun stehe ich aber leider wieder vor demselben Problem.

              Nochmals kurz zum Hintergrund. Ich habe den ioBroker im Docker-Container im Host-Modus auf einer Synology DiskStation laufen. Mit phantomjs erzeuge ich mir einen Screenshot eines Flot-Diagramms und speichere es im Verzeichnis /opt/iobroker/phantomjs_images ab. Getriggert wird das Ganze über meine HomeMatic CCU durch das Setzen einer Systemvariablen. So weit, so gut.

              Ich möchte nun diesen Screenshot vom NAS-Container auf die CCU kopieren. Dazu habe ich mir mittels ssh-keygen entsprechende Schlüssel angelegt und per ssh-copy-id auf die CCU kopiert. In der bash-Shell des Containers funktioniert somit der scp-Befehl zum Kopieren des Screenshots ohne Passworteingabe. Nur leider nicht, wenn ich das in ein Javascript mit exec() einbinde. Dann erhalte ich im log des ioBroker immer die Ausgabe null.

              Hat das ggf. mit Rechteproblemen zu tun?

              D 1 Reply Last reply Reply Quote 0
              • D
                dtp @dtp last edited by

                Keine eine Idee?

                Warum gibt

                exec('scp /opt/iobroker/phantomjs_images/Wasserverbrauch.png root@192.168.0.20/tmp/');
                

                im Javascript ein "null", während es direkt im bash-Terminal des Docker-Containers funktioniert?

                Glasfaser 1 Reply Last reply Reply Quote 0
                • Glasfaser
                  Glasfaser @dtp last edited by

                  @dtp

                  Mit wput

                  https://forum.iobroker.net/topic/31405/per-script-eine-datei-kopieren-auf-synology/4

                  D 1 Reply Last reply Reply Quote 0
                  • D
                    dtp @Glasfaser last edited by

                    @glasfaser

                    Probiere ich mal aus. Auf jeden Fall schon mal danke.

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

                    Support us

                    ioBroker
                    Community Adapters
                    Donate

                    713
                    Online

                    31.8k
                    Users

                    80.0k
                    Topics

                    1.3m
                    Posts

                    4
                    8
                    972
                    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