bash Skript unterschlägt Befehle

Begonnen von MichaelO, 19 Oktober 2015, 12:24:37

Vorheriges Thema - Nächstes Thema

MichaelO

Hallo,
ich habe das bash Backup-Skript für die fhem-Konfiguration von dieser Seite implementiert:

http://www.meintechblog.de/2015/05/fhem-howto-automatisches-backup-auf-externem-nas/

Die Grundfunktion klappt, es wird alles gesichert und nur die letzten x Backups bleiben im Ordner.

Was aber gar nicht geht, sind alle Befehle vom Typ
perl /opt/fhem/fhem.pl 7072 ""

wie z.B.
perl /opt/fhem/fhem.pl 7072 "set FHEM.Backup off"
und auch alle setreading werden nicht ausgeführt. Es passiert garnichts im Dummy FHEM.Backup.

Ich habe gem. obiger Seite die Rechte der Skriptdatei überprüft, den User geprüft, Telnet steht auf initialized... ich komme da mit meinem Wissen aktuell nict weiter.

Kann mir jemand helfen, aus dem Skript heraus die Befehle zum laufen zu bringen?

Danke
Michael

rapster

Wenn du ein Telnet Device auf Port 7072 haben solltest, probier mal an den Anfang des Script ein
cd /opt/fhem
einzubauen.

MichaelO

Ok, das teste ich. Hatte auch ganz vergessen zu erwähnen, dass fhem auf einem RasPi läuft.

MichaelO

Leider bringt cd /opt/fhem nichts, das Skript erstellt das Backup, die Einträge im LogFile passen aber der Dummy FHEM.Backup ändert keinen der im Skript angesprochenen Werte.

Kann man über ein bash Skript auf fhem-Device-Attribute auch anders zugreifen, als über

perl /opt/fhem/fhem.pl 7072...

JoWiemann

Hallo,

was bekommst Du den für eine Meldung, wenn Du die Befehle in einer Terminalsession eingibst?

Grüße Jörg
Jörg Wiemann

Slave: RPi B+ mit 512 MB, COC (868 MHz), CUL V3 (433.92MHz SlowRF); FHEMduino, Aktuelles FHEM

Master: CubieTruck; Debian; Aktuelles FHEM

MichaelO

Zitat von: JoWiemann am 19 Oktober 2015, 13:55:00
Hallo,

was bekommst Du den für eine Meldung, wenn Du die Befehle in einer Terminalsession eingibst?

Grüße Jörg

Sorry für die blöde Frage, aber meinst Du damit, per SSH auf den RasPi und dann die Zeile eingeben?

weblint

Ja bitte, copy paste sozusagen dann siehst du direkt was an dem Code nicht stimmt

Gesendet von meinem Nexus 5 mit Tapatalk

RasPi an EnOcean/CUL. Using Fs20, EnOcean, HM in Testing

MichaelO

So,
ich habe dann gerade getestet...

per ssh auf den RasPi, dann
perl /opt/fhem/fhem.pl 7072 "setreading FHEM.Backup info backup starting now"

Ergebnis: kurze Pause, dann ist die Eingabeaufforderung wieder im Terminal, im Dummy FHEM.Backup verändert sich das Reading info nicht

dann
perl /opt/fhem/fhem.pl 7072 "set FHEM.Backup error"

Ergebnis: kurze Pause, dann ist die Eingabeaufforderung wieder im Terminal, im Dummy FHEM.Backup ändert sich der state nicht

Irgendwie passiert da garnix  :-\

viegener

OK, wenn keine Fehlermeldung kommt ist zumindest einigermassen wahrscheinlich, dass telenet auf 7072 lauscht und das perl skript durchläuft eigentlich aber auch, dass die entsprechenden devices in fhem existieren und die kommandos auch keine anderen Fehler zurückliefern.

Es wäre mal interessant zu schauen ob die Komandos innerhalb von fhemweb funktionieren:

Also gib doch mal
set FHEM.Backup error
in fhemweb in das Command-Eingabefenster ein und schaue ob sich der status von FHEM.Backup ändert?

Johannes
Kein Support über PM - Anfragen gerne im Forum - Damit auch andere profitieren und helfen können

MichaelO

Zitat von: viegener am 20 Oktober 2015, 02:06:37
Also gib doch mal
set FHEM.Backup error
in fhemweb in das Command-Eingabefenster ein und schaue ob sich der status von FHEM.Backup ändert?

Johannes

Ja, das geht wie erwartet. Da ich mit Telnet noch nicht so viel Erfahrung habe, hab ich mal das List des telnetPort hier angehängt (das password stimmt natürlich mit dem richtigen überein):
Internals:
   CONNECTS   2
   DEF        7072 global
   FD         5
   NAME       telnetPort
   NR         3
   NTFY_ORDER 50-telnetPort
   PORT       7072
   STATE      Initialized
   TYPE       telnet
Attributes:
   password   ######
   room       9.6_System

rapster


MichaelO

Zitat von: rapster am 20 Oktober 2015, 08:07:17
password attr mal löschen z.B :)

Wenn ich das tue (angelegt wurde das attr irgendwie beim Einrichten von fhem selbst mit dem Passwort, mit welchem ich mich auch an der Weboberfläche selbst anmelde), kann dann jeder, der in meinem Netz ist, Dinge mit fhem per telnet machen? Ich kenne mich wie gesagt noch nicht so gut mit RasPi, Linux und fhem aus. Blöd wäre es aber, wenn ich das pwd raus nehme aus dem telnet Device und mir hinterher wer auch immer mein System zerschießen kann.

rapster

automatisch sollte das nicht mit password angelegt werden?

Das ist schon richtig dass dann jeder aus deinem Netz darauf zugreifen kann.

Du kannst es entweder mit dem Attribut allowFrom <ipAdressen> einschränken.
oder dein PW mitschicken:     perl /opt/fhem/fhem.pl 7072 password "setreading FHEM.Backup info backup starting now"


weblint

Auf dem Router kannst du den Zugriff auch reglementieren - Stichwort Kindersicherung

Gesendet von meinem Nexus 5 mit Tapatalk

RasPi an EnOcean/CUL. Using Fs20, EnOcean, HM in Testing

MichaelO

Zitat von: rapster am 20 Oktober 2015, 09:30:37
automatisch sollte das nicht mit password angelegt werden?

Das ist schon richtig dass dann jeder aus deinem Netz darauf zugreifen kann.

Du kannst es entweder mit dem Attribut allowFrom <ipAdressen> einschränken.
oder dein PW mitschicken:     perl /opt/fhem/fhem.pl 7072 password "setreading FHEM.Backup info backup starting now"

OK, das versuche ich mal.

Kann man aus dem bash-Skript heraus auch anders auf die Fhem-Devices zugreifen? Oder geht sowas nur über den perl Aufruf?