NEWS
Kommando exec cp -r ..... funktioniert nicht
-
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. -
@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?
Test Rechte (im Terminal):sudo -u iobroker cp -r /opt/iobroker/iobroker-data/test.jpg /media/fritzbox-usb/test.jpg
-
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?
-
@mkoke Nutze doch einfach die eingebauten Methoden zum Kopieren von Dateien:
https://nodejs.org/api/fs.html#fs_fs_copyfilesync_src_dest_modeon({ 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.
-
@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.
-
@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. -
@mkoke Du musst dem Zielsystem (da wo etwas ausgeführt werden soll) den SSH-Schlüssel von Deinem ioBroker-User zuteilen: