FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: KFK-mpg am 08 November 2013, 21:55:45

Titel: Bash Skript von FHEM auslösen...
Beitrag von: KFK-mpg am 08 November 2013, 21:55:45
Hi,
leider muss ich doch noch einmal eine Frage in die Runde werfen, worüber ich schon ein wenig Brüte.
Ich versuche aktuell von einem Home Matic Tür Kontakt ein Bash Skript starten, welches mir eine E-Mail sendet.
Klar gibt es dafür in FHEM schon vorgesehen Funktionen, ich muss jedoch einen UMTS-Router überbrücken, der ab und zu kein Internet hat.
Das heißt er muss dann automatisch neu gestartet werden. Daher das Bash Skript.

Ich habe natürlich einiges schon probiert, bin bisher jedoch nicht auf einen grünen Zweig gekommen.
Das Bash-Skript welches ausgeführt werden soll(das Skript im Terminal etc. funktioniert:

################################################################
#!/bin/bash
echo "run cmd at $(date)" >> /opt/fhem/FHEM/restart.log
count=0
while [ "$(/bin/ping -c 1 www.google.de | grep '64 bytes' | cut -b 1-2)" != "64" ]
do
       if [ $count -eq 0 ] || [ $count -eq 5 ]; then
              echo "Restart router $(date)" >>  /opt/fhem/FHEM/restart.log
               /usr/bin/curl "http://easy.box/cgi-bin/login.exe" --anyauth --user-agent "Mozilla/4.0" -d user=loginname -d pws=password > /opt/fhem/FHEM/routerhtml.log
               /usr/bin/curl "http://easy.box/cgi-bin/restart.exe" >> /opt/fhem/FHEM/routerhtml.log
               count=1
       fi

sleep 120
((count++))
echo $count >> /opt/fhem/FHEM/restart.log
done
mutt -s "Betreff" max.mustermann@mailde < "Hallo" >> /opt/fhem/FHEM/restart.log
#################################################################


fhem.cfg sieht wie folgt aus:
#################################################################
define TuerNotify notify CUL_HM_HM_SEC_SC:open { system("sudo /opt/fhem/FHEM/test.sh") }
#################################################################

FHEM löst auch bei offenem Türkontakt aus, jedoch kriege ich in das Log entweder Permissions denied (war bisher immer wenn ich das Skript im User-ordner abgelegt hatte)
oder wie aktuell hier: TuerNotify return value: -1

Was mache ich hier Grundsätzlich Falsch?
Hoffe ihr könnt mir helfen. (sry das ich den Code nicht in einen Code-Block schreiben konnte, ging irgendwie nicht über Midori)

Meine Hardware ist ein Raspberry Pi Model B, COC-Modul und FHEM in der Version 5.5

Viele Grüße
Daniel
Titel: Antw:Bash Skript von FHEM auslösen...
Beitrag von: Jaydee am 08 November 2013, 22:42:00
versuch mal auf der Shell
sudo chmod a+x /opt/fhem/FHEM/test.sh
um dein skript von jedem ausführbar zu machen und lass dann das sudo im Aufruf weg.

EDIT: das -1 bekomme ich auch immer bei meinen Bash-Skripten, aber ausgeführt werden sie trotzdem korrekt.
Titel: Antw:Bash Skript von FHEM auslösen...
Beitrag von: KFK-mpg am 08 November 2013, 23:19:06
Hi,
das hätte ich vll noch erwähnen sollen. Ausführungsrechte wurden für jeden gegeben. Habs auch nochmal mit deiner Zeile probiert um sicher zu gehen, jedoch bekomme ich auch immer noch den Return Code -1.

Noch weitere Ideen?

Viele Grüße
Daniel
Titel: Antw:Bash Skript von FHEM auslösen...
Beitrag von: Jaydee am 08 November 2013, 23:22:59
wie gesagt, das -1 heißt bei mir gar nichts, das bekomm ich auch immer, obwohl alles wie gewünscht läuft...

Das Skript läuft problemlos, wenn du es selbst von der Shell aus startest?
Titel: Antw:Bash Skript von FHEM auslösen...
Beitrag von: Jaydee am 08 November 2013, 23:25:28
und du hast auch die Schreibrechte für dein  /opt/fhem/FHEM/restart.log eingeräumt?
Titel: Antw:Bash Skript von FHEM auslösen...
Beitrag von: KFK-mpg am 09 November 2013, 21:14:31
Hi,
Jup, die Rechte wurden gesetzt.
Ich habe nochmal rumprobiert und mir mal einen Ordner im /Tmp/ erzeugen lassen. Das funktionierte soweit. Hat es vll etwas mit den Ausführungsrechten des fhem-Users zu tun? Scheinbar liegt es ja daran, dass fhem kein mutt aufrufen kann. Kann ich die irgendwie ändern?

Viele Grüße
Titel: Antw:Bash Skript von FHEM auslösen...
Beitrag von: duke-f am 06 März 2014, 16:13:22
Gab's hier keine Lösung? Ich stehe haargenau vor dem gleichen Problem.
Titel: Antw:Bash Skript von FHEM auslösen...
Beitrag von: Wernieman am 06 März 2014, 16:15:07
Auf was für ein System?
Titel: Antw:Bash Skript von FHEM auslösen...
Beitrag von: duke-f am 06 März 2014, 16:40:36
Haargenau wie beschrieben: Raspberry Pi.

Aber es läuft jetzt. Welches jetzt der maßgebende Faktor war, weiss ich nicht, aber ich habe:
1. Die Leserechte für alle ergänzt, bisher hatte ich gedacht, die Ausführungsrechte reichen aus.
2. Das Script kopiert in /usr/local/bin und dort aufgerufen.

Jetzt kommt die Mail auch an.
Titel: Antw:Bash Skript von FHEM auslösen...
Beitrag von: Wernieman am 07 März 2014, 11:04:12
Wenn ein Script/Programm ausgeführt werden soll, muß es vorher "gelesen" werden.

Deshalb brauchst Du immer die rx-Rechte, wenn es laufen soll.
Titel: Antw:Bash Skript von FHEM auslösen...
Beitrag von: duke-f am 07 März 2014, 13:47:57
Danke, war mir so nicht bewusst. Dachte irgendwie, ich könnte ein Skript ausführbar machen, ohne dass jeman "reingucken" kann.
Titel: Antw:Bash Skript von FHEM auslösen...
Beitrag von: Wernieman am 07 März 2014, 13:52:50
Naja ... Unix ist Multiuserfähig, d.h. auch "System" ist ein User. Wenn keiner reingucken kann, dann kann KEINER reingucken (Ausnahme: root, deshalb soll man den ja zu arbeiten auch nicht verwenden)
Titel: Antw:Bash Skript von FHEM auslösen...
Beitrag von: duke-f am 07 März 2014, 15:40:59
Das ist schon richtig. Hab' nur bis jetzt den Standpunkt, dass ich wirklich der einzige auf meinem Raspi bin und mir immer wieder an besonderen Punkten eine Sicherung mache. Aber vielleicht sollte ich doch mal "umsteigen".
Titel: Antw:Bash Skript von FHEM auslösen...
Beitrag von: Wernieman am 09 März 2014, 19:06:29
Mein Standpunkt:
Auch wenn man "alleine" auf einem System ist, gibt es meistens mehrere "Prozesse", welche man laufen lässt. Deshalb bin ich ein großer Freund von "1 Server-Prozess = 1 User"

Wenn es jemand schafft, diesen Prozess zu übernehmen, ist er noch nicht automatisch auf dem System. Er muss sich noch eine Sicherheitslücke suchen, um sich mehr Rechte zu verschaffen.

Da aktuell in den entsprechenden Kreisen diskutiert wird, wie man Device wie Kühlschänke etc. zu übernehmen sind, ist diese Diskussion nicht ganz zu vernachlässigen. Wer will schon "jemand anderes" in seinem Privaten Netz haben?

P.S. Firewall ist dagegen nie das "Allheilmittel"?

Edit: Missverständliche Typo
Titel: Antw:Bash Skript von FHEM auslösen...
Beitrag von: duke-f am 10 März 2014, 09:56:48
Ich stimme Dir vollkommen zu - und werde das auch mal über kurz oder lang so umsetzten.