Stern inaktivStern inaktivStern inaktivStern inaktivStern inaktiv

Es besteht die Möglichkeit eigene Codeerweiterungen vor und nach dem Backupprozess des Scripts einzubinden. Dieses ist sinnvoll, wenn eigentlich Änderungen im Backupscript notwendig sind aber dann natürlich nach jedem Update von raspiBackup auf eine neue Version wieder neu eingepflegt werden müssen. Die Extensions (Plugins) sind unabhängig vom jeweiligen Codestand von raspiBackup und deshalb in diesem Falle zu empfehlen.

Verschiedene Plugins stehen zur Verfügung und dienen als Beispiele für eigene Erweiterungen. Durch die ersten wird  die CPU Temperatur sowie die Hauptspeicher- und Backuppartitionsbelegung sowie die Partitionsbelegung vor und nach dem Backup ausgegeben. Die letzte Erweiterung wird nur am Ende des Backups aufgerufen und kann bei Erfolg bzw Misserfolg des Backups unterschiedliche Aktionen auslösen.

Wer nützliche Plugins für die Community erstellt hat kann sie gerne hier in einem Kommentar beschreiben und die Downloadlocation nennen. Sollten Fähigkeiten der Plugins fehlen einfach einen Kommentar dazu hier hinterlassen und ich prüfe in wieweit die fehlende Funktion eingepflegt werden kann.

 

Achtung

Es existiert mittlerweile eine vollständige neue raspiBackup Dokumentation die alle raspiBackup Dokumentation auf dieser Webseite ablöst. Das Thema dieser seite ist darin hier bschrieben.

 

Pluginaufrufstellen beim Backup

Die verschiedenen Plugins werden an folgenden Stellen im Backupverlauf aufgerufen:

eMail Plugin (mem)

Notification (notify) Plugin wenn eingeschaltet (DEFAULT_NOTIFY_START)

Slack, Pushover und Telegram Notifications falls konfiguriert und wenn eingeschaltet (DEFAULT_NOTIFY_START)

BEFORE_STOPSERVICES (Definierte Befehle werden ausgeführt)

STOP_SERVICES (Definierte Befehle werden ausgeführt)

PRE_BACKUP_EXTENSION

READY_BACKUP_EXTENSION

... erstellen des Backups ...

POST_BACKUP_EXTENSION

START_SERVICES (Definierte Befehle werden ausgeführt

AFTER_STARTSERVICES (Definierte Befehle werden ausgeführt)

... Aufräumarbeiten wie das Löschen von obsoleten Backups (kann länger dauern)

FINAL_COMMANDS (ab Release 0.6.8) (Definierte Befehle werden ausgeführt)

eMail (mail) Plugin

Notification (notify) Plugin

Slack, Pushover und Telegram Notifications falls konfiguriert

... Final housekeeping

Exit

 

Pluginaufrufstellen beim Restore

(Verfügbar ab Releae 0.6.7)

Die verschiedenen Plugins werden an folgenden Stellen im Restoreverlauf aufgerufen:

PRE_RESTORE_EXTENSION

... restoren des Backups ...

POST_RESTORE_EXTENSION
 

Beispielplugins

 

  1. Der einfachste Weg ist die Beispielplugins mit dem Installer zu installieren und zu aktivieren. Entweder über die Menufolge Installiere Komponenten->Installiere Beispielerweiterungen oder direkt über die Befehlszeile (Benutze die Option -e)
    raspiBackupInstallUI.sh
    oder
    raspiBackupInstallUI.sh -e
  2. Wer die Beispielplugins manuell installieren will kann das tar mit diesem Link mit einem Browser downloaden oder auch direkt wie folgt auf die Raspberry downloaden und nach /usr/local/bin auspacken.
    wget http://www.linux-tips-and-tricks.de/raspiBackupSampleExtensions.tgz -O raspiBackupSampleExtensions.tgz
    tar -xzf raspiBackupSampleExtensions.tgz -C /usr/local/bin

Dadurch werden die folgenden Scripte in /usr/local/sbin kopiert:

1) raspiBackup_mem_pre.sh and raspiBackup_mem_post.sh - Berichtet Memory Usage der Raspberry vor und nach dem Backup

