FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: harle am 02 August 2017, 07:27:35

Titel: SHELL Skript aus FHEM gestartet läuft nicht durch
Beitrag von: harle am 02 August 2017, 07:27:35
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
Titel: Antw:SHELL Skript aus FHEM gestartet läuft nicht durch
Beitrag von: CoolTux am 02 August 2017, 07:33:28
Gib mal bitte ein list vom Notify. Ich befürchte Du rufst das Skript blockierend auf.
Titel: Antw:SHELL Skript aus FHEM gestartet läuft nicht durch
Beitrag von: harle am 02 August 2017, 07:48:17
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
Titel: Antw:SHELL Skript aus FHEM gestartet läuft nicht durch
Beitrag von: CoolTux am 02 August 2017, 08:15:24
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?
Titel: Antw:SHELL Skript aus FHEM gestartet läuft nicht durch
Beitrag von: harle am 02 August 2017, 08:26:53
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.
Titel: Antw:SHELL Skript aus FHEM gestartet läuft nicht durch
Beitrag von: CoolTux am 02 August 2017, 08:40:05
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
Titel: Antw:SHELL Skript aus FHEM gestartet läuft nicht durch
Beitrag von: harle am 02 August 2017, 08:49:03
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
Titel: Antw:SHELL Skript aus FHEM gestartet läuft nicht durch
Beitrag von: Wernieman am 02 August 2017, 08:54:38
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?
Titel: Antw:SHELL Skript aus FHEM gestartet läuft nicht durch
Beitrag von: Hollo am 02 August 2017, 09:19:41
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. :-)


Titel: Antw:SHELL Skript aus FHEM gestartet läuft nicht durch
Beitrag von: Hollo am 02 August 2017, 09:23:11
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?
Titel: Antw:SHELL Skript aus FHEM gestartet läuft nicht durch
Beitrag von: harle am 02 August 2017, 09:23:54
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
Titel: Antw:SHELL Skript aus FHEM gestartet läuft nicht durch
Beitrag von: harle am 02 August 2017, 09:26:52
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.
Titel: Antw:SHELL Skript aus FHEM gestartet läuft nicht durch
Beitrag von: CoolTux am 02 August 2017, 09:29:34
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.
Titel: Antw:SHELL Skript aus FHEM gestartet läuft nicht durch
Beitrag von: CoolTux am 02 August 2017, 09:32:19
Schau mal hier (https://help.ubuntu.com/community/BackupYourSystem/TAR)
Titel: Antw:SHELL Skript aus FHEM gestartet läuft nicht durch
Beitrag von: Wernieman am 02 August 2017, 09:43:29
Bevor wird Dir jetzt verschiedene Möglichkeiten anbieten, WAS genau willst Du mit dem Backup erreichen?
Titel: Antw:SHELL Skript aus FHEM gestartet läuft nicht durch
Beitrag von: CoolTux am 02 August 2017, 09:57:00
Was alle wollen. Desaster Recovery. Also schnellst möglich nach einem Kartenschaden wieder online gehen.

DENKE ICH
Titel: Antw:SHELL Skript aus FHEM gestartet läuft nicht durch
Beitrag von: harle am 02 August 2017, 10:03:12
Hallo zusammen,

ja also Desaster Recovery trifft es wohl ganz gut :- ))

Ich bin auch noch so viel am "rumtesten", dass ich mir gerne einen "lauffähigen" Stand immer mal wieder sichern möchte.

Am liebsten: einmal einmalig komplett sichern (DD; korrekt?) dann nur das Delta, und das am liebsten direkt auf meinen eigenen Webspace pushen (bei all-inkl).

Aber an der Lösung habe ich noch sehr dran zu knabern.
Titel: Antw:SHELL Skript aus FHEM gestartet läuft nicht durch
Beitrag von: CoolTux am 02 August 2017, 10:11:35
Schau Dir mal an was ich verlinkt habe.
Mach einmalig ein dd und danach das was ich verlinkt habe. Musst halt noch bisschen was drum rum schreiben. Also Script.

Ein Delta auf unterste Ebene ist nicht mit bezahlbaren oder Boardmitteln möglich.
Aber ein täglicher tar ist da schon Recht hilfreich. Und tar kann auch Delta (incremental)