SHELL Skript aus FHEM gestartet läuft nicht durch

Begonnen von harle, 02 August 2017, 07:27:35

Vorheriges Thema - Nächstes Thema

harle

Hallo zusammen,

ich habe mir ein Shell Skript gebaut, mit dem ich ein Backup der kompletten SD-Karte mache. Das Skript aus der Shell gestartet läuft fehlerfrei durch.

Wenn ich das Skript aber aus FHEM aufrufe per Notify und Button, dann läuft es nicht ohne Fehler.

Wie muss ich den Aufruf oder die Inhalte des Skripts ändern, damit ich es auch fehlerfrei aus FHEM heraus aufrufen kann? Ich rufe auf mit: backupCommand:starten {system("sudo /opt/fhem/FHEM/runbackup&")}

Das Skript sieht wie folgt aus (bedenkt bitte, ich bin absoluter Linux Anfänger):

# Backup Ordner leeren
rm -r /backup/raspberrypi/*
wait
# Backup startet per Telegram ausgeben
perl /opt/fhem/fhem.pl 7072 "set Telegram msg Starte Backup!"
wait
# Raspibackup starten
sudo raspiBackup.sh -F -m detailed
wait
# FHEM sicherheitshalber manuell starten
sudo /etc/init.d/fhem start
wait
# Backup Ende per Telegram ausgeben
perl /opt/fhem/fhem.pl 7072 "set Telegram msg Backup erfolgreich!"



Vielen Dank und viele Grüße,

Dominik

CoolTux

Gib mal bitte ein list vom Notify. Ich befürchte Du rufst das Skript blockierend auf.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

harle

#2
Hallo CoolTux,

bitte nicht lachen, du hast mich kalt erwischt. Was genau soll ich dir geben?

Meinst du dieses?


Internals:
   DEF        backupCommand:starten {system("sudo /opt/fhem/FHEM/runbackup&")}
   NAME       BackupNotify
   NOTIFYDEV  backupCommand
   NR         52
   NTFY_ORDER 50-BackupNotify
   REGEXP     backupCommand:starten
   STATE      active
   TYPE       notify
   Readings:
     2017-08-02 07:12:01   state           active
Attributes:
   room       88_System


Viele Grüße,

Dominik

CoolTux

Hallo Dominik,

Ja genau das meinte ich.

backupCommand:starten "sudo /opt/fhem/FHEM/runbackup &"


Probiere mal bitte so. Das sollte dann hoffentlich gehen.
Und wenn Du Dein Script auf der Konsole startest, dann klappt alles?
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

harle

Hallo CoolTux,

ich kann nur sagen, vielen Dank, es funktioniert.

Ich habe den Syntax zum Auslösen in FHEM auch nur zusammenkopiert und nie richtig verstanden.

Danke.

CoolTux

Gern geschehen.
Nur damit es nicht unerwähnt bleibt. Es kann zu Problemen führen wenn man dd Backup online machen will. Weiß jetzt nicht was genau Dein Backup der SD Karte bedeutet.



Grüße
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

harle

Hallo CoolTux,

backup bedeutet, ich mache per RaspiBackup ein dd Backup der aktiven SD auf eine andere SD Karte (am RPI per Kartenleser gemounted) angeschlossen.

Dazu stoppen alle Services und danach starten sie wieder.

So müsste ich im Notfall nur die Karten wechseln und hätte meinen letzten Stand.


Viele Grüße

Wernieman

Mit Glück .. nicht unerwähnt:

Dein System läuft noch, d.h. alles was Linux "in Benutzung" hat, kann und wird in einem "Halbgaren" Zustand gesichert. Es kann sein, das es funzt, muß aber nicht.

Da laut Murphy alles auf ein mal schiefgeht, wird genau das passieren, wenn Deine erste SD defekt. Du hast aber, laut Deiner Schilderung, nur eine Version?

P.S.:
Linux läuft auch noch relativ lange mit einem defekten "Speichermedium", d.h. wenn Du alle 24h ein Backup machst, kann es sein, das Du den Fehler mitkopierst ... Du solltest lieber über mehrere Versionen nachdenken, bzw. eine 2. Ablageort wählen. Hast Du einen Netzwerkspeicher?
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

Hollo

Zitat von: Wernieman am 02 August 2017, 08:54:38
...Linux läuft auch noch relativ lange mit einem defekten "Speichermedium", d.h. wenn Du alle 24h ein Backup machst, kann es sein, das Du den Fehler mitkopierst ... Du solltest lieber über mehrere Versionen nachdenken...
Über dieses Problem bin ich vor einigen Wochen gestolpert... System lief eigentlich, Fehlermeldungen beim Start bzw. im Betrieb habe ich nur durch Zufall aus dem Augenwinkel gesehen.
- regelmäßig und vor größeren Änderungen ein Image der SD-Karte gezogen.
- Habe ja ein Backup... also Image auf die SD-Karte gespielt... identisch  :-(
- evtl. die SD-Karte... also Image auf eine neue D-Karte... identisch  :-(
- fschk lies sich im System nicht durchführen

Musste dann die Karte in einem anderen System mounten und fschk drüber laufen lassen, dann liefen beide Karten wieder problemlos.
Habe dann gleich ein frisches Backup gemacht, welches ich zusätzlich behalte.

Auch bei Versionierung weiss man nicht unbedingt, bis zu welcher Version es noch i.O. ist.
Ich habe zusätzlich allerdings auch immer getarte Backups der wichtigen Systemordner zu mehreren Zeitpunkten. :-)


FHEM 6.x auf RPi 3B Buster
Protokolle: Homematic, Z-Wave, MQTT, Modbus
Temp/Feuchte: JeeLink-Clone und LGW mit LaCrosse/IT
sonstiges: Linux-Server, Dreambox, "RSS-Tablet"

Hollo

Zitat von: harle am 02 August 2017, 07:27:35
...Das Skript sieht wie folgt aus (bedenkt bitte, ich bin absoluter Linux Anfänger):
...
Als Anfänger macht es oft Sinn, erstmal bestehende Scripte zu nehmen und zu versuchen, deren Ablauf/Sinn zu verstehen.
Und so einfach wie möglich beginnen und anschliessend entsprechend erweitern.

2 Punkte, die mir aufgefallen sind...
- Du startest FHEM neu, wann hast Du es denn beendet?
- Du startest das Script aus FHEM, machst die Benachrichtigungen über FHEM aber aus dem Script; warum nicht direkt in FHEM?
FHEM 6.x auf RPi 3B Buster
Protokolle: Homematic, Z-Wave, MQTT, Modbus
Temp/Feuchte: JeeLink-Clone und LGW mit LaCrosse/IT
sonstiges: Linux-Server, Dreambox, "RSS-Tablet"

harle

Hallo Werniemann,

ich habe ein Netzlaufwerk über die Fritzbox angeschlossen, falls du das meinst.

Der Speicherort an sich wäre mir egal, den könnte ich ja jederzeit ändern. Ich habe momentan eine 64 GB Karte als Backup-Medium.

Am liebsten hätte ich es auch gehabt das Backup gleich auf meinen Webspace hochzuladen, aber davon hielt mich einmal die Umsetzung ab (ich hatte es nicht geschafft ein Lafuwerk entsprechend zu mounten mit curlftp) und die Zeit für das hochladen.

Ich könnte auch eine 500 GB Festplatte anschließen und mehrere Stände sichern, das wäre alles kein Problem. Beim "auf SD Karte sichern" ging es zuerst nur um Proof-of-Conecpt und die Bequemlichkeit. Aber das Image von der Festplatte auf die SD Karte zu bekommen im Notfall ist ja noch das kleinste Problem.


Viele Grüße,

Dominik

harle

Hallo Hollo,

das Backupskript beendet die Services (u.a. FHEM) und da ich nicht sicher war, ob sie auch sauber wieder gestartet werden habe ich es manuell nochmal angestoßen. Das werde ich nach dem Testen entfernen.

Ebenso die Benachrichtungen. Könnte ich denn theoretisch alle Befehle der Shell auch hinterander in FHEM verketten? Klar, mittendrin stirbt der FHEM Prozess, deshalb war ich nicht sicher, wie ich das "Event" Backup erfolgreich in FHEM aufgreifen kann.

CoolTux

Meine persönliche Empfehlung.

Mache einmalig ein dd Image Backup und zwar offline.
Danach lässt Du nur noch täglich ein tar laufen. Aber auch hier empfiehlt es sich die Dienste welche laufen zu beenden. FHEM, Datenbanken und Webservices u.s.w.

Ich muss mal schauen ob ich nicht doch noch irgendwo mein tar Befehl für ein komplettes Backup liegen habe.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

CoolTux

Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

Wernieman

Bevor wird Dir jetzt verschiedene Möglichkeiten anbieten, WAS genau willst Du mit dem Backup erreichen?
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html