FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: accessburn am 25 Januar 2018, 08:06:20

Titel: Rückgabe von Shellscript unterdrücken
Beitrag von: accessburn am 25 Januar 2018, 08:06:20
Morsche,

ich lasse ein Shellscript ausführen per Notify und die Antwort davon spamt mir das Log voll. Kann ich das irgendwie verhindern?

{system("sudo bash /opt/fhem/tuirgendwas.sh")}
Titel: Antw:Rückgabe von Shellscript unterdrücken
Beitrag von: enno am 25 Januar 2018, 08:52:29
Moin

{system("sudo bash /opt/fhem/tuirgendwas.sh");;return undef}

geht es damit?
Titel: Antw:Rückgabe von Shellscript unterdrücken
Beitrag von: kadettilac89 am 25 Januar 2018, 08:53:50
leite die Ausgabe in /dev/null um ...

Was du genau sehen und was umleiten willst kannst du steuern ... siehe Link

https://wiki.ubuntuusers.de/Shell/Umleitungen/
Titel: Antw:Rückgabe von Shellscript unterdrücken
Beitrag von: Wernieman am 25 Januar 2018, 08:54:58
1. Kannst Du eine Ausgabe eines Scriptes (oder der Befehle innerhalb des Scriptes) auf Shell-Ebene per Ausgabeumleitung ins "Nirvana" Schicken:
-> TollesScript.sh >/bin/bash
2. Warum rufst Du Dein Script über Bash auf, anstatt direkt?
-> sudo /opt/fhem/tuirgendwas.sh
2.b Falls das nicht funktioniert, hast Du im Script die Wichtige #! Zeile vergessen:
-> #!/bin/bash
3. Warum gehst Du über die Perl Ebene, anstatt direkt das Script zu starten (am besten "non-blocking"
Siehe auch https://forum.fhem.de/index.php/topic,79381.msg714129.html#msg714129 (https://forum.fhem.de/index.php/topic,79381.msg714129.html#msg714129)
-> "sudo /opt/fhem/tuirgendwas.sh"
4. Brauchst Du wirklich sudo-Rechte? Vor allem gleich über das Komplette Script?
-> Besser innerhalb des Scriptes nur die benötigten Befehle per sudo starten!

Edit:
Andere waren schneller, nur habe ich mir solche Mühe gemacht ... ;o)
Titel: Antw:Rückgabe von Shellscript unterdrücken
Beitrag von: kadettilac89 am 25 Januar 2018, 08:55:17
Zitat von: enno am 25 Januar 2018, 08:52:29
geht es damit?

Vermutlich nicht, irgend welche Befehle im Script schreiben was in die Konsole oder Standardausgabe, das kommt dann in das FEhm-Log ... ohne Zeitstempel. Wenn ich den TE richtig verstehe ...
Titel: Antw:Rückgabe von Shellscript unterdrücken
Beitrag von: accessburn am 25 Januar 2018, 09:53:42
>/dev/null hört sich gut an, und ja das #! fehlte tatsächlich, ging vergessen.
Ich teste das mal heute Abend durch. Sollte eigentlich klappen da wget nur eine URL pingen soll und mich die Ausgabe nicht die Bohne interessiert :-)
Titel: Antw:Rückgabe von Shellscript unterdrücken
Beitrag von: kadettilac89 am 25 Januar 2018, 10:02:35
Zitat von: accessburn am 25 Januar 2018, 09:53:42
>/dev/null hört sich gut an, und ja das #! fehlte tatsächlich, ging vergessen.
Ich teste das mal heute Abend durch. Sollte eigentlich klappen da wget nur eine URL pingen soll und mich die Ausgabe nicht die Bohne interessiert :-)

OK, Sinnhaftigkeit mal außer Acht gelassen, Cronjob drekt auf OS o. ä. .... Wenn du Verfügbarkeit eines Servers prüfen willst ist das PRESENCE Modul vielleicht die bessere Wahl.
Titel: Antw:Rückgabe von Shellscript unterdrücken
Beitrag von: accessburn am 25 Januar 2018, 10:09:45
Zitat von: kadettilac89 am 25 Januar 2018, 10:02:35
OK, Sinnhaftigkeit mal außer Acht gelassen, Cronjob drekt auf OS o. ä. .... Wenn du Verfügbarkeit eines Servers prüfen willst ist das PRESENCE Modul vielleicht die bessere Wahl.

Ne, der Pingt mehrere Devices von mir an. Hat was mit WakeUp zu tun. Und da ich das ebenfalls von Hand auslösen möchte muss es wohl so gehen. Ist jetzt nicht wirklich tragisch alles. Das .sh liegt im FHEM-Verzeichnis, wird mit gesichert und alles. Es soll halt einfach nur da sein und auf Wunsch startbar sein. Und da ein AT noch darauf greift rollt mir pro Call des .sh ein paar "ok." in den Log. Nervig :-D

Aber es scheint zu gehen bisher, heute abend mal alles antesten wenn ich auch die möglichkeit habe das Gerät mal physisch lahm zu legen.
Titel: Antw:Rückgabe von Shellscript unterdrücken
Beitrag von: kadettilac89 am 25 Januar 2018, 10:28:57
Zitat von: accessburn am 25 Januar 2018, 10:09:45
Aber es scheint zu gehen bisher, heute abend mal alles antesten wenn ich auch die möglichkeit habe das Gerät mal physisch lahm zu legen.

OK, wenn es bis jetzt funktioniert hat gehts mit Umleitung wahrscheinlich am schnellsten ... Wernieman hatte auch etwas angebracht ... Blocking. Wenn du das Script mit "&" im Hintergrund startest dürfte es nicht blocken.

Es gibt das WOL Modul, damit kannst du per "set <WOL-Device> refresh" auch pingen. Zusätzlich auch aufwecken wenn du das brauchen würdest. Nur so als Hinweis.
Titel: Antw:Rückgabe von Shellscript unterdrücken
Beitrag von: Wernieman am 25 Januar 2018, 10:58:09
Mit "" gestartet, sollte es "non blocking" sein.

Aber ... warum braucht wget bei Dir sudorechte??????
Titel: Antw:Rückgabe von Shellscript unterdrücken
Beitrag von: accessburn am 25 Januar 2018, 11:09:58
Ehrlich gesagt hab ich über mit und ohne sudo gar nicht nachgedacht ob es auch ohne geht?
Macht das denn einen unterschied? Ich hatte es von Anfang an mit eingefügt ohne groß drüber nach zu denken.
Titel: Antw:Rückgabe von Shellscript unterdrücken
Beitrag von: Wernieman am 25 Januar 2018, 14:21:39
Bitte nicht falsch Verstehen:
"ohne groß drüber nach zu denken."
Das ist das größte Sicherheitsproblem von allen.

Du hast wahrscheinlich in Deiner sudo so etwas stehen:
fhem ALL=(ALL) ALL
Und startest alle Scripte über sudo. Damit könntest Du fhem gleich unter root laufen lassen, mit allen negativen Begleiterscheinungen (was im Standard bekanntlich umgebogen wird). Der User fhem sollte wirklich nur die Berechtigungen haben, die er braucht. Und generelle Sudorechte sind ..... "nicht optimal"