FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: Bartimaus am 15 November 2024, 14:53:06

Titel: Script auf entferntem Server ausführen, blockiert FHEM
Beitrag von: Bartimaus am 15 November 2024, 14:53:06
Servus,

ich führe auf FHEM mit DOIF ein Script (rsync) auf einem entfernten Server aus. Das funktioniert soweit auch ganz gut, jedoch ist FHEM während der Ausführung des Scripts nicht erreichbar. Gibt es hier nicht sowas wie ein "non-blocking" Attribut ?

So siehts aus:
define Do_MediaserverBackup DOIF ([07:30-15:00]\
and [Mediaserver] eq "on"\
and [BackupServer] eq "on")\
({ qx("/usr/local/bin/qbackup.sh") })\
DOELSE

In dem qbackup.sh starte ich per ssh auf dem entfernten Server ein Script mit einer Reihe von "rsync" Befehlen.

Habts hier ein paar Tips ?
Titel: Aw: Script auf entferntem Server ausführen, blockiert FHEM
Beitrag von: DeeSPe am 15 November 2024, 14:58:04
FHEM wartet hier auf eine Rückmeldung, deswegen blockiert es.
Probier mal:
qx("/usr/local/bin/qbackup.sh > /dev/null 2>&1 &")
Gruß
Dan
Titel: Aw: Script auf entferntem Server ausführen, blockiert FHEM
Beitrag von: Bartimaus am 15 November 2024, 15:19:02
Leider nicht, hier ein Auszug aus dem Log:

sh: 1: /usr/local/bin/qbackup.sh > /dev/null 2>&1 &: not found
Titel: Aw: Script auf entferntem Server ausführen, blockiert FHEM
Beitrag von: MadMax-FHEM am 15 November 2024, 15:34:22
Kein qx nutzen ;)

https://heinz-otto.blogspot.com/2018/02/in-fhem-externe-programme-aufrufen.html

Einfach den Aufruf des Shell-Scripts in "Hochkomma" und fertig:

"/usr/local/bin/qbackup.sh"

Wobei ich jetzt nicht weiß, ob es da bei DOIF (wieder) irgendwelche "Sonderlocken" gibt (nutze kein DOIF)...

Gruß, Joachim
Titel: Aw: Script auf entferntem Server ausführen, blockiert FHEM
Beitrag von: Bartimaus am 15 November 2024, 15:39:22
So ?

([07:30-15:00]
and [Mediaserver] eq "on"
and [BackupServer] eq "on")
({("/usr/local/bin/qbackup.sh")})


Oder zuviele Klammern ?
Titel: Aw: Script auf entferntem Server ausführen, blockiert FHEM
Beitrag von: MadMax-FHEM am 15 November 2024, 16:17:28
Zitat von: Bartimaus am 15 November 2024, 15:39:22Oder zuviele Klammern ?
Denke: ja ;)

Aber: ich nutze kein DOIF, daher vielleicht mal (selbst) in die commandref schauen!?

Wenn ich DOIF commandref richtig interpretiere, sollte das reichen/gehen:
("/usr/local/bin/qbackup.sh")

Weil das mit den Anführungszeichen sollte "fhem-Code" sein und da reichen in DOIF die runden Klammern?

Gruß, Joachim
Titel: Aw: Script auf entferntem Server ausführen, blockiert FHEM
Beitrag von: Bartimaus am 15 November 2024, 16:27:18
Danke,

die eckigen Klammern waren zuviel. Jetzt funktioniert es ohne zu blockieren !!