FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: laserrichi am 03 Februar 2020, 16:19:21

Titel: Shell script aufruf und logging dafür ausschalten
Beitrag von: laserrichi am 03 Februar 2020, 16:19:21
ich habe mehrere doif  funktionen mit dem ich Shell scripte aufrufe.
Die Shell scripte laufen ein weile da hier schleifen enthalten sind um Serienbilder von den Kameras zu erzeugen.

define doif_FotoBewegEingang DOIF ([Bewegung_Eingang:"motion"] or [ESPEasy_TuerKlingel:"Tue"]) ("/opt/fhem/FHEM/kamerabild.sh &")

Jetzt hab ich nur das Problem das mir hierdurch massig LOG Einträge produziert werden.
verbose 0 und loglevel 0 hilft hier nicht. Wie unterdrücke ich das ganze ?

Versuch mit {qx(/opt/fhem/FHEM/kamerabild.sh&)}
sorgt für hänger des Systems, da hier auf rückantwort gewartet wird.

Jemand eine Idee ?
Titel: Antw:Shell script aufruf und logging dafür ausschalten
Beitrag von: amenomade am 03 Februar 2020, 16:24:35
("/opt/fhem/FHEM/kamerabild.sh > /dev/null 2>&1")
Titel: Antw:Shell script aufruf und logging dafür ausschalten
Beitrag von: KernSani am 03 Februar 2020, 16:54:12
Cooltux hatte irgendwo mal einen Codeschnippsel bereitgestellt, mit dem man Systemfunktionen nonBlocking aufrufen kann (mit Callback um das Ergebnis auszuwerten). Ich habe das für mich etwas generischer abgewandelt. Kann ich heute Abend mal raussuchen...
Wobei im vorliegenden Fall amenomades Vorschlag ausreichen sollte.
Titel: Antw:Shell script aufruf und logging dafür ausschalten
Beitrag von: laserrichi am 03 Februar 2020, 17:19:00
habe das mal mit dev null ausprobiert... theoretisch sollte das ja eigentlich funktionieren....  leider klappt das nicht.
Ich habe im Log trotzdem die Einträge drin.
Ich habe irgendwo mal gelesen das der "system" aufruf grundsätzlich reinschreibt
Titel: Antw:Shell script aufruf und logging dafür ausschalten
Beitrag von: CoolTux am 03 Februar 2020, 17:52:43
Zeig mal bitte die Loginträge. Was genau schreibt er denn da. Eigentlich sollte das Script mit dem & am Ende komplett von FHEM abgetrennt abgearbeitet werden. Man bekommst halt nur keine Rückantwort es sei denn das Script schreibt eine in FHEM.
Titel: Antw:Shell script aufruf und logging dafür ausschalten
Beitrag von: Otto123 am 03 Februar 2020, 18:01:38
bei dem Aufruf "Shell Befehl" gibt es irgendwie keine Pipe ... hab ich vor geraumer Zeit mal ausgiebig probiert  ::)

ZitatJetzt hab ich nur das Problem das mir hierdurch massig LOG Einträge produziert werden.
Wenn Du die nicht willst, warum machst Du sie dann? Du hast ein Shell Script - drücke doch dort selbst jede stdout Ausgabe "in den Skat"  ???

Außerdem kannst Du dir bei "Shellbefehl" das & am Ende sparen, das ist bei "Shellbefehl" quasi schon drin.
https://fhem.de/commandref_DE.html#command

@Marko Du irrst: Die stdout landet bei dem Aufruf " shellbefehl"  im Logfile, egal wann sie kommt.

Gruß Otto
Titel: Antw:Shell script aufruf und logging dafür ausschalten
Beitrag von: laserrichi am 03 Februar 2020, 18:08:31
im Log steht:


2020-02-03 18:01:00 (4,66 MB/s) - auf die Standardausgabe geschrieben [/89]

--2020-02-03 18:01:00--  http://<IP-deleted>/tmpfs/snap_tmpfs/20200203/IMG001/IMG_chn0_TIMER_MNG_20200203180059_030.jpg
Verbindungsaufbau zu <IP-deleted> ... verbunden.
HTTP-Anforderung gesendet, auf Antwort wird gewartet ... 200 OK
L�nge: 80775 (79K) [image/jpeg]
Wird in �/mnt/video/eingang/fhem/2020-02-03_18.01.00.jpg� gespeichert.

     0K .......... .......... .......... .......... .......... 63% 2,79M 0s
    50K .......... .......... ........                        100% 6,86M=0,02s

2020-02-03 18:01:00 (3,56 MB/s) - �/mnt/video/eingang/fhem/2020-02-03_18.01.00.jpg� gespeichert [80775/80775]

--2020-02-03 18:01:02--  http://<IP-deleted>/cgi-bin/hi3510/snap.cgi?
Verbindungsaufbau zu <IP-deleted> ... verbunden.
HTTP-Anforderung gesendet, auf Antwort wird gewartet ... 200 OK
L�nge: nicht spezifiziert [text/html]
Wird in �STDOUT� gespeichert.
Titel: Antw:Shell script aufruf und logging dafür ausschalten
Beitrag von: Otto123 am 03 Februar 2020, 18:27:02
Wie sieht denn das Script aus?
z.B.
wget -q macht keine Ausgabe mehr :)
Titel: Antw:Shell script aufruf und logging dafür ausschalten
Beitrag von: CoolTux am 03 Februar 2020, 18:35:23
Danke Otto für den Hinweis. Das wusste ich in der Tat nicht.
Dann am besten die stdout Ausgaben unterdrücken wie bereits erwähnt.
Titel: Antw:Shell script aufruf und logging dafür ausschalten
Beitrag von: laserrichi am 03 Februar 2020, 18:38:30
z.b. so

#!/bin/sh
for i in 1 2 3 4 5 6 7 8 9 10
do
        d=$(date +%Y-%m-%d_%H.%M.%S)
        PIC=$(wget -O - 'http://192.168.1.11/cgi-bin/hi3510/snap.cgi?')
        PIC=${PIC#*'"'}
        PIC=${PIC%'"'*}
        wget -O /mnt/video/eingang/fhem/$d.jpg 'http://192.168.1.11'$PIC
cp /mnt/video/eingang/fhem/$d.jpg /mnt/video/eingang/fhem/bild$i.jpg
convert /mnt/video/eingang/fhem/$d.jpg -resize 20% /mnt/video/eingang/fhem/bild_klein$i.jpg
        sleep 1
done


im Prinzip kein Hexenwerk, ich hole Bilder aus der Kamera, speichere sie ab, verkleinere sie für eine Vorschau in fhem.
Titel: Antw:Shell script aufruf und logging dafür ausschalten
Beitrag von: Otto123 am 03 Februar 2020, 18:41:15
Wie schon gesagt
wget -qO bla bla

macht schon mal viel weg

cp machts nix
macht convert was?

Hinter die Zeilen die eine Ausgabe machen, setzt Du
> /dev/null 2>&1
Titel: Antw:Shell script aufruf und logging dafür ausschalten
Beitrag von: laserrichi am 03 Februar 2020, 19:35:17
Danke Otto

wget -qO    das war es...  cp und convert hatten keine Einträge im log erzeugt.
Titel: Antw:Shell script aufruf und logging dafür ausschalten
Beitrag von: Otto123 am 03 Februar 2020, 20:33:11
Prima, falls Dich das Thema noch weiter interessiert: Kannst Du hier meine Notizen  (https://heinz-otto.blogspot.com/2018/02/in-fhem-externe-programme-aufrufen.html)bei Gelegenheit noch lesen.