FHEM Forum

FHEM - Hardware => Einplatinencomputer => Thema gestartet von: DJCrazy am 09 Februar 2019, 18:35:57

Titel: Mehrere Dienste stoppen - für Backup
Beitrag von: DJCrazy am 09 Februar 2019, 18:35:57
Hallo zusammen,

ich habe ein Script auf meinem Raspberry mit dem ich den ganzen PI sichere auf meinem NAS.
Nun möchte ich gerne jedoch mehrere Dienste stoppen vor dem Backup.

Wie muss ich das in dem Script unter Zeile 7 eintragen?  (Aktuell stoppe ich nur den SQL Server)

Danke für eure Hilfe.


#!/bin/bash

# VARIABLEN - HIER EDITIEREN
BACKUP_PFAD="/pfad/zum_backup_order"
BACKUP_ANZAHL="5"
BACKUP_NAME="RaspberryPiBackup"
DIENSTE_START_STOP="service mysql"
# ENDE VARIABLEN

# Stoppe Dienste vor Backup
${DIENSTE_START_STOP} stop

# Backup mit Hilfe von dd erstellen und im angegebenen Pfad speichern
dd if=/dev/mmcblk0 of=${BACKUP_PFAD}/${BACKUP_NAME}-$(date +%Y%m%d-%H%M%S).img bs=1MB

# Starte Dienste nach Backup
${START_SERVICES} start

# Alte Sicherungen die nach X neuen Sicherungen entfernen
pushd ${BACKUP_PFAD}; ls -tr ${BACKUP_PFAD}/${BACKUP_NAME}* | head -n -${BACKUP_ANZAHL} | xargs rm; popd
Titel: Antw:Mehrere Dienste stoppen - für Backup
Beitrag von: KernSani am 09 Februar 2019, 18:46:06
Nun, fhem wûrde irgendwie Sinn machen ;-)


Kurz, weil mobil
Titel: Antw:Mehrere Dienste stoppen - für Backup
Beitrag von: DJCrazy am 09 Februar 2019, 19:00:39
Ich möchte gerne statt nur des Deinstes mysql noch weitere beenden.
fhem
habridge

Wie bekomme ich alle 3 in diesen Skript rein damit es alle 3 beendet und danach auch wieder startet?
Titel: Antw:Mehrere Dienste stoppen - für Backup
Beitrag von: CoolTux am 09 Februar 2019, 19:29:04
Ich habe insgesamt 7 Webseiten mit diesen Unsinn gefunden und nicht in einer steht genau beschrieben wie man mehr wie ein Dienst da ein trägt. Da hat einfach nur ein Dussel vom noch dussligen Dussel ab geschrieben. Was für ein Quatsch.
Titel: Antw:Mehrere Dienste stoppen - für Backup
Beitrag von: Otto123 am 09 Februar 2019, 20:11:34
Abgesehen das man es bei drei Diensten einfach in drei Zeilen schreiben könnte - was nicht elegant ist - würde ich doch ein Array und eine Schleife machen?
# Dienste
array=( mysql fhem habridge )
# Alle Elemente im Array durchlaufen
for dienst in ${array[*]}
do
   service $dienst stop
done

....
for dienst in ${array[*]};do service $dienst start;done


Gruß Otto
Titel: Antw:Mehrere Dienste stoppen - für Backup
Beitrag von: Wernieman am 09 Februar 2019, 21:05:47
Und eventuell sollte man den Fehlercode ($?) abfangen um zu gucken, ob es überhaupt funktioniert hat.
Titel: Antw:Mehrere Dienste stoppen - für Backup
Beitrag von: PeMue am 10 Februar 2019, 17:21:54
Und wer startet die Dienste nach dem Backup wieder? Ist m.E. im Skript auch noch nicht drin ...

Gruß Peter
Titel: Antw:Mehrere Dienste stoppen - für Backup
Beitrag von: Otto123 am 10 Februar 2019, 17:44:43
doch: ${START_SERVICES} start
Aber eben auch unflexibel.

Otto
Titel: Antw:Mehrere Dienste stoppen - für Backup
Beitrag von: PeMue am 10 Februar 2019, 18:01:02
man muss aber immer schauen, dass dieselben Dienste wieder gestartet werden, ich hätte dieselbe Variable genommen ...

Gruß Peter
Titel: Antw:Mehrere Dienste stoppen - für Backup
Beitrag von: Wernieman am 10 Februar 2019, 18:12:58
Unter der Voraussetzung, das die gleiche Reihenfolge gewünscht ist, was aber eben nicht immer so ist.
Titel: Antw:Mehrere Dienste stoppen - für Backup
Beitrag von: Otto123 am 10 Februar 2019, 18:36:03
Zitat von: PeMue am 10 Februar 2019, 18:01:02
man muss aber immer schauen, dass dieselben Dienste wieder gestartet werden, ich hätte dieselbe Variable genommen ...

Gruß Peter
Sorry, jetzt habe ich es erst geblickt. Wie Marko schon sagte, das Script ist für die Tonne.
Ich war irgendwie davon ausgegangen, das "oben" und "unten" die gleiche Variable ist  :o :-[
Titel: Antw:Mehrere Dienste stoppen - für Backup
Beitrag von: CoolTux am 10 Februar 2019, 18:40:08
Wenn das beenden von Diensten wichtig ist, sollte auch abgefangen und ausgewertet werden ob das funktioniert hat, erst dann sollte man weiter machen im Skript.

Ich habe auch noch Backupscripte in Bash. Heute würde ich sowas in Perl schreiben  ;D
Titel: Antw:Mehrere Dienste stoppen - für Backup
Beitrag von: Wernieman am 10 Februar 2019, 18:49:42
Nicht die Programmiersprache ist wichtig, sondern die Umsetzung. Bei Backupscripten sollte man z.B. immer Fehlerbearbeitung einbauen ...

Auch sollte ein echte Backup-Idee dahinter stecken. Ein einfaches dd  ist kein solches. Der Author hat schon verstanden, das möglichts wenig laufen sollte, ABER das Betriebsystem läut trotzdem und damit ist dd kein optimales Backup...
Titel: Antw:Mehrere Dienste stoppen - für Backup
Beitrag von: CoolTux am 10 Februar 2019, 18:57:38
Naja das dd im laufenden Betrieb alles andere als optimal ist darüber müssen wir nicht diskutieren.
Und ich gebe Dir Recht, nicht die Programmiersprache ist entscheidend. Ein Backupscript sollte wohl durchdacht sein.
Täglich ein dd ist nicht nötig. Täglich sollten Dumps von Datenbanken gesichert werden und Daten die sich ändern und wichtig sind. Aber sowas kann nur der User immer selbst wissen.
Titel: Antw:Mehrere Dienste stoppen - für Backup
Beitrag von: DJCrazy am 11 Februar 2019, 17:58:16
Danke für eure Zahlreichen Hinweise.

Gibt es den weitere oder andere Lösungsansätze um ein Vollständiges Backup des Raspberry auf ein PI zu sichern?
Titel: Antw:Mehrere Dienste stoppen - für Backup
Beitrag von: CoolTux am 11 Februar 2019, 18:00:06
Ganz viele sogar.
dd offline oder mittels tar Befehl und einigen excludes von virtuellen Verzeichnissen.
Titel: Antw:Mehrere Dienste stoppen - für Backup
Beitrag von: Wernieman am 11 Februar 2019, 18:02:51
SD-Card offline Sichern. Das Sonstige (Config, fhem etc.) dann im laufendem betrieb. Datenbanken mit Ihren Dump-Befehlen etc.