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.

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

 

Beispielplugins

 

  1. Der einfachste Weg ist die Beispielplugins mit dem Installer zu installieren und zu aktivieren:
    raspiBackupInstall -e
  2. Alternativ kann man durch den Aufruf von der folgenden Zeile Beispielplugins in /usr/local/bin auf der Raspberry installierern und dann manuell aktivieren:
    wget http://www.linux-tips-and-tricks.de/raspiBackupSampleExtensionsInstall.sh -O raspiBackupSampleExtensionsInstall.sh -q && bash raspiBackupSampleExtensionsInstall.sh 
  3. 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 und raspiBackup_mem_post.sh

2) raspiBackup_temp_pre.sh und raspiBackup_temp_post.sh

3) raspiBackup_disk_pre.sh und raspiBackup_disk_post.sh

4) raspiBackup_execute_post.sh

 

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

 

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.

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.

Kommentar schreiben

Hinweis

Die eMail ist nicht öffentlich sichtbar und wird benutzt um auf neue Kommentare zu subscriben. Wer seine eMail einträgt stimmt damit gem. Art. 6 Abs. 1 lit. a DSGVOEs der Speicherung der eMailAdresse zu. Die Subscription kann jederzeit mit einem Unsubscribelink der sich in jeder Benachrichtigungsmail befindet gelöscht werden.
Weitere Informationen zum Datenschutz finden sich hier

Spam Kommentare werden gelöscht und nicht veröffentlicht um Subscriber vor Spam zu schützen. Die Überprüfung wird manuell vorgenommen und deshalb dauert es immer etwas bis ein Kommentar veröffentlicht wird.


Kommentare   
0 #4 Philipp 2018-01-14 19:19
Hey framp,

Danke für die schnelle Reaktion und den Fix, funktioniert alles, siehe auch meine Antwort auf Github :)
Schönen Abend wünsche ich noch :-)
zitiere framp:
Moin Philipp,

es gibt einen Fix fuer Dich ;-) Der neue Code steht im github. Bitte lade die beiden Extension Scripts davon runter und kopiere sie in /usr/local/bin. Danach sollte es funktionieren. Lass mich bitte wissen ob alles OK ist damit ich dann den Fix offiziell rausgebe.

Cu framp
Zitieren
+1 #3 framp 2018-01-14 14:24
Moin Philipp,

es gibt einen Fix fuer Dich ;-) Der neue Code steht im github. Bitte lade die beiden Extension Scripts davon runter und kopiere sie in /usr/local/bin. Danach sollte es funktionieren. Lass mich bitte wissen ob alles OK ist damit ich dann den Fix offiziell rausgebe.

Cu framp
Zitieren
+1 #2 framp 2018-01-14 11:58
Moin Philipp,

die Ausgabe von free hat sich in Stretch geändert. Ich passe das heute an.

Cu framp
Zitieren
0 #1 Philipp 2018-01-14 11:25
Morgen :),

vielleicht eine einfache Frage. Unter Raspbian Stretch fehlen dem Beispielplugin mem_pre & mem_post beim auslesen die Werte. Die Ausgabe ist einfach:

"--- RBK1001I: Speicherauslastung - Vor dem Backup - Belegt: MB Frei: MB - Nach dem Backup: Belegt: MB Frei: MB"

Da sie im Oktober aktualisiert wurden vermute ich das sich ein Fehler eingeschlichen hat. Leider finde ich ihn nicht selbst, hat jemand eine Idee?
Zitieren