NEWS
Mit exec in Dateisystem schreiben
-
Sehe grad, dass mir der iobroker unter Dateien keine Unterordner anzeigt.
Werden diese evtl nicht unterstützt?Schreibe in
/opt/iobroker/iobroker-data/files/0_userdata.0/abc/xyzDas ist der Script Part

-
@David-G. Teste mal bitte auf dem System
sudo -u iobroker which weasyprint sudo -u iobroker weasyprint --versioniobroker@iobroker:~$ sudo -u iobroker which weasyprint /usr/local/bin/weasyprint iobroker@iobroker:~$ sudo -u iobroker weasyprint --version WeasyPrint version 62.3 iobroker@iobroker:~$(Ist ein recht altes System, damals wusste ich nicht, dass man den User nicht iobroker nennen sollte....)
-
iobroker@iobroker:~$ sudo -u iobroker which weasyprint /usr/local/bin/weasyprint iobroker@iobroker:~$ sudo -u iobroker weasyprint --version WeasyPrint version 62.3 iobroker@iobroker:~$(Ist ein recht altes System, damals wusste ich nicht, dass man den User nicht iobroker nennen sollte....)
-
iobroker@iobroker:~$ sudo -u iobroker which weasyprint /usr/local/bin/weasyprint iobroker@iobroker:~$ sudo -u iobroker weasyprint --version WeasyPrint version 62.3 iobroker@iobroker:~$(Ist ein recht altes System, damals wusste ich nicht, dass man den User nicht iobroker nennen sollte....)
@David-G. sagte in Mit exec in Dateisystem schreiben:
Ist ein recht altes System
Und weasyprint ist da auch nicht 'ordentlich' installiert.
Gibt es über das Debian-Repo. -
iobroker@iobroker:~$ sudo -u iobroker which weasyprint /usr/local/bin/weasyprint iobroker@iobroker:~$ sudo -u iobroker weasyprint --version WeasyPrint version 62.3 iobroker@iobroker:~$(Ist ein recht altes System, damals wusste ich nicht, dass man den User nicht iobroker nennen sollte....)
-
@David-G. Lass mal den kompletten Befehl der mit exec geschickt wird ausgeben und stell ihn rein. Danke.
Habe eben mal manuell Daten eine Ebene höher nach /opt/iobroker/iobroker-data/files/0_userdata.0/xyz kopiert. Landen auch nicht im Backup.
@MCU sagte in Mit exec in Dateisystem schreiben:
Lass mal den kompletten Befehl der mit exec geschickt wird ausgeben und stell ihn rein. Danke.
Inhalt von echo entfernt
cd /opt/iobroker/iobroker-data/files/0_userdata.0/abc/xyz && echo '' > htmlc6.html && echo '' > htmlc5.html && echo '' > htmletiketten.html && weasyprint -p htmlc6.html c6_14_02_2026_00_23.pdf && weasyprint -p htmlc5.html c5_14_02_2026_00_23.pdf && weasyprint -p htmletiketten.html etiketten_14_02_2026_00_23.pdf && rm -f htmlc5.html htmlc6.html htmletiketten.html *.xls *.xlsx@Thomas-Braun sagte in Mit exec in Dateisystem schreiben:
Und weasyprint ist da auch nicht 'ordentlich' installiert.
Gibt es über das Debian-Repo.Wie werde ich das aktuelle Los? Dann installier ich es noch sauber
@MCU sagte in Mit exec in Dateisystem schreiben:
Was sagt denn
Copy to Clipboard
grep -n '^iobroker:' /etc/passwdLast login: Sat Feb 14 00:14:54 2026 from 192.168.22.206
iobroker@iobroker:~$ grep -n '^iobroker:' /etc/passwd
25:iobroker:x:1000:1000:iobroker,,,:/home/iobroker:/bin/bash
iobroker@iobroker:~$ -
Habe eben mal manuell Daten eine Ebene höher nach /opt/iobroker/iobroker-data/files/0_userdata.0/xyz kopiert. Landen auch nicht im Backup.
@MCU sagte in Mit exec in Dateisystem schreiben:
Lass mal den kompletten Befehl der mit exec geschickt wird ausgeben und stell ihn rein. Danke.
Inhalt von echo entfernt
cd /opt/iobroker/iobroker-data/files/0_userdata.0/abc/xyz && echo '' > htmlc6.html && echo '' > htmlc5.html && echo '' > htmletiketten.html && weasyprint -p htmlc6.html c6_14_02_2026_00_23.pdf && weasyprint -p htmlc5.html c5_14_02_2026_00_23.pdf && weasyprint -p htmletiketten.html etiketten_14_02_2026_00_23.pdf && rm -f htmlc5.html htmlc6.html htmletiketten.html *.xls *.xlsx@Thomas-Braun sagte in Mit exec in Dateisystem schreiben:
Und weasyprint ist da auch nicht 'ordentlich' installiert.
Gibt es über das Debian-Repo.Wie werde ich das aktuelle Los? Dann installier ich es noch sauber
@MCU sagte in Mit exec in Dateisystem schreiben:
Was sagt denn
Copy to Clipboard
grep -n '^iobroker:' /etc/passwdLast login: Sat Feb 14 00:14:54 2026 from 192.168.22.206
iobroker@iobroker:~$ grep -n '^iobroker:' /etc/passwd
25:iobroker:x:1000:1000:iobroker,,,:/home/iobroker:/bin/bash
iobroker@iobroker:~$@David-G. Versuch mal diesen Befehl mit exec.
runuser -u iobroker -- bash -lc "cd /opt/iobroker/iobroker-data/files/0_userdata.0/abc/xyz && echo '' > htmlc6.html && echo '' > htmlc5.html && echo '' > htmletiketten.html && /usr/local/bin/weasyprint -p htmlc6.html c6_14_02_2026_00_23.pdf && /usr/local/bin/weasyprint -p htmlc5.html c5_14_02_2026_00_23.pdf && /usr/local/bin/weasyprint -p htmletiketten.html etiketten_14_02_2026_00_23.pdf && rm -f htmlc5.html htmlc6.html htmletiketten.html *.xls *.xlsx"Die Dateien müssen dann unter Dateien/Files im Browser unter 0_userdata.0 oder Benutzerdateien im Ordner abc/xyz sichtbar sein.
-
Wenn man Linux-Systemfunktionen ("exec") zum Schreiben von Dateien nutzt, sollte man ÜBERHAUPT NICHT in den Verzeichnisbaum von iobroker schreiben ... außer man ruft per exec z. B.
iob file write ....auf ...
Die Datei in einem Verzeichnis außerhalb der Überwachung von iobroker erzeugen, und danach mit iob file write in ein iobroker Verzeichnis zu transferieren ist aber erlaubt ...
iobroker führt eine Datenbank über die Dateien im eigenen Verzeichnisbaum, und wenn man in diesen Verzeichnisbaum "unter dem Radar" Dateien hinenschiebt, sorgt das nur für Ärger (z. B. dass sie nicht "im Backup landen")....
-
Habe eben mal manuell Daten eine Ebene höher nach /opt/iobroker/iobroker-data/files/0_userdata.0/xyz kopiert. Landen auch nicht im Backup.
@MCU sagte in Mit exec in Dateisystem schreiben:
Lass mal den kompletten Befehl der mit exec geschickt wird ausgeben und stell ihn rein. Danke.
Inhalt von echo entfernt
cd /opt/iobroker/iobroker-data/files/0_userdata.0/abc/xyz && echo '' > htmlc6.html && echo '' > htmlc5.html && echo '' > htmletiketten.html && weasyprint -p htmlc6.html c6_14_02_2026_00_23.pdf && weasyprint -p htmlc5.html c5_14_02_2026_00_23.pdf && weasyprint -p htmletiketten.html etiketten_14_02_2026_00_23.pdf && rm -f htmlc5.html htmlc6.html htmletiketten.html *.xls *.xlsx@Thomas-Braun sagte in Mit exec in Dateisystem schreiben:
Und weasyprint ist da auch nicht 'ordentlich' installiert.
Gibt es über das Debian-Repo.Wie werde ich das aktuelle Los? Dann installier ich es noch sauber
@MCU sagte in Mit exec in Dateisystem schreiben:
Was sagt denn
Copy to Clipboard
grep -n '^iobroker:' /etc/passwdLast login: Sat Feb 14 00:14:54 2026 from 192.168.22.206
iobroker@iobroker:~$ grep -n '^iobroker:' /etc/passwd
25:iobroker:x:1000:1000:iobroker,,,:/home/iobroker:/bin/bash
iobroker@iobroker:~$@David-G. sagte in Mit exec in Dateisystem schreiben:
Wie werde ich das aktuelle Los?
Wie hast du es denn hingezirkelt?
-
Wenn man Linux-Systemfunktionen ("exec") zum Schreiben von Dateien nutzt, sollte man ÜBERHAUPT NICHT in den Verzeichnisbaum von iobroker schreiben ... außer man ruft per exec z. B.
iob file write ....auf ...
Die Datei in einem Verzeichnis außerhalb der Überwachung von iobroker erzeugen, und danach mit iob file write in ein iobroker Verzeichnis zu transferieren ist aber erlaubt ...
iobroker führt eine Datenbank über die Dateien im eigenen Verzeichnisbaum, und wenn man in diesen Verzeichnisbaum "unter dem Radar" Dateien hinenschiebt, sorgt das nur für Ärger (z. B. dass sie nicht "im Backup landen")....
@MartinP sagte in Mit exec in Dateisystem schreiben:
iobroker führt eine Datenbank über die Dateien im.....
Sowas hatte ich auch in Erinnerung. Deshalb hab ich oben gemeint, dass am iob vorbei geschrieben.
@Thomas-Braun sagte in Mit exec in Dateisystem schreiben:
Wie hast du es denn hingezirkelt?
Ja wenn ich das mal wüsste.
Das ist ein System aus der Zeit wo ich mit iob angefangen hab und alles Stumpf nach irgendwelchen Anleitungen gemacht hab.@mcu
Hast du die Dateien in deinen Backup auch einfach per Script, Dateiexplorer etc in den Ordner geschoben?Edit
echo "<html><body><h1>Test</h1></body></html>" | weasyprint - /dev/shm/temp.pdf && iobroker file write /dev/shm/temp.pdf 0_userdata.0/FGB/test.pdf && rm /dev/shm/temp.pdfScheint gut zu klappen.
-
@MartinP sagte in Mit exec in Dateisystem schreiben:
iobroker führt eine Datenbank über die Dateien im.....
Sowas hatte ich auch in Erinnerung. Deshalb hab ich oben gemeint, dass am iob vorbei geschrieben.
@Thomas-Braun sagte in Mit exec in Dateisystem schreiben:
Wie hast du es denn hingezirkelt?
Ja wenn ich das mal wüsste.
Das ist ein System aus der Zeit wo ich mit iob angefangen hab und alles Stumpf nach irgendwelchen Anleitungen gemacht hab.@mcu
Hast du die Dateien in deinen Backup auch einfach per Script, Dateiexplorer etc in den Ordner geschoben?Edit
echo "<html><body><h1>Test</h1></body></html>" | weasyprint - /dev/shm/temp.pdf && iobroker file write /dev/shm/temp.pdf 0_userdata.0/FGB/test.pdf && rm /dev/shm/temp.pdfScheint gut zu klappen.
Ich würde nur davon absehen, direkt auf ein Gerät wie /dev/shm/ zu schreiben. Verwende /tmp/ für sowas.
-
Ich würde nur davon absehen, direkt auf ein Gerät wie /dev/shm/ zu schreiben. Verwende /tmp/ für sowas.
@Thomas-Braun sagte in Mit exec in Dateisystem schreiben:
Ich würde nur davon absehen, direkt auf ein Gerät wie /dev/shm/ zu schreiben. Verwende /tmp/ für sowas.
Okay
Idee wegen dem krummen weasyprint?Scheinbar doppelt drauf....
iobroker@iobroker:~$ which weasyprint /usr/local/bin/weasyprint iobroker@iobroker:~$ dpkg -l | grep weasyprint ii weasyprint 62.3-1 all Document factory for creating PDF files from HTML iobroker@iobroker:~$ pip list | grep -i weasyprint weasyprint 62.3 iobroker@iobroker:~$ pip3 list | grep -i weasyprint weasyprint 62.3 iobroker@iobroker:~$ type weasyprint weasyprint ist /usr/local/bin/weasyprint iobroker@iobroker:~$ -
@Thomas-Braun sagte in Mit exec in Dateisystem schreiben:
Ich würde nur davon absehen, direkt auf ein Gerät wie /dev/shm/ zu schreiben. Verwende /tmp/ für sowas.
Okay
Idee wegen dem krummen weasyprint?Scheinbar doppelt drauf....
iobroker@iobroker:~$ which weasyprint /usr/local/bin/weasyprint iobroker@iobroker:~$ dpkg -l | grep weasyprint ii weasyprint 62.3-1 all Document factory for creating PDF files from HTML iobroker@iobroker:~$ pip list | grep -i weasyprint weasyprint 62.3 iobroker@iobroker:~$ pip3 list | grep -i weasyprint weasyprint 62.3 iobroker@iobroker:~$ type weasyprint weasyprint ist /usr/local/bin/weasyprint iobroker@iobroker:~$@David-G. sagte in Mit exec in Dateisystem schreiben:
/usr/local/bin/weasyprint
Dann lösch das aus /usr/local/bin/ einfach raus.
Edit: Per pip installiert? Dann auch per pip deinstallieren! Erst danach ggfls. stumpf aus /usr/local/bin löschen!