Stern inaktivStern inaktivStern inaktivStern inaktivStern inaktiv

Linux Mint mit Cinnamon Desktop ist ein frei verfügbares Betriesbsystem welches sich als Ersatz für Windows10 anbietet wenn das vorhandene System auf WIndows11 nicht upgraded werden kann da bestimmte Hardwareanforderungen von WIndows11 nicht erfüllt werden. Windows10 weiterhin zu nutzen, obwohl es keine Sicherheitsupdates mehr gibt, ist nicht zu empfehlen. Durch bekannte Sicherheitsprobleme können unbemerkt Windows10 Systeme von Hackern kontrolliert werden und somit Kontendaten, eMails, Kennwörter und vieles mehr in Kenntnis gebracht und missbraucht werden. 

Auch bietet sich Linux Mint Cinnamon an auf kleineren Systemen zu installieren auf denen Windows nur noch sehr langsam läuft. Linux benötigt wesentlich weniger Resourcen als Windows. Diese Bescheibung wurde erstellt anhand eines betagten Lenovo L420 mit Intel i3-2310M mit 2.1GHz, 4GB Hauptspeicher und einer 100GB Platte. Windows10 läuft auf dem System extrem zäh während Linux Mint sehr flüssig läuft. 

Wenn man Linux Mint mit Cinnamon Desktop in Deutsch nutzen will gibt es ein paar Dinge die bei der Installation beachtet werden müssen. Im Folgenden wird die Installation sowie die nachfolgenden Schritte beschrieben.

 

Stern inaktivStern inaktivStern inaktivStern inaktivStern inaktiv

Heute vor 10 Jahren wurde die erste Version von raspiBackup in meinem lokalen cvs abgelegt.

revision 1.1
date: 2013-08-07 21:28:14 +0200; author: framp; state: Exp; commitid: 10052029FC71A98602F;
Initial version
=============================================================================

Dieses cvs existiert leider nicht mehr denn es wäre schon interessant zu sehen wie sich das Script in den 10 Jahren verändert hat. Initial waren es um die 50 Codezeilen. Jetzt sind es 8000 Codezeilen.

Update 5/2025: In der wayback machine habe ich auf dieser Webseite 6/2013 eine initiale Version von raspiBackup gefunden. Ich habe sie hier abgelegt. Es waren nicht 50 sondern 314 lines of code.

 

Bewertung: 5 / 5

Stern aktivStern aktivStern aktivStern aktivStern aktiv

raspiBackup ermöglicht eine Sicherung von Raspberries manuell oder automatisch in regelmäßigen Abständen von einem laufenden System zu erstellen. D.h. es wird die SD Karte im laufenden Betrieb gesichert. Eine ausgelagerte Rootpartition wird dabei mitgesichert. Dabei muss die Raspberry nicht angehalten und manuell eingegriffen werden sondern nur alle wichtigen Services vor dem Backup gestoppt und nach erfolgtem Backup wieder gestartet werden. Backups können auf alle Geräte, die an Linux gemounted werden können, gesichert werden (USB Stick, USB Platte, nfs, samba, sshfs, ...). Als Backupmethoden stehen dd, tar und rsync mit und ohne Hardlinks zur Verfügung. Die erstellten Backups können mit raspiBackup auf beliebigen SD Karten unter Windows oder Linux wiederhergestellt werden. Auf der Quelle können die Raspbian Partitionen entweder beide auf der SD Karte liegen oder die Bootpartition auf SD Karte und die Root Partition auf einem externen Gerät wie z.B. ein USB Stick oder eine per USB angeschlossene SSD. Auch können beide Partitionen ausschliesslich auf einem USB Gerät liegen und mit dem USB Boot Modus gestartet werden.

 

Bewertung: 5 / 5

Stern aktivStern aktivStern aktivStern aktivStern aktiv

Aufrufsyntax und -optionen

raspiBackup muss als Benutzer root oder per sudo aufgerufen werden. Die Aufrufsyntax ist

raspiBackup.sh Option1 Option2 Option3 ... Backupverzeichnis
und ab der Release 0.6.6 geht es auch ohne
 
raspiBackup Option1 Option2 Option3 ... Backupverzeichnis
Stern inaktivStern inaktivStern inaktivStern inaktivStern inaktiv

Normalerweise wird empfohlen nfs statt cifs/samba zu nutzen um die Backups von raspiBackup abzulegen. Dann kann man den Backuptyp rsync nutzen und immer nur ein Detlabackup erstellen statt eines Vollbackups was bei cifs/samba notwendig ist. Aber trotzdem mag es Gründe geben warum man ein raspiBackup auf einem cifs/samba Laufwerk ablegen will. Im Folgenden wird beschrieben wie das bei einer Synology zu konfigurieren ist. Dabei wird AutoFS genutzt.

 

Bewertung: 4 / 5

Stern aktivStern aktivStern aktivStern aktivStern inaktiv

Nun habe ich mich endlich dazu durchgerungen auch mal ein Video zu raspiBackup zu erstellen und auf Youtube zu veröffentlichen.

Behandelte Themen sind

  1. Vorstellung von raspiBackup mit seinen wichtigsten Fähigkeiten
  2. Besuch der wichtigstens Webseiten zu raspiBackup
  3. Vorstellung von github als Fragen- und Probleminteraktionstool
  4. Liveinstallation von raspiBackup mit dem menuegesteuerten Installer

Die dort verwendeten Slides können zum Lesen hier runtergeladen werden.

 

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.

 

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 erstellt regelmäßig beliebige Backupversionen die man im Bedarfsfall zurückspielen kann. Häufig möchte man aber schon den letzten Backup auf einem Medium fertig greifbar haben um ihn im Fehlerfalle sofort einsetzen zu können. raspiBackup bietet keine direkte Möglichkeit einen Clone zu erzeugen. Mit Hilfe eines kleinen Hilfstools ist dieses aber möglich: In diesem wird ein Backup erstellt und anschließend dieser Backup auf ein Medium zurückgespielt. Wird der Backup Typ rsync genutzt ist der Restore nur eine synchronisation der Änderungen von dem letzten Backup zum aktuellen Backup und ist i.d.R. sehr schnell erledigt.

Bewertung: 4 / 5

Stern aktivStern aktivStern aktivStern aktivStern inaktiv

Häufige Fragen zu raspiBackup. Jeder neue Benutzer von raspiBackup sollte sich einmal alle Fragen und Antworten durchlesen.

 

Bewertung: 5 / 5

Stern aktivStern aktivStern aktivStern aktivStern aktiv

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!

 

Unterkategorien