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")}
Moin
{system("sudo bash /opt/fhem/tuirgendwas.sh");;return undef}
geht es damit?
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/
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)
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 ...
>/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 :-)
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.
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.
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.
Mit "" gestartet, sollte es "non blocking" sein.
Aber ... warum braucht wget bei Dir sudorechte??????
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.
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"