Mehrere Dienste stoppen - für Backup

Begonnen von DJCrazy, 09 Februar 2019, 18:35:57

Vorheriges Thema - Nächstes Thema

DJCrazy

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

KernSani

Nun, fhem wûrde irgendwie Sinn machen ;-)


Kurz, weil mobil
RasPi: RFXTRX, HM, zigbee2mqtt, mySensors, JeeLink, miLight, squeezbox, Alexa, Siri, ...

DJCrazy

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?

CoolTux

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.
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

Otto123

#4
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
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

Wernieman

Und eventuell sollte man den Fehlercode ($?) abfangen um zu gucken, ob es überhaupt funktioniert hat.
- 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

PeMue

Und wer startet die Dienste nach dem Backup wieder? Ist m.E. im Skript auch noch nicht drin ...

Gruß Peter
RPi3Bv1.2 rpiaddon 1.66 6.0 1xHM-CC-RT-DN 1.4 1xHM-TC-IT-WM 1.1 2xHB-UW-Sen-THPL-O 0.15 1x-I 0.14OTAU  1xCUNO2 1.67 2xEM1000WZ 2xUniroll 1xASH2200 3xHMS100T(F) 1xRFXtrx 90 1xWT440H 3xTFA30.3150 5xFA21
RPi1Bv2 LCDCSM 1.63 5.8 2xMAX HKT 1xMAX RT V200KW1 Heizung Wasser

Otto123

doch: ${START_SERVICES} start
Aber eben auch unflexibel.

Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

PeMue

man muss aber immer schauen, dass dieselben Dienste wieder gestartet werden, ich hätte dieselbe Variable genommen ...

Gruß Peter
RPi3Bv1.2 rpiaddon 1.66 6.0 1xHM-CC-RT-DN 1.4 1xHM-TC-IT-WM 1.1 2xHB-UW-Sen-THPL-O 0.15 1x-I 0.14OTAU  1xCUNO2 1.67 2xEM1000WZ 2xUniroll 1xASH2200 3xHMS100T(F) 1xRFXtrx 90 1xWT440H 3xTFA30.3150 5xFA21
RPi1Bv2 LCDCSM 1.63 5.8 2xMAX HKT 1xMAX RT V200KW1 Heizung Wasser

Wernieman

Unter der Voraussetzung, das die gleiche Reihenfolge gewünscht ist, was aber eben nicht immer so ist.
- 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

Otto123

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 :-[
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

CoolTux

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
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

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...
- 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

CoolTux

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.
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

DJCrazy

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?

CoolTux

Ganz viele sogar.
dd offline oder mittels tar Befehl und einigen excludes von virtuellen Verzeichnissen.
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

SD-Card offline Sichern. Das Sonstige (Config, fhem etc.) dann im laufendem betrieb. Datenbanken mit Ihren Dump-Befehlen etc.
- 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