Script ausführen verlangt Berechtigung

Einrichtung der openHAB Umgebung und allgemeine Konfigurationsthemen.

Moderatoren: seppy, udo1toni

Antworten
Aggro600
Beiträge: 12
Registriert: 31. Okt 2019 15:38
Answers: 0

Script ausführen verlangt Berechtigung

Beitrag von Aggro600 »

In einer Rule versuche ich ein Script (.sh) zu starten.
Das Script wird gestartet aber es gibt mir einige Fehler:

Code: Alles auswählen

"cp: reguläre Datei '/opt/openhab2/persistence/rrd4j/Anwesend.rrd' kann nicht angelegt werden: Keine Berechtigung"
Mein Script sieht so aus:

Code: Alles auswählen

#!/bin/bash
cp -r /var/lib/openhab2/persistence/rrd4j/* /opt/openhab2/persistence/rrd4j/
cp -r /var/lib/openhab2/persistence/mapdb/* /opt/openhab2/persistence/mapdb/
#echo "Persistence gespeichert"
#sudo reboot
setzte ich noch "sudo" davor bekomme ich diesen Fehler:

Code: Alles auswählen

Wir gehen davon aus, dass der lokale Systemadministrator Ihnen die
Regeln erklärt hat.  Normalerweise läuft es auf drei Regeln hinaus:

    #1) Respektieren Sie die Privatsphäre anderer.
    #2) Denken Sie nach, bevor Sie tippen.
    #3) Mit großer Macht kommt große Verantwortung.

[sudo] Passwort für openhab:

Ich möchte einfach nur, dass wenn ich den Raspberry neustarte das meine Persistence gespeichert wird. Sonst wird sie nur alle 4 Stunden gespeichert.


Mein zweites Problem ist:

Ich möchte das beim neustart und beim Shoutdown die Rule ausgeführt wird.
Macht man das so? Bleibt denn dann noch genug Zeit um die Persistence zu speichern?

Code: Alles auswählen

rule "Soutdown"
when
    System shuts down 
then
.....

heiko74
Beiträge: 14
Registriert: 5. Apr 2019 21:38
Answers: 0

Re: Script ausführen verlangt Berechtigung

Beitrag von heiko74 »

Hallo,

die Fehlermeldung sagt es schon, wie sieht es mit den Berechtigungen aus? Mir fallen deshalb 6 Mögliche Fehlerquellen ein. Darf der Benutzer "openhab":
1. aus dem Verzeichnis "/var/lib/openhab2/persistence/rrd4j/" lesen?
2. aus dem Verzeichnis "/var/lib/openhab2/persistence/mapdb/" lesen?
3. in das Verzeichnis "/opt/openhab2/persistence/rrd4j/" schreiben?
4. in das Verzeichnis "/opt/openhab2/persistence/mapdb/" schreiben?
5. die existierenden Dateien in "/opt/openhab2/persistence/rrd4j/" überschreiben?
5. die existierenden Dateien in "/opt/openhab2/persistence/mapdb/" überschreiben?

Zum zweiten Problem habe ich folgendes Gefunden.
https://www.openhab.org/docs/configurat ... d-triggers
Einfach mal mit Hilfe eines LogEintrages (z.B. logDebug("shutdown", "openHAB shutdown")) probieren.

Aggro600
Beiträge: 12
Registriert: 31. Okt 2019 15:38
Answers: 0

Re: Script ausführen verlangt Berechtigung

Beitrag von Aggro600 »

heiko74 hat geschrieben: 6. Jan 2020 19:50 Hallo,

die Fehlermeldung sagt es schon, wie sieht es mit den Berechtigungen aus? Mir fallen deshalb 6 Mögliche Fehlerquellen ein. Darf der Benutzer "openhab":
1. aus dem Verzeichnis "/var/lib/openhab2/persistence/rrd4j/" lesen?
2. aus dem Verzeichnis "/var/lib/openhab2/persistence/mapdb/" lesen?
3. in das Verzeichnis "/opt/openhab2/persistence/rrd4j/" schreiben?
4. in das Verzeichnis "/opt/openhab2/persistence/mapdb/" schreiben?
5. die existierenden Dateien in "/opt/openhab2/persistence/rrd4j/" überschreiben?
5. die existierenden Dateien in "/opt/openhab2/persistence/mapdb/" überschreiben?

Zum zweiten Problem habe ich folgendes Gefunden.
https://www.openhab.org/docs/configurat ... d-triggers
Einfach mal mit Hilfe eines LogEintrages (z.B. logDebug("shutdown", "openHAB shutdown")) probieren.
Ich habe in die sudoers

Code: Alles auswählen

openhab ALL=(ALL) NOPASSWD: ALL
geschrieben, jetzt klappt es.

Aggro600
Beiträge: 12
Registriert: 31. Okt 2019 15:38
Answers: 0

Re: Script ausführen verlangt Berechtigung

Beitrag von Aggro600 »

Die Regel die beim Booten triggern soll klappt mit
rule "Boot"
when
System started
then

nur das runterfahren geht nicht mit
System shuts down

heiko74
Beiträge: 14
Registriert: 5. Apr 2019 21:38
Answers: 0

Re: Script ausführen verlangt Berechtigung

Beitrag von heiko74 »

Hallo,

der PC fährt nicht mit "System shuts down" herunter. Dies ist ein Trigger um eine rule zu triggern. Damit kann man Aktionen beim herunterfahren hinzufügen.

Füge folgendes in eine Rule ein:

Code: Alles auswählen

rule "Rule shdw"
when
    System shuts down
then
    logDebug("shutdown", "openHAB shutdown")
end
Den Service neu starten mit

Code: Alles auswählen

systemctl restart openhab2
Dann in

Code: Alles auswählen

/var/log/openhab2/openhab.log
nachschauen, ob es eine Zeile mit "openHAB shutdown" gibt.

Antworten