2) raspiBackup_temp_pre.sh and raspiBackup_temp_post.sh - Berichtet die CPU Temperatur der Raspberry vor und nach dem Backup

3) raspiBackup_disk_pre.sh and raspiBackup_disk_post.sh - Berichtet die Plattennutzung vor und nach dem Backup

4) raspiBackup_execute_post.sh - Wird am Ende des Backups aufgerufen. Hilfreich wenn eine eigene Erfolg/Fehler Benachrichtigungsfunktion genutzt werden soll.
 

Um die Plugins zu aktivieren ist noch folgender zusätzlicher Aufrufparameter bei raspiBackup notwendig.

-N "temp mem disk execute"

 bzw in die Konfigurationsdatei ist folgende Zeile aufzunehmen

DEFAULT_EXTENSIONS="temp mem disk execute"

Details zu den Aufrufparametern bzw den Konfigurationsparametern siehe hier

There is no need for notification extensions for slack, pushover and telegram. Just configure the corresponding config definitions. If you want to use your own notification extension provide a script called raspiBackup_notify.sh.

Die folgenden Extensions können ein pre und/oder post Script haben und müssen raspiBackup_<extension>_pre.sh und/oder raspiBackup_<extension>_post.sh heissen. 

  1. temp
  2. mem
  3. disk

Alle anderen Extensions müssen kein _pre and _post am Ende haben.

For details of the parameters and config file see this page.

Die Plugins erzeugen folgende Meldungen:

--- RBK1001I: Memory usage - Pre backup - Used: 97 MB Free: 130 MB - Post backup - Used: 98 MB Free: 121 MB
--- RBK1000I: CPU temperature pre and post backup: 53.2'C - 55.8'C
--- RBK1002I: Disk usage pre backup: Used: 1.30 TiB Free: 2.18 TiB
--- RBK1003I: Disk usage post backup: Used: 1.30 TiB Free: 2.18 TiB
--- RBK1004I: Free change: -256.00 KiB (0.00 %)

Meldungen

Die Beispielplugins benutzen Meldungen die ab dem Nummernbereich 1000 beginnen wie z.B. RBK1000I. Wer eigene Plugins erstellt sollte sofern sie Meldungen schreiben diese bei 2000 beginnen lassen und nicht den Bereich unter 1999 benutzen.

 

Interface

Das Plugin bekommt im Aufruf den aktuellen Statuscode von raspiBackup mitgegeben. Ein Statuscode von 0 bedeutet in den Postplugins der Backup war erfolgreich. Jeder andere Statuscode bedeutet dass der Backup beendet wurde.

 

eMailPlugin

Ab der Version 0.6.1.1 gibt es ein emaiPlugin D.h. man kann die emailVersendung selbst programmieren. Das ist dann besonders hilfreich, wenn die vom Script unterstützen eMailProgramme den eigenen eMailClient nicht unterstützen. Ausserdem kann das Aussehen der eMail beliebig geändert werden. Eine Beispielplugins die mailx benutzt befindet sich in den Beispielplugins.

Das Mailplugin wird dadurch aktiviert, dass für den Parameter -s mailext definiert wird. Dann wird das Mailplugin mit dem Namen raspiBackup_mail.sh aufgerufen, die dann den Mailversand vornehmen muss. Die folgenden Parameter werden dem Mailplugin Script übergeben:

email="$1"        # target email address
subject="$2"      # email subject
content="$3"      # email contents
parms="$4"        # addtl email parms passed with -E
append="$5"       # file to append

Wenn jemand ein eMailPlugin schreibt wäre es gut wenn dieses Plugin in einem Kommentar am Ende dieser Seite erläutert wird so dass der Code vielleicht mit anderen ausgetauscht werden kann.

 

Hinweise

1) Achtung: Die Extensions laufen mit root Rechten und können deshalb bei Fehlern das laufende System schädigen oder sogar zerstören !

