Shell Script in Linux und Rückmeldung über Port 7072 mit Passwort

Begonnen von laserrichi, 25 April 2017, 13:58:12

Vorheriges Thema - Nächstes Thema

laserrichi

Hallo,
ich lasse automatisch täglich ein Backup laufen, dazu rufe ich ein Shell Skript im Linux auf, das funktioniert wunderbar.
Wenn ich jedoch den telnet port 7072 mit Passwort dicht mache, bekomme ich vom Skript in Fhem nichts mehr rein.
Wie muss ich da vorgehen, was muss ich da einrichten ?

Bisher läuft es so:
perl /opt/fhem/fhem.pl 7072 "set FHEM.Backup off"
perl /opt/fhem/fhem.pl 7072 "setreading FHEM.Backup info backup done"

irgendjemand eine Idee ?
RaspberryPi 4 Bullseye,Homematic,Z-Wave,Rademacher Duofern,Signalduino,Fritz7590,ESPEasy,Tasmota,Robonect,Kameras,1-Wire,Modbus,Solar,Maranz,VU+,ulanzi tc001 mit awtrix light

betateilchen

#1
Einfachste Variante: einen zweiten Telnet Port einrichten und nur die entsprechenden Befehle erlauben.

"help allowed"

sollte ein paar nützliche Informationen liefern.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

DeeSPe

"globalpassword" statt "password" könnte auch helfen wenn das Skript auf dem selben Host läuft wie FHEM.
Dann wird für lokal laufende telnet Anfragen kein Passwort benötigt.

Gruß
Dan
MAINTAINER: 22_HOMEMODE, 98_Hyperion, 98_FileLogConvert, 98_serviced

Als kleine Unterstützung für meine Programmierungen könnt ihr mir gerne einen Kaffee spendieren: https://buymeacoff.ee/DeeSPe

rudolfkoenig

Und/oder man verzichtet bei der Definition von telnet auf global, dann kann man nur vom localhost eine Verbindung aufbauen.

dev0

Oder Du loggst Dich per perl Script ein und setzt den Befehl ab.

Etwa so (ungestetet aus dem Bauch ;) ). Bei Interesse findest Du Details hier: http://search.cpan.org/perldoc/Net::Telnet

#!/usr/bin/perl
$telnet = new Net::Telnet ( Timeout=>10, Errmode=>'die');
$telnet->open('yourHost_or_IP');
$telnet->waitfor('/Password:/');
$telnet->print('yourPassword');
$telnet->print('set FHEM_COMMAND ', $ARGV[0]); # $ARGV[0] -> command line parameter
$telnet->print('exit');


Torben80

Habe bei mir unter "allowed_telnetPort" alle Passwörter rausgelöscht, dann läuft es einwandfrei.
mfg Torben

dev0

Wenn Du keine Passwortabsicherung benötigst, dann geht das in Ordnung.