NEWS
Dateien per wput auf FTP hochladen
-
Hi,
ich versuche per Blockly über exec Fotos auf meinen FTP hochzuladen.
Es sollen alle Fotos im Verzeichnis "/home/iobroker/Besucherfotos/Satz2/" auf den FTP geladen werden.
Der Ordner "2024" ist auf dem FTP nicht vorhanden und soll erstellt werden.
Leider erhalte ich beim Ausführen des Befehls keinerlei Fehlermeldung im Log.wput /home/iobroker/Besucherfotos/Satz2/* sftp://user:pass@10.0.0.123:22/DS716II/FOTO/Besucherfotos/2024/
(user und pass sind Platzhalter)
Sieht jemand einen Fehler?
Alternativ habe ich auch schon einen Befehl getestet den ChatGPT mir ausgespuckt hat
wput --recursive --binary --user="user" --password="pass" --reupload --output-dir="/DS716II/FOTO/Besucherfotos/" "/home/iobroker/Besucherfotos/Satz2/" sftp://user@10.0.0.123:22/
Dieser funktioniert ebenso wenig.
-
@aleks-83 Zeig doch mal die Ausgaben von
stdout
undstderr
-
@haus-automatisierung
Wo soll ich die Befehle ausführen?
Debian läuft in einer VM. Wenn ich sie dort in der Konsole eingebe kommt die Meldung:-bash: stdout: Kommando nicht gefunden. ... -bash: stderr: Kommando nicht gefunden.
-
@aleks-83 sagte in Dateien per wput auf FTP hochladen:
Wo soll ich die Befehle ausführen?
Das sind keine Befehle, sondern die "Ergebnisse" von deinem Befehl per exec (Linux Grundlagen).
z.B. dein "Kommando nicht gefunden" wurde auch auf stderr geschrieben.Siehe https://www.learnlinux.org.za/courses/build/shell-scripting/ch01s04
Und da kommt man halt auch per Blockly dran:
<xml xmlns="https://developers.google.com/blockly/xml"> <variables> <variable id="P*Iy:/3/;P9=nG8Ud^WY">error</variable> <variable id="7=w@tocM3-yq][/Tqwmh">result</variable> <variable id="ydV5b/g=E?UJv?VPg:J]">stderr</variable> </variables> <block type="exec" id="CU?V9@K14PQMTabSw@4g" x="113" y="138"> <mutation xmlns="http://www.w3.org/1999/xhtml" with_statement="true"></mutation> <field name="WITH_STATEMENT">TRUE</field> <field name="LOG"></field> <value name="COMMAND"> <shadow type="text" id="7HAg|T*~~BQlZ9:LvFTc"> <field name="TEXT">wput /home/iobroker/Besucherfotos/Satz2/* sftp://user:pass@10.0.0.123:22/DS716II/FOTO/Besucherfotos/2024/</field> </shadow> </value> <statement name="STATEMENT"> <block type="debug" id="YCL}hd`}f{#k[0AG[vc!"> <field name="Severity">log</field> <value name="TEXT"> <shadow type="text" id="fOEGx|}6rI^Si!c`gqzx"> <field name="TEXT">test</field> </shadow> <block type="variables_get" id="=bDtxa?^}|e)[YF9ljpz"> <field name="VAR" id="P*Iy:/3/;P9=nG8Ud^WY">error</field> </block> </value> <next> <block type="debug" id="1GoES4td2nc;D;IWJu)u"> <field name="Severity">log</field> <value name="TEXT"> <shadow type="text" id="rdnlF$8wm:aB#Fsk{}Q+"> <field name="TEXT">test</field> </shadow> <block type="variables_get" id="tnT#}zbb9t-yUy$BE^R$"> <field name="VAR" id="7=w@tocM3-yq][/Tqwmh">result</field> </block> </value> <next> <block type="debug" id="d)STjx)^.e6J-@^7s[U8"> <field name="Severity">log</field> <value name="TEXT"> <shadow type="text" id="y/-aV#-g?Ss#+;?XQIJ^"> <field name="TEXT">test</field> </shadow> <block type="variables_get" id="o{[T8q/HHYJ#*C!YpTZa"> <field name="VAR" id="ydV5b/g=E?UJv?VPg:J]">stderr</field> </block> </value> </block> </next> </block> </next> </block> </statement> </block> </xml>
-
@haus-automatisierung
wput not foundHabe ich mal schnell im JS Adapter hinzugefügt.
Ich teste... -
@aleks-83 sagte in Dateien per wput auf FTP hochladen:
Habe ich mal schnell im JS Adapter hinzugefügt.
Mh? Das hat da doch nix zu suchen, sondern muss z.B. per apt nachinstalliert werden.
-
Ich würde curl verwenden, da das relativ viel kann und nicht nur ftp Upload beherrscht
https://wiki.ubuntuusers.de/cURL/ -
@haus-automatisierung said in Dateien per wput auf FTP hochladen:
@aleks-83 sagte in Dateien per wput auf FTP hochladen:
Habe ich mal schnell im JS Adapter hinzugefügt.
Mh? Das hat da doch nix zu suchen, sondern muss z.B. per apt nachinstalliert werden.
Achso!? Ich dachte das gehört in den JS Adapter. Dann nehm ichs da wieder raus.
Hat nämlich auch nicht geholfen...
wget habe ich dort drin und es funktioniert auch.@oliverio said in Dateien per wput auf FTP hochladen:
Ich würde curl verwenden, da das relativ viel kann und nicht nur ftp Upload beherrscht
https://wiki.ubuntuusers.de/cURL/Danke für den Tipp.
Ich werde erst mal versuchen es mit wput hinzubekommen. Da ich es eigentlich nur in diesem speziellen Fall brauche. -
@aleks-83 sagte in Dateien per wput auf FTP hochladen:
Hat nämlich auch nicht geholfen...
Keine Überraschung - darüber kann man nur Pakete von npm nachinstallieren lassen.
Apt nutzen: https://packages.debian.org/bookworm/wput
sudo apt install wput
-
@haus-automatisierung said in Dateien per wput auf FTP hochladen:
@aleks-83 sagte in Dateien per wput auf FTP hochladen:
Wo soll ich die Befehle ausführen?
Das sind keine Befehle, sondern die "Ergebnisse" von deinem Befehl per exec (Linux Grundlagen).
z.B. dein "Kommando nicht gefunden" wurde auch auf stderr geschrieben.Siehe https://www.learnlinux.org.za/courses/build/shell-scripting/ch01s04
Und da kommt man halt auch per Blockly dran:
...2024-01-09 12:58:01.080 - [31merror[39m: javascript.0 (24479) script.js.Kamera.IPcam_SnapshotTEST: exec: wput /home/iobroker/Besucherfotos/Satz2/* sftp://user:pass@10.0.0.123:22/DS716II/FOTO/Besucherfotos/2024/ 2024-01-09 12:58:01.091 - [33mwarn[39m: javascript.0 (24479) script.js.Kamera.IPcam_SnapshotTEST: null 2024-01-09 12:58:01.092 - [33mwarn[39m: javascript.0 (24479) script.js.Kamera.IPcam_SnapshotTEST: Nothing done. Try `wput --help'.
-
Ich lade meinen Sachen so hoch:
curl -k "sftp://xxxxx.your-storagebox.de/iobroker/snapshot/hannah/" --user "user:pw" -T "/opt/iobroker/snapshot/Bild.jpg" --ftp-create-dirs
-
@aleks-83 Dann fehlen wohl Parameter o.ä. von wput. Habe ich noch nie genutzt und müsste jetzt auch die Doku lesen... Oder Du nutzt (wie von den anderen vorgeschlagen) curl.
-
und teste die befehle alle erst mal direkt auf der konsole mit dem user iobroker
erst wenn es da funktioniert, dann kannst du es nach blockly übertragen -
@oliverio
Wie lautet denn das initalpasswort vom user "iobroker"?
Laut Doku ist es "iobroker" aber das funktioniert nicht. -
@aleks-83 sagte in Dateien per wput auf FTP hochladen:
Wie lautet denn das initalpasswort vom user "iobroker"?
Es ist einfach keines gesetzt. Brauchst Du auch nicht. Du kannst ja mit
sudo
einfach im Context vom iobroker Linux-User die Befehle ausführen:sudo -H -u iobroker <Befehl>
Auch hier: Linux-Grundlagen anschauen
-
Jetzt funktioniert es. Danke euch !
curl -k "sftp://10.0.0.123/DS716II/FOTO/Besucherfotos/2024/" --user "user:pass" -T "/home/iobroker/Besucherfotos/Satz2/snap01.jpg" --ftp-create-dirs