2) Es sind nicht beide Scripts (pre und post) notwendig. Es reicht wenn eines existiert.

3) Zum Testen von Plugins ist der Parameter -F sehr hilfreich. Dadurch wird der eigentliche Backupprozess übersprungen und somit der Scriptdurchlauf sehr schnell.

4) Der Rückgabewert des Backupprozesses wird an das Plugin als Parameter weitergereicht. 0 <=> OK, <>0 Fehler

5) Da die Plugin im Scope von raspiBackup aufgerufen werden, besteht Zugriff auf interne Scriptvariablen. Davon ist abzuraten, da sich die Internas jederzeit ändern können. Aus diesem Grunde ist es auch ratsam eigene Variablen mit einem pluginspzifischen Prefix zu versehen umd mögliche Konflikte mit Variablennamen die von raspiBackup benutzt werden zu vermeiden.

5) Wenn jemand seinen Plugincode sharen möchte geht das einfach über einen Pullrequest auf github. Dort ist aller Plugins im Quellcode verfügbar um ihn zu erweitern und neuen zuzufügen.

Stern inaktivStern inaktivStern inaktivStern inaktivStern inaktiv

raspiBackup wird primär auf einem Linux Desktop entwickelt aber dann natürlich auf einer richtigen Raspberry getestet. Dazu gibt es verschiedene vorerstellt raspbian Images auf einer Platte, die mit raspiBackup restored werden und dann werden die neuen bzw geänderten Funktionen von raspiBackup manuell getestet. Irgendwann steht auch wieder eine neue Version von raspiBackup an allgemein verfuegbar zu machen. Zu Anfang hatte ich dann immer alle möglichen Testvarianten zu Fuss durchgetestet. Aber schliesslich ist das ziemlich zeitaufwändig und es werden SD Karten dabei immer wieder verschlissen. Deshalb werden die Regressiontests in einer auf dem Desktop simulierten Raspberry vorgenommen. Das geht wesentlich schneller und seitdem geht auch nicht mehr so häufig eine SD kaputt.

Auf dem nachfolgenden Photo sieht man eine Raspberry 3B die zum Testen benutzt wird sowie diverse SD Karten und -größen und USB Sticks.

 

Bewertung: 5 / 5

Stern aktivStern aktivStern aktivStern aktivStern aktiv

Die Installation mit dem Installer ist die schnellste Methode. Man kann auch per Befehlszeile raspiBackup sehr schnell in einer Standardinstallation installieren. Wer raspiBackup aber aus verschiedenen Gründen manuell installieren will findet im Folgenden die notwendigen Schritte:

 

Bewertung: 5 / 5

Stern aktivStern aktivStern aktivStern aktivStern aktiv

Wann immer ein Upgrade einer raspiBackup Version vorgenommen wird erfolgt ab der Version 0.6.5 sofort eine Prüfung ob die neue Version ein neues Konfigurationsversion benötigt. Sofern eine neue Konfigurationsversion benutzt wird erfolgt eine automatische Zusammenführung der lokalen Konfiguration mit der neuen Konfiguration in einer neuen Konfigurationsdatei von raspiBackup beim Upgrade. Im Folgenden wird im Detail beschrieben wie diese Zusammenführung vorgenommen wird.

Hinweis

Beim Upgrade einer Version die kleiner ist als 0.6.5 muss die Zusammenführung der Konfiguration nach dem Upgrade auf 0.6.5 leider manuell angestossen werden. Der Aufruf dazu ist

sudo raspiBackup.sh --updateConfig
 

Bewertung: 5 / 5

Stern aktivStern aktivStern aktivStern aktivStern aktiv

Immer wieder wird gefragt wie der rsync Backup funktioniert und wie Hardlinks dazu eingesetzt werden. Der folgende Artikel beschreibt wann Dateien im Dateisystem erstellt und gelöscht werden sowie wann Hardlinks erstellt und entfernt werden.

 

Bewertung: 5 / 5

Stern aktivStern aktivStern aktivStern aktivStern aktiv

