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
Gib mal bitte ein list vom Notify. Ich befürchte Du rufst das Skript blockierend auf.
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
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?
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.
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
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
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?
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. :-)
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?
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
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.
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.
Schau mal hier (https://help.ubuntu.com/community/BackupYourSystem/TAR)
Bevor wird Dir jetzt verschiedene Möglichkeiten anbieten, WAS genau willst Du mit dem Backup erreichen?
Was alle wollen. Desaster Recovery. Also schnellst möglich nach einem Kartenschaden wieder online gehen.
DENKE ICH
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.
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)