raspiBackup - Entwicklungsumgebung
- Details
- Kategorie: raspiBackup
-
Auch verfügbar:
- Zugriffe: 5983
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.
raspiBackup - Ausgeführte Regressiontests vor der Veröffentlichung einer neuen Release
- Details
- Kategorie: raspiBackup
-
Auch verfügbar:
- Zugriffe: 9015
Jede neue Version von raspiBackup wird vor der Veröffentlichung einem Regressionstest unterzogen. Bedingt durch die vielen Optionen und möglichen Hardware- und Softwareumgebungen ist leider kein vollständiger Regressiontest möglich. Anbei die Beschreibung wie und was genau im Regressiontest getestet wird.
Weiterlesen: raspiBackup - Ausgeführte Regressiontests vor der Veröffentlichung einer neuen Release
raspiBackup - Nützliche Hilfsprogramme
- Details
- Kategorie: raspiBackup
-
Auch verfügbar:
- Zugriffe: 6896
Mittlerweile sind verschiedene Hilfsprogramme zu raspiBackup entstanden. Sie stehen auf github zum Download zur Verfügung:
1) raspiBackupWrapper.sh : Damit kann man vor und nach dem Aufruf von raspiBackup verschiedene Dinge erledigen lassen. Der Code mounted schon die Backuppartition und unmounted sie falls sie vorher nicht gemounted war. Es ist etwas bash Script Kenntnis notwendig um das Script dem eigenen Bedarf anzupassen.
2) raspiBackupNfsWrapper.sh: Es wird von dem Script geprüft ob ein NFS Server verfügbar ist und nur dann raspiBackup gestartet. Ausser ein paar Definitionen des NFS Servers ist nichts anzupassen.
3) raspiBackupRestore2Image.sh: Mit diesem Script kann ein tar oder rsync Backup welches in normalen Backupmodus erstellt wurde in ein dd Backup umgewandelt werden. Dazu wird pishrink benutzt um die Größe des dd Images minimal zu halten. kmbach hat die Erstellung des Scripts angeregt. Das Script erfordert keine Änderungen.
4) raspiImageMail.sh: Dieses Script wurde von dem raspiBackup Benutzer kmbach erstellt weil er wollte, dass er am Ende von dem Aufruf von raspiBackupRestore2Image.sh eine eMail erhalten wollte. Dazu werden die raspiBackup eMail Konfigurationsparameter benutzt. Das Script erfordert keine Änderungen.
raspiBackup - Manueller Restore eines Backups
- Details
- Kategorie: raspiBackup
-
Auch verfügbar:
- Zugriffe: 17039
Ein von raspiBackup erstelltes Backup enthält alle für einen Restore notwendigen Informationen. Der Benutzer Micha wollte aus verschiedenen Gründen den Backup manuell Restoren und hat das freundlicherweise detailiert in einem Kommentar beschrieben. Anbei die Zusammenfassung seiner Beschreibung die sich über 3 Kommentare erstreckt.
Raspberry3 USB Boot Unterstützungstestmatrix
- Details
- Kategorie: raspiBackup
-
Auch verfügbar:
- Zugriffe: 10978
Es existieren die folgenden Umgebungsvarianten für raspiBackup in der Release 0.6.2 welche die Raspberry3 auch im USB Boot unterstützt. Weitere Neuerungen sind auf dieser Seite beschrieben. Der Testaufwand beschränkt die Anzahl der getesteten Variationen. Wer immer eine Variante erfolgreich getestet hat die hier noch nicht als getestet markiert wurde wird gebeten das in einem kurzen Kommentar mitzuteilen damit die Tabelle aktualisiert werden kann. Wer sich nicht sicher ist ob sein Benutzungszenario von raspiBackup abgedeckt wurde kann auch gerne nachfragen.
raspiBackup - Danksagungen
- Details
- Kategorie: raspiBackup
-
Auch verfügbar:
- Zugriffe: 7867
Mittlerweile haben so viele Leute aus der Community durch Kommentare, Erweiterungsvorschläge und Beta- und Fixtests zu raspiBackup beigetragen, dass es an der Zeit wird sie dankend zu nennen. Sich an alle rückwirkend zu erinnern war mir leider in Anbetracht der grossen Anzahl nicht mehr im nachhinein möglich.
raspiBackup - Erweiterungen (Plugins)
- Details
- Kategorie: raspiBackup
-
Auch verfügbar:
- Zugriffe: 25652
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.
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
- 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 - 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.
- temp
- mem
- 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.
raspiBackup - Versionshistorie
- Details
- Kategorie: raspiBackup
-
Auch verfügbar:
- Zugriffe: 32229
Die aktuelle Liste der raspiBackup Releases sowie deren Neuerungen und Bugfixe finden sich hier.
raspiBackup - Nutzung von Synology als Backupspace
- Details
- Kategorie: raspiBackup
-
Auch verfügbar:
- Zugriffe: 54292
Das Backupscript raspiBackup.sh wird immer mehr benutzt um die Backups auf einer Synology abzulegen. Lange besaß ich keine Synology und konnte keinerlei Tests vornehmen um bei Problemen zu helfen. Deshalb erstellte ich diese Webseite um allen Nutzern einer Synology eine Möglichkeit des Informationsaustausches über Kommentare zu dieser Seite zu geben. Wer eine Synology besitzt konnte kurz einen Kommentar posten und sich damit an der Diskussion beteiligen.
Ergebnisse und Empfehlungen, die aus Diskussionen entstehen, wurden natürlich hier dokumentiert.
Mittlerweile besitze ich eine Synology DS418play und bin auch in der Lage genauer zu beschreiben was man tun muss um mit raspiBackup seine Raspberries auf einer Synology sichern zu können. Die Beschreibung erklärt wie man die mit der empfohlenen Backupmethode rsync auf nfs Backupspace sichert.
Weiterlesen: raspiBackup - Nutzung von Synology als Backupspace
raspiBackup - Wiederherstellen eines Backups
- Details
- Kategorie: raspiBackup
-
Auch verfügbar:
- Zugriffe: 85512
raspiBackup kann erstellte Backups naürlich auch wieder restoren. Dabei werden auf der Ziel SD Karte neue Partitionen angelegt und dann mit dem entsprechenden Tool (dd, tar oder rsync) die Daten wieder restored. Das dd Backup kann man auch unter Windows restoren. Alle anderen Backuptypen benötigen eine Raspberry mit einem laufenden Raspbian oder ein anderes System, welches Linux als Betriebssystem hat. Ein manueller Restore der Daten mit den zuvor benutzten Backuptools dd, tar oder rsync ist natürlich auch möglich. Sollte ein externes Rootfilesystem gesichert worden sein wird es auch wieder auf ein externes Gerät zurückgespielt.
In der letzten Zeit bekomme ich immer wieder Issues in github weil der Restore abbricht. Ein Restore sollte immer mit demselben OS vorgenommen werden wie dem mit dem das Backup erstellt wurde. Oftmals kann ein jedes Linux OS genutzt um ein Backup zu restoren aber das kann dazu führen dass der Restore abbricht wenn die Linux Tools die zum Backup und Restore genutzt werden inkompatible Änderungen vorgenommen haben zu dem OS welches zum Restore genutzt wird. Aktuell gibt es eine inkompatible Änderung in sfdisk bei Bullseye zu den Vorgängerversionen. Deshalb lieber immer gleich dasselbe OS zum Restore nehmen!
Seite 4 von 4