Je nachdem welche Backupmethode man bei raspiBackup benutzt sollte man sich fuer das richtige Dateisystem auf dem Backupgerät entscheiden. In der folgenden Tabelle sind die verschiedenen Dateisysteme pro Backupmethode gekennzeichnet.

impossible: nicht möglich, restricted: eingeschränkt möglich, possible: möglich, plus: empfohlen

 

Bewertung: 5 / 5

Stern aktivStern aktivStern aktivStern aktivStern aktiv

Mir ist aufgefallen dass viele Benutzer von raspiBackup dd als Backupmethode benutzen. Insbesondere Nutzer die mehr mit Windows als mit Linux arbeiten da sie einen dd Backup unter Windows mit win32imager oder ähnlichen Tools restoren können. dd kann schon als Backuptool benutzt werden aber es gibt ein gewisses Risiko dabei welches es bei den Backupmethoden tar und rsync nicht gibt. Deshalb empfehle ich jedem Benutzer von raspiBackup doch lieber tar oder rsync zu benutzen.

 

Bewertung: 5 / 5

Stern aktivStern aktivStern aktivStern aktivStern aktiv

raspiBackup ist dafür gedacht ein Backup wieder auf die originale Gerätekonfiguration zurückzuspielen. Es gibt derer 3

1) /boot und / auf SD Karte

2) /boot auf SD Karte und / extern auf einer SSD, USB Platte oder USB Stick (Raspi2 welche keinen USB Boot Mode kann)

3) /boot und / auf einer SSD, USB Platte oder USB Stick (USB Boot Mode auf Raspi3 oder Raspi4)

raspiBackup kann aber auch dafür benutzt werden um sehr einfach von (1) nach (2) oder (3) zu migrieren.

 

Bewertung: 5 / 5

Stern aktivStern aktivStern aktivStern aktivStern aktiv

Von Zeit zu Zeit gibt es eine neue Version von raspiBackup die neue Funktionen, Erweiterungen und auch Fehlerkorrekturen enthält. Diese Version durchläuft einen automatisierten Regressiontest, der die eigentliche Backup- und Restorefunktionialität testet. Danach werden die neuen Funktionen, Erweiterungen und Bug Fixes, die während der Entwicklung schon getestet wurden, noch einmal manuell verifiziert. Danach wird die neue Version als Beta allgemein zur Verfügung gestellt. Dieses ist erkennbar daran, dass dem eMail Subject das Smiley :-D vorangestellt wird. Dann hat jeder Benutzer von raspiBackup die Möglichkeit die zukünftige neue Version vorneweg mit den neuen Funktionen, Erweiterungen und Fehlerkorrekturen zu testen und im Fehlerfalle ein Problemrecord zu erstellen so dass das Problem gefixed werden kann. Es ist einfach nicht möglich alle möglichen Systemumgebungsbedingungen zu testen. Deshalb hilft das Testen der Betaversion auch für die Community sicherzustellen, dass sich möglichst keine Fehler in der neuen Version eingeschlichen haben.

Auf der folgenden Seite wird beschrieben wie man eine Beta installieren kann, sie wieder deinstallieren und Problemberichte erstellen kann.

 

Stern inaktivStern inaktivStern inaktivStern inaktivStern inaktiv

raspiBackup - Unterstützte Hardware und Software

 

raspiBackup wird nur mit dem RaspbianOS und Ubuntu und Raspberry Hardware unterstützt. Es läuft aber auch auf anderer Raspberry kompatiblen Hardware und Linux Distributions erfolgreich. Aber es ist zu beachten dass raspiBackup die beiden Partitionen /boot und /root benoetigt wie sie bei RaspbianOS existieren.

D.h. Du kannst raspiBackup auf dem jeweiligen Environment ausprobieren und wenn es erfolgreich läuft kannst Du Dich freuen und es nutzen. Wenn es aber nicht läuft bzw Fehlermeldungen bringt wird kein Support gegeben. Du kannst einen Issue in github erstellen und das Debuglog beifügen und ich prüfe ob mit ein paar kleinen Änderungen das Problem beseitigt werden kann. Aber auch dann bleibt das Environment nicht unterstützt.

Unter der Tatsache, dass raspiBackup umsonst ist, ist es

1) zu teuer für mich sich alle mögliche Hardware für die Tests anzuschaffen

2) zu aufwändig für mich alle mögliche Hardware- und Softwaretestkombinationen aufzubauen

3) zu aufwändig für mich jeweils alles bei einer neuen Release zu testen

kann ich raspiBackup nur unter den genannten Voraussetzungen unterstüzen.

 

Es besteht die Möglichkeit der Donation und je nach Aufwand besteht die Möglichkeit dass auch ein nicht unterstütztes Environment von raspiBackup unterstützt wird.

 

raspiBackup prüft beim Aufruf ob eine unterstützte Hard- und Software vorliegt und beendet sich sonst. Mit der Option --unsupportedEnvironmentwird diese Prüfung nicht vorgenommen.

Achtung

Es existiert mittlerweile eine vollständige neue raspiBackup Dokumentation die alle raspiBackup Dokumentation auf dieser Webseite ablöst.

 

Bewertung: 5 / 5

Stern aktivStern aktivStern aktivStern aktivStern aktiv

Auf den folgenden Seiten werden Hinweise zu verschiedenen Anwendungen gegeben: Ob und welche Services zu stoppen und zu starten sind, welche Besonderheiten zu berücksichtigen sind, ob und welche Aktionen vor und nach dem Backup und/oder vor und nach dem Restore vorzunehmen sind.

Diese Seite lebt vom Feedback der raspiBackup Nutzer die sich mit den jeweiligen Anwendungen auskennen und genau beschreiben können worauf bei den jeweiligen Anwendungen zu achten ist. Deshalb ist Feedback in Kommentaren erwünscht.

Stern inaktivStern inaktivStern inaktivStern inaktivStern inaktiv

raspiBackup wurde bislang nur für RaspbianOS unterstützt. Mit dem Aufkommen der Raspi mit 8GB und der Raspberry400 ist Ubuntu ein gerne genutztes Betriebssystem auch auf der Raspberry. Deshalb wird raspiBackup im nächsten Release 0.6.9 auch Ubuntu Desktop und Ubuntu Server offiziell unterstützen.

Erfreulicherweise gab es eine Raspi mit 8GB relativ günstig zu erwerben welches ich aus den Spenden zu raspiBackup finanziert habe. Somit konnte ich den Support von raspiBackup für Ubuntu einbauen und testen.

Release 0.6.9 wurde heute published (23.11.2023) und somit unterstützt raspiBackup jetzt auch Ubuntu 22-04, 23-04 und 23-10.

Achtung

Es existiert mittlerweile eine vollständige neue raspiBackup Dokumentation die alle raspiBackup Dokumentation auf dieser Webseite ablöst.

 

Stern inaktivStern inaktivStern inaktivStern inaktivStern inaktiv

raspiBackup bietet mit der Option -M die Möglichkeit eine Art Snapshot zu erzeugen. Dieses sind normale Backups, die aber zwei Besonderheiten haben:

  1. Snapshots werden nicht automatisch gelöscht durch die gewählte Backupstrategie
  2. Snapshots muss man eine Beschreibung als Parameter zur Option -M mitgeben.Diese wird  am Ende des Verzeichnisnamens angehängt.

Somit kann man sehr leicht mal eben ein Snapshot ausser der normalen Reihe erstellen und durch die Beschreibung kann der Grund des Snapshots am Backupverzeichnisnamen erkannt werden. Das ist sehr hilfreich bevor man einen Softwareupdate vornimmt oder eine andere größere Änderung plant. Wenn der Update schief geht hat man schnell wieder den vorherigen Stand hergestellt. Wenn er erfolgreich war löscht man den Snapshot im Backupverzeichnis.

 

Es gibt auch ein Youtube Video in dem die raspibackup Snapshots erklärt werden sowie eine Demo gegeben wird.

Achtung

Es existiert mittlerweile eine vollständige neue raspiBackup Dokumentation die alle raspiBackup Dokumentation auf dieser Webseite ablöst.