NEWS
Datei per Javascript auf Remote-Rechner kopieren
-
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
-
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
-
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.
-
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ß
-
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?
-
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?
-
-
Probiere ich mal aus. Auf jeden Fall schon mal danke.