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 ?
FHEM wartet hier auf eine Rückmeldung, deswegen blockiert es.
Probier mal:
qx("/usr/local/bin/qbackup.sh > /dev/null 2>&1 &")
Gruß
Dan
Leider nicht, hier ein Auszug aus dem Log:
sh: 1: /usr/local/bin/qbackup.sh > /dev/null 2>&1 &: not found
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
So ?
([07:30-15:00]
and [Mediaserver] eq "on"
and [BackupServer] eq "on")
({("/usr/local/bin/qbackup.sh")})
Oder zuviele Klammern ?
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
Danke,
die eckigen Klammern waren zuviel. Jetzt funktioniert es ohne zu blockieren !!