Click here to open this page in English 

 

raspiBackup ermöglicht Backups 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. Raspberry 3 USB Boot Images und NOOBS Images werden unterstützt.

Für Freunde von Facebook exisitiert eine Facebookgruppe zu raspiBackup wo aktuelle Neuigkeiten und Randinformationen zu raspiBackup publiziert werden. Wichtige Informationen werden auch auf Twitter #raspiBackup veröffentlicht.

Der Code von raspiBackup ist reiner bash Code und steht unter der GPL auf github zur Verfügung.
 Ab

 

 

Hinweise

  • Klicke Github um auf Github Fragen oder Probleme zu raspiBackup als Issues zu erstellen. Die Issues können gerne auch in Deutsch erstellt werden. So kann ich Fragen und Problemberichte tracken und Du bekommst eine Benachrichtigung über meine Antworten.
  • Klicke Facebook um auf Facebook aktuelle Aktivitäten und Randinformationen zu raspiBackup zu erfahren.
  • Klicke Twitter um raspiBackup auf Twitter zu folgen.
  • Klicke Kommentar um einen Kommentar zu erstellen.

 

Wo lese ich jetzt weiter?

Wer eben mal schnell raspiBackup ausprobieren möchte findet hier eine Schritt für Schritt Anleitung wie raspiBackup in 5 Minuten installiert ist und dann sofort ein Backup erstellt werden kann.

Wer sich einen schnellen Überblick über die Funktionalität von raspiBackup verschaffen will sollte die Zusammenfassung lesen. Im FAQ Teil finden sich häufig gestellte Fragen sowie deren Antworten, die man sich immer durchlesen sollte.

Alle Funktionen und Einsatzgebiete von raspiBackup sind tabellarisch in der Funktionsübersicht zusammengetragen. Wer raspiBackup installieren will findet die Beschreibung bei der Installation. Alle Aufrufparameter von raspiBackup sind einmal alphabetisch sowie thematisch sortiert beschrieben. Wie man ein Backup mit raspiBackup zurückspielt ist hier beschrieben.

Weiterhin gibt es detailierte Informationen zu Erweiterungsmöglichkeiten von raspiBackup, wie man sich bei Fehlermeldungen und Fehlern von raspiBackup verhalten soll und eine detailierte Beschreibung sowie eine Tabelle der Vor- und Nachteile der Backupmethoden und eine Beschreibung der Backupmodi. Eine Liste der Bugfixes und Erweiterungen in den alten und der zukünftigen Versionen von raspiBackup findet sich hier. Wer eine Synology für den Backup benutzen will findet hier nützliche Tipps. Die Entwicklung von raspiBackup wurde durch Feedback, Testen und andere Hilfe von vielen Leuten unterstützt.

Noch weitere Themen finden sich im folgenden Inhaltsverzeichnis.

 

Inhaltsverzeichnis

  1. Zusammenfassung
  2. Funktionsübersicht
  3. Übersichtsbild
  4. Installation
  5. Aufrufparameter (alphabetisch sortiert)
  6. Aufrufparameter (thematisch sortiert)
  7. Erweiterungsmöglichkeiten
  8. Restore
  9. Fehlermeldungen und -suche
  10. Backuptypen und Entscheidungsbaum
  11. Vergleich partitionsorientierter Backup und normaler Backup
  12. Backupverzeichnisstruktur
  13. Haftungsausschluss
  14. Updatestrategie
  15. Regressiontests
  16. Weitere Seiten zu raspiBackup
  17. Häufige Fragen (FAQ) 
  18. Versionshistorie
  19. Benutzung von Synology
  20. Hilfreiche Links zum Thema Backup
  21. Versionshistorie
  22. Danksagungen
  23. Trinkgeld

 Manuelle Installation und Konfiguration



 

 

Zusammenfassung

Eine regelmäßige Sicherung von Raspberry Pis ist wichtig um im Falle von einem SD Kartenausfall oder auch unbeabsichtigten Änderungen immer wieder das System auf einen vorherigen Zustand zurücksetzen zu können. raspiBackup ermöglicht es, dass die Raspberry regelmäßig von sich selbst ein Backup erstellt und auf einem extern angebundenen Speichermedium wie usb Stick und -platte, nfs Server, smbfs/cifs/Samba Laufwerk, sshfs, davfs/webdav (Cloud) usw. (Siehe dazu Wie kann man von der Raspberry Pi auf externe Daten zugreifen) ablegt. Die Benutzung einer Synology als Backupspace ist ebenfalls möglich.

Eine einfache Wiederherstellung des gesicherten Backups nimmt raspiBackup natürlich auch vor.

Vor der Sicherung sollten alle aktiven Services gestoppt und nach dem Backup wieder gestartet werden um einen konsistenten Backup zu erhalten. Die notwendigen Befehle dazu können entweder über Parameter definiert werden oder es kann ein Beispielwrapperscript benutzt werden, welches dann wesentlich mehr und programmatisch gesteuerter Aktionen vor und und nach dem Backup vornehmen kann. Das automatische Mounten und Unmounten des Backupspaces ist schon im Beispielwrapperscript enthalten. Weiterhin gibt es Erweiterungspunkte für Plugins in raspiBackup um eigene Scripts vor und nach dem Backupvorgang einzubinden.

Es stehen zwei Backupmodi zur Verfügung: Im normalen Backupmodus werden die beiden SD Kartenpartitionen mmcblk0p1und mmcblk0p2 gesichert. Sofern die Rootpartition mmcblk0p2 auf eine externe Partition (USB Stick, USB Platte, ...) ausgelagert wurde wird diese externe Partition anstatt mmcblk0p2 gesichert. Im zweiter Backupmodus, dem partitionsorientierten Backupmodus, werden alle bzw eine definierte Anzahl von Partitionen der SD Karte gesichert. Damit kann somit eine NOOBS SD Karte sowie Images mit mehr als zwei Partitionen gesichert werden. 

Als Backupmethoden stehen zur Auswahl: dd Backup, tar Backup, (beides auch gezipped) und ein rsync Backup. Die einzelnen Backupmethoden sind im Detail hier nachzulesen. Dort befindet sich auch ein Entscheidungsbaum um schneller die richtige Backupmethode zu finden. Die maximale Anzahl von vorzuhaltenen Backups ist konfigurierbar. Zur Aktivierung von raspiBackup muss man, nachdem man das Script entsprechend ausgetestet hat, den Scriptaufruf in die Crontab der Raspberry Pi aufnehmen. Danach bekommt man regelmäßig eine eMail zugeschickt, die einen über das Ergebnis des Backups informiert. Die Meldungen von raspiBackup erfolgen in Deutsch oder Englisch
 

Funktionsübersicht

  • Automatische regelmäßige Sicherung einer laufenden Raspberry Pi (Sie sichert sich selbst)
  • Raspberry3 wenn sie ohne SD Karte im neuen USB boot mode betrieben wird ist unterstützt
  • Ähnlich aufgebaute SoCs werden auch unterstützt (Banana Pi, Ondroid, Beagle Board, Cubieboard, ...) Weitere Details dazu hier
  • Raspbian, Arch, Ubuntu, Volumio, NOOBs ...
  • Der partitionsorientierte Backupmodus sichert eine beliebige Anzahl von Partitionen der SD Karte und kann somit NOOBs Images sichern
  • Sicherung und Wiederherstellung ist unabhängig davon welches Betriebssystem (Linux, Windows oder Mac) für den Zugriff auf die Raspberry Pi benutzt wird
  • Windows oder Mac Benutzer nutzen einfach zur Wiederherstellung des Backups die Raspberry
  • Windows Benutzer können dd Backups mit win32diskimager restoren
  • Linux Benutzer können das Backup auf ihrem Linux System wiederherstellen oder auch die Raspberry benutzen
  • Beliebige Backupziele möglich, z.B.
    • Externer USB Stick
    • Externe USB Platte
    • Synology
    • cifs/samba Netzwerklaufwerk
    • nfs Netzwerklaufwerk
    • sshfs Netzwerklaufwerk
    • webdav Netzwerklaufwerk
    • ftpfs Netzwerklaufwerk
    • Generell jedes Device welches unter Linux gemounted werden kann
  • Einfacher Restore der Sicherung
  • Ein externes Rootfilesystem auf einer Platte oder einem USB Stick wird automatisch beim normalen Backupmodus mitgesichert und restored bei tar oder rsync backup (raspiSD2USB.py hilft beim Umziehen)
  • Einsetzbar auch zum Klonen einer Raspberry Pi
  • Einfache Installation. Die wichtigsten Optionen werden abgefragt und in die Konfigurationsdatei geschrieben.
  • Meldungen in Deutsch und Englisch
  • Diverse Aufrufparameter um den Backup zu steuern
  • dd, tar und rsync Backup möglich (-t Option). rsync benutzt bei einer ext3/ext4 Partition Hardlinks um den benötigten Plattenplatz zu minimieren
  • dd und tar kann gezippt werden um die Sicherung noch zu verkleinern (-z Option)
  • pishrink kann zur Verkleinerung von dd Images über ein Wrapperscript benutzt werden
  • dd Backup sichert per Option einschaltbar nur den von den Partitionen belegten Platz und nicht die ganze SD Karte
  • Boot backup benutzt per Option einschaltbar Hardlinks für die sich selten ändernde Bootpartition und spart dadurch Backupspeicherplatz
  • Verschiedene Backuptypen können pro System gemischt werden (z.B. pro Tag ein rsync Backup, jeder Woche ein dd Backup)
  • Automatisches Stoppen und Starten von aktiven Services vor und nach dem Backup (-a und -o Option)
  • Automatisches Anpassen der zweiter Rootpartition wenn die Restore SD Karte kleiner oder größer als die Original SD Karte ist
  • Ein Beispielscript hilft um vor und nach der Backup weitere Aktionen vorzunehmen wie z.B. das Mounten und Unmounten des Backupspaces
  • Einfache Erweiterung der Scriptfunktion durch Plugins (Option -N)
  • Anzahl der vorzuhaltenden Backups ist konfigurierbar (-k Option)
  • eMail Benachrichtigung über den Backuplauf und Backupverlaufsstatus (-e Option)
  • Unterstützte eMailClients: mailx/mail, sendEmail, ssmtp und msmtp (-s Option)
  • Nicht unterstützte eMailClients können durch ein eMailPlugin eingebunden werden
  • rsync benutzt Hardlinks um die Backupgröße zu reduzieren sofern sie vom Backupfilesystem unterstützt sind
  • Automatische Benachrichtigung, wenn eine neue Scriptversion verfügbar ist (-n Option)
  • Einfacher Update von raspiBackup durch die aktuellste Version (-U Option)
  • Einfache Wiederherstellung einer älteren Scriptversion sofern sie mit der Updatefunktion installiert wurde (-V Option)
  • Einfache Verteilung von neuen Scriptversionen auf eine größere Menge von Hosts (-y Option)
  • Beliebige Verzeichnisse und Dateien können aus dem Backup ausgeschlossen werden (-u Option)
  • Sicherung von einer beliebigen Anzahl von Raspberries in einem Backupverzeichnis
  • Unterstuetzung von Volumio

 

Übersichtsbild

raspiBackupOverview

Installation

 

Der schnellste und Standardweg raspiBackup in ca. 5 Minuten zu installieren und dann sofort einen Backup zu erstellen ist auf raspiBackup Schnellstart beschrieben. Wer raspiBackup sehr schnell aus der Befehlszeile mit seiner Standardkonfiguration installieren will findet dort auch die notwendige Information. Wer raspiBackup manuell installieren sollte der Beschreibung auf dieser Seite folgen.


 

Aufrufsyntax und -optionen

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

raspiBackup.sh Option1 Option2 Option3 ... Backupverzeichnis
Es stehen viele Optionen zur Verfügung um das Verhalten von raspiBackup zu steuern. Die wichtigsten Optionen sind in rot gekennzeichnet. Verschiedene Optionen haben noch Parameter, wie z.B. -k 3 oder -m 1.Die Standardoptionen können in einer Konfigurationsdatei /usr/local/etc/raspiBackup.conf überschrieben werden. Eine Beispielkonfigurationsdatei die die Standardoptionen benutzt kann hier heruntergeladen werden. Anschliessend muss sie entsprechend umbenannt und in das richtige Verzeichnis kopiert werden.
 

Alle Optionen die etwas ein- oder ausschalten könne durch ein angehängtes + oder - gezielt ein oder ausgeschaltet werden. Beispiel: Die Option -z sowie die Option -z+ schaltet die Backupcompression ein. Mit der Option -z- wird dagegen die Backupcompression ausgeschaltet. Egal was in der Konfigurationsdatei in dem Parameter DEFAULT_ZIP_BACKUP steht. Damit kann eine Option in der Befehlszeile ausgeschaltet werden obwohl sie in der Konfigurationsdatei eingeschaltet ist.

Neben /usr/local/etc/raspiBackup.conf gibt es weitere Konfigurationsdateien die sofern vorhanden, gelesen werden. Sie werden in folgender Reihenfolge eingelesen und überschreiben die vorherig eingelesenen Optionen. Zuletzt überschreiben die Optionen, die beim Aufruf mitgegeben werden die Konfigurationsoptionen.

Priorität Dateiname
5  /usr/local/etc/raspiBackup.conf
4 ~/.raspiBackup.conf
3 $(pwd)/.raspiBackup.conf
2 -f <configFile>
1  Aufrufoptionen

 

 


Alphabetische Sortierung

Option Funktion Standard Option in der Konfigdatei
-a

Befehle um Services nach dem Backup wieder zu starten. Z.B. bei Samba "service smbd start" (Achtung: Anführungszeichen an Anfang und Ende). Diese Option ist zusammen mit der Option -o obligatorisch.

Mehrere Befehle müssen durch && getrennt werden. Alternativ kann ein Wrapperscript benutzt werden (Beispiel siehe unten). Diese Befehle sollten die exakte umgekehrte Reihenfolge haben wie die Befehle beim Parameter -o.

Beispiel:

-a "service nfs-kernel-server start && service samba"

Soll wirklich kein Service gestartet werden muss der Doppelpunkt ":" als Argument mitgegeben werden.

Siehe dazu auch FAQ #1 und FAQ #18

Achtung: 

Die Befehle werden als root ausgeführt. Es ist kein sudo notwendig.

Keiner

 DEFAULT_

STARTSERVICES

-A
Das Laufzeitlog wird in der email mitgeschickt Nein

DEFAULT_

APPEND_

LOG

-b Blocksize die beim dd Backup benutzt wird 1MB

DEFAULT_

DD_

BLOCKSIZE

-B Die Bootpartition wird nicht per dd sondern per tar gesichert. Nein

DEFAULT_

TAR_

BOOT_

PARTITION_

ENABLED

 -D  Weitere Aufrufoptionen für das dd Backup (z.B. "conv=notrunc,noerror,sync")  Keiner

DEFAULT_

DD_

PARMS

 -e email Addresse, die eine Status-email des backups zugesendet bekommt bzw im Fehlerfalle das Fehlerprotokoll   Keiner

DEFAULT_

EMAIL

-E

Optionale weitere Parameter die im eMailProgrammaufruf mitgegeben werden. Für sendEmail muss er z.B. wie folgt aussehen: "-f absender.mail@absenderdomain -s smtp-server:587 -xu Username -xp Password".

Achtung: Die Parameter für -E müssen in Anführungszeichen " eingeschlossen sein. Speziell zum Testen der eMail Benachrichtigungsfunktion ist der Parameter -F hilfreich.

Achtung: Wenn der Parameter -l 1 benutzt wird steht das Password im Log und sollte vor Verschicken des Logs manuell maskiert werden.

Keiner

DEFAULT_

EMAIL_

PARMS

-f Angabe einer Konfigurationsdatei die als letztes eingelesen wird. Siehe hier alle möglichen Konfigurationsdateien und ihre Einlesereihenfolge. Nein  
-F Fake backup. Diese Option ist hilfreich beim initialen Testen von raspiBackup. Der eigentliche lange Backup wird dadurch nicht angestossen - aber sämtliche Optionsprüfungen wie auch das Senden der BenachrichtigungseMail. Nein  
-g Mit dieser Option wird beim Backup und Restore eine Fortschrittsanzeige angezeigt    
-G Festlegung der Sprache der Meldungen. Mögliche Sprachen sind DE (Deutsch) und EN (English). Interessenten, die die Meldungen in andere Sprachen übersetzen wollen können sich gerne melden

Eingestellte Systemsprache auf der Raspi.

EN (Englisch) wird benutzt falls die Systemsprache nicht unterstützt wird

DEFAULT_

LANGUAGE 

 -h Ausgabe der Aufrufsyntax mit seinen Parametern  Nein  
 -k  Anzahl der Backups, die pro Backuptyp vorzuhalten sind sofern es nicht durch folgende Option überschrieben wird. D.h. es werden 3 dd, 3 tar und 3 rsync Backups vorgehalten.  3

DEFAULT_

KEEPBACKUPS

--keep_<type>

 

Ab Version 0.6.4.3: Anzahl der Backups die für den jeweiligen Backuptypen vorgehalten werden.

<type> kann jeder Backuptyp sein, also dd, ddz, tar, tgz oder rsync

Parameter für Option -k

DEFAULT_

KEEPBACKUPS_

{DD|DDZ|TAR|

TGZ|RSYNC}

 -l

Log level definiert ob ein Debuglog erstellt wird:

- off  -> Es wird kein Debuglog erstellt

- debug -> Es wird ein Debuglog erstellt

Achtung: Die Logausgabe kann in manchen Fällen sensitive Informationen enthalten (Z.B. externe statische IP Adressen, eMailAdressen, Kennwörter für mount Befehle oder email Server, ...) .

 off

DEFAULT_

LOG_

LEVEL

-m

Meldungsdetails 

- minimal -> Nur wichtige Meldungen werden ausgegeben

- detailed -> Viele Meldungen über den Fortschrit werden ausgegeben

minimal

DEFAULT_

MSG_

LEVEL

-M

  Mit der Option kann der Name des Backupverzeignisses modifiziert werden. Das erlaubt einen kurzlebigen nicht permananten Backup mit einem sprechenden Namen zu erstellen.

Beispiel: Der Hostname ist idefix und der Parameter für -M ist "Initial boot from SD". Dann wird folgendes Verzeichnis angelegt:

idefix-Initial_boot_from_SD/idefix-rsync-backup-20170103-170717

   
-n Benachrichtigung wenn eine aktuellere Scriptversion zum download verfügbar ist. Ja

DEFAULT_

NOTIFY_

UPDATE 

-N Aktivierung von eigenen Scripterweiterungen (Plugins). Siehe dazu diese Seite die auch zwei Beispielerweiterungen anbietet, die die CPU Temperatur und die Speicherbelegung vor und nach dem Backuplauf ausgeben. Keiner

DEFAULT_

EXTENSIONS 

-o

Befehle um Services vor dem Backup zu stoppen damit kein inkonsistentes Backup erzeugt wird. Z.B. bei Samba "service smbd stop" (Achtung: Anführungszeichen an Anfang und Ende). Diese Option ist zusammen mit der Option -a obligatorisch.

Mehrere Befehle müssen durch && getrennt werden. Alternativ kann ein Wrapperscript benutzt werden (Beispiel siehe unten). Diese Befehle sollten die exakte umgekehrte Reihenfolge haben wie die Befehle beim Parameter -a.

Beispiel:

-o "service samba stop && service nfs-kernel-server stop"

Soll wirklich kein Service gestoppt werden muss der Doppelpunkt ":" als Argument mitgegeben werden.

Siehe dazu auch FAQ #1 und FAQ #18

Achtung: 

Die Befehle werden als root ausgeführt. Es ist kein sudo notwendig.

Keiner

 DEFAULT_

STOPSERVICES

-P

Einschalten des partitionsorientierten Backupmodus, der alle oder eine bestimmte Anzahl von Partitionen de SD Karte sichert. Dieser Modus sollte bei NOOBS Images für tar und rsync Backups gewählt werden und wenn mehr als zwei Partitionen auf der SD Karte sind. Soll das NOOBS Image per dd gesichert werden so dass es mit win32diskimager zu restoren ist muss dazu der normale Backupmodus mit dd Backup benutzt werden.

Siehe auch den Parameter -T.

Hinweis: In diesem Modus kann keine externe root Parition mitgesichert werden.

nein

DEFAULT_

PARTITIONBASED_

BACKUP 

-s

email Program welches benutzt wird {mail|sendEmail|ssmtp|msmtp}. Für mailx muss auch mail angegeben werden. Für sendEmail muss der Parameter -E zusätzlich genutzt werden für weitere obligatorische Parameter (Siehe Parameter -E Beschreibung für Details)

Es kann auch ein eMailPlugin benutzt werden um eMails zu verschicken. Damit können beliebige weitere eMailClients in raspiBackup eingebunden werden. Der -s Parameter muss dann mailext sein. Details zum eMailPlugin siehe diese Seite

mail

 DEFAULT_

MAILPROGRAM

--systemstatus  Ab version 0.6.3.4 wird eine Liste der der aktiven Services und offenen Dateien in der Debugdatei erstellt    
-t

Typ des Backups, der entweder dd, tar oder rsync sein kann. rsync benutzt bei einer ext3/ext4 Partition Hardlinks um dien benötigten Speicherplatz zu minimieren. Detailinformationen zu den Backuptypen Ein externes Rootfilesystem wird automatisch bei tar oder rsync Backup mitgesichert sofern nicht die Option -P benutzt wird. Mit der Option -z werden die Backups zusätzlich noch gezippt bzw verkleinert.

Hinweis: Beim dd Backup kann durch den Konfigurationsparameter DEFAULT_DD_BACKUP_SAVE_USED_PARTITIONS_ONLY Backup-zeit und -platz gespart werden. Details zu dem Parameter siehe am Ende der Tabelle.

Siehe dazu auch FAQ #16

dd

DEFAULT_

BACKUPTYPE

--timestamps Durch diese Option wird vor jeder Meldung ein Zeitstempel ausgegeben. Keiner

DEFAULT_

TIMESTAMPS

-T

Falls der partitionsorientierte Backupmodus mit der Option -P gewählt wurde kann mit dieser Option definiert werden welche Partitionen gesichert werden sollen. Beispiel: -T "1 2 5" sichert die ersten beiden und die fünfte Partition. Mit * werden alle Partitionen gesichert.

*

DEFAULT_

PARTITIONS_

TO_

BACKUP

-u
Erweiterung der Excludeliste beim Backup um bestimmte Verzeichnisse beim Backup zu ignorieren.
 
Achtung: Die Parameter müssen der jeweiligen Syntax des Backuptools gehorchen und führen sonst zum Abbruch des Backups. Für rsync oder tar könnte die Liste wie folgt aussehen: "--exclude=/backup/* --exclude=/rsnapshot/* --exclude=/www-data*/*". Weitere Informationen zu der Syntax finden sich auf der man Page der jeweiligen Backuptools.
 
Folgende Verzeichnisse werden niemals gesichert:
Der Backupfad der im Aufruf angegeben wurde, /proc/* , /lost+found/* , /sys/* , /dev/* , /tmp/*, /boot/*, /run/* , /proc/* , /lost+found/* , /sys/* , /dev/* , /tmp/* , /boot/* , /run/*
Ausserdem werden alle gemounteten Verzeichnisse von externen Geräten, die nicht auf / gemounted sind, nicht gesichert. Es wird nur die Boot Partition /dev/mmcblk0p1 und die Root Partition /dev/mmcblk0p2 bzw das ausgelagerte Rootverzeichnis auf z.B. /dev/sda1 gesichert.
 
Hinweis für den partitionsorientierten Mode:
 
Wenn die Option -P benutzt wird werden in allen Partitionsbackups die o.g. Verzeichnisse ausgenommen.
 
rsync:
   */verzeichnis/* - Excluded verzeichnis auf allen Partitionen
   mmcblk0p2/verzeichnis/* - Excluded verzeichnis auf Partition mmcblk0p2
 
tar:
   verzeichnis/* - Excluded verzeichnis auf allen Partitionen
 
Keiner

 DEFAULT_

EXCLUDE_

LIST

-U

Die lokale raspiBackup.sh Version wird durch die letzte aktuelle Version ersetzt sofern eine neue Version existiert Die vorherige Version wird als raspiBackup.sh.n.m gesichert wobei n und m die Versionsnumer von raspiBackup ist. Siehe Parameter -V um eine vorhergehende Version wiederherzustellen.

Achtung: Vorher sollte man diese Seite lesen und sich über die Änderungen und Neuerungen informieren.

Aus  
-v Die verwendeten Backuptools tar und rsync zeigen detailierte Informationen an (Verbose mode). Die Option ist besonders nützliche bei initialen manuellen Backuptests um den Backupfortschritt verfolgen zu können. Nein

DEFAULT_

VERBOSE

-V Es wird eine Liste aller existierenden Vorgängerversionen angezeigt und man kann die Version auswählen, die  wiederhergestellt werden soll. Die aktuelle Version wird gesichert und kann dann auch mit dieser Option später wiederhergestellt werden (Siehe auch -U Parameter)  Nein  
--version

Die Version von raspiBackup wird im folgenden Format ausgegeben:

Version: 0.6.3.2 CommitSHA: 8fbcd1a CommitDate: 2018-02-19 CommitTime: 19:18:31#

Das dient im Wesentlichen dazu programmatisch die Versionsinformationen von raspiBackup abzufragen.

Aus  
-y Mit dieser Option wird das aktuelle Script auf alle Hosts kopiert, die in der Konfigurationsdatei definiert sind. Der Zugriff muss per authorized_keys ohne Kennwort möglich sein. Somit lässt sich raspiBackup schnell auf einer größeren Menge von Hosts nach einem Versionsupdate verteilen. Nein

DEFAULT_

DEPLOYMENT_

HOSTS

-z Backup verkleinern mit gzip bei dd oder tar Backup Nein

DEFAULT_

ZIP_

BACKUP

  Nur im Fehlerfalle wird eine eMailbenachrichtigung gesendet. Hinweis: Sollte raspiBackup wegen aussergewöhnlicher Umstände abstürzen kann es durchaus sein dass keine eMail gesendet wird. Nein

DEFAULT_

MAIL_

ON_

ERROR_

ONLY

 

Backupoptionen, die beim rsync Backup genutzt werden. 

Benutzung auf eigene Gefahr !

--delete -aHAXx

DEFAULT_

RSYNC_

BACKUP_

OPTIONS

 

Backupoptionen, die beim tar Backup genutzt werden. 

Benutzung auf eigene Gefahr !

-cpi

DEFAULT_

TAR_

BACKUP_

OPTIONS

 

Backupoptionen, die beim rsync Backup zusätzlich genutzt werden. 

Benutzung auf eigene Gefahr !

Keine

DEFAULT_

RSYNC_

BACKUP_

ADDITIONAL_

OPTIONS

 

Backupoptionen, die beim tar Backup zusätzlich genutzt werden. 

Benutzung auf eigene Gefahr !

Keine

DEFAULT_

TAR_

BACKUP_

ADDITIONAL_

OPTIONS

  Sich selten ändernde Bootparition Backups werden mit Hardlinks verknüpft um Backupspace zu sparen. Voraussetzung: Der Backupspace unterstützt Hardlinks (ext3/ext4 Filesystem). Nein

DEFAULT_

LINK_

BOOTPARTITIONFILES

 

dd Backups sichern nur den von definierten Partitionen belegten Platz. Dadurch benötigt eine 32GB SD Karte, die nur eine 8GB Partition definiert hat, für den Backup nur 8GB und nicht 32GB. Dazu muss aber vermittels gparted oder resize2fs die root Partition entsprechend verkleinert werden, denn üblicherweise füllt die root Partition den gesamten Rest der SD Karte aus.

Siehe dazu auch FAQ #16

Nein

DEFAULT_

DD_

BACKUP_

SAVE_

USED_

PARTITIONS_

ONLY

  Diese Option wird benutzt um an eMails das Log anzuhängen. -a

DEFAULT_

APPEND_

LOG_

OPTION

  Die eMailAdresse des Versenders kann angegeben werden. root@$(hostname)

DEFAULT_

SENDER_

EMAIL

 

Backup Restore Test Reminder Intervall (Einheit: Monate)

 

6

DEFAULT_

RESTORE_

REMINDER_

INTERVAL

  Anzahl der Erinnerungen einen Backup Restore Test durchzuführen. 3

DEFAULT_

RESTORE_

REMINDER_

REPEAT

  Ab Version 0.6.4.3: Die hier definierten Befehle werden vor bzw nach dem Backup vor bzw nach dem Stoppen von Systemservices (Option -a und -o) ausgeführt. nein

DEFAULT_

BEFORE_

STOPSERVICES

DEFAULT_

AFTER_

STARTSERVICES

 

Hinweis: Optionen in der Konfigdatei, die ja oder nein als Parameter benötigen müssen 0 für nein und 1 für ja sein.

Die Optionen für den Restore eines Backups sind auf dieser Seite beschrieben.
 

 



Thematische Sortierung

Erweiterungsmöglichkeiten von raspiBackup

Es bestehen folgende Möglichkeiten die Funktionalität des Backupscripts durch eigenen Code zu erweitern.

1) Benutzung eines selbstgeschriebenen Scriptes welches das Backupscript aufruft und Aktionen vor und nach dem Aufruf vornimmt
 

Dazu gibt es das folgende Beispielscript welches individuelle Anpassungsmöglichkeiten bietet und muss nur geringfügig an den gekennzeichneten Stellen den lokalen Gegebenheiten angepasst werden. Es enthält schon Code, der automatisch Geräte mounted und unmounted. Das Script kann hier runtergeladen werden.

Voraussetzung ist dass der Mountpoint in der /etc/fstab bereits definiert wurde. Anschliessend muss das Script noch an ein paar Stellen den jeweiligen lokalen Gegebenheiten mit einem Editor angepasst werden und dann aktiviert werden mit

sudo mv raspiBackupWrapper.sh /usr/local/bin
sudo chmod +x /usr/local/bin/raspiBackupWrapper.sh

 und dann ist raspiBackupWrapper.sh anstelle von raspiBackup.sh in der Crontab aufzurufen. Der Quellcode vom Wrapperscript findet sich auch auf github und kann durch einen Pull Request erweitert werden.

2) Benutzung von Plugins in die eigene Scripts eingehängt werden

Vor und nach dem eigentlichen Backup können Scripte asl Plugins eingehängt werden. Details dazu finden sich in der Detailbeschreibung zu Plugins

 

Restore

Ein Restore benötigt ein Linuxsystem. Windowsbenutzer oder Macbenutzer können dafür einfach die Raspberry selbst benutzen. Dafür muss nur eine SD Karte mit einem Raspbian gestartet werden, ein SD Kartenleser mit der neuen SD Karte die das Restore erhalten soll angeschlossen werden, der Backup entweder per USB oder Netzwerk gemounted werden und raspiBackup zum Restore gestartet werden.

Das dd Backup kann man auch unter Windows zurückspielen. Weiterhin kann das Backupscript kann auch genutzt werden, um SD Karten zu kopieren: Es wird ein Backup erstellt und dann auf einer anderen SD Karte restored.

Die genaue Aufrufsyntax für den Restore ist hier zu finden.

  

Fehlermeldungen und -suche

 
Die Fehlermeldungen sind i.d.Regel selbsterklärend. Informationsmeldungen haben eine Nummer, die mit I endet. Warnungsmeldungen enden mit W und Fehlermeldungen enden mit E. Eine Liste der am häufigsten auftretenden Fehlermeldungen mit weiteren detailierten Informationen findet sich hier.

Es kann aber vorkommen dass raspiBackup.sh nicht korrekt läuft und Fehlernachrichten schreibt. Das liegt zu 90% Prozent an fehlerhaften Konfigurationen oder Parametrisierung. Die Fehlermeldungen sollten auf die konkrete Ursache hinweisen. Falls nicht helfen folgende Massnahmen den Fehler genauer zu lokalisieren:
 
1) Start von raspiBackup in der Befehlszeile und nicht in der crontab um Fehlkonfigurationen in der Crontab zu eliminieren
2) Es wird eine Logdatei raspiBackup.log bei jedem Lauf im aktuellen Verzeichnis erzeugt bei der zusätzlichen Benutzung des Parameters -l debug (kleines L) beim Aufruf von raspiBackup.sh mit einer Menge detailierte Informationen und man kann man in der Logdatei nach Fehlermeldungen und -ursachen suchen die helfen den Fehler zu lokalisieren. (Je nach Parameter -L befindet sich die Logdatei an anderer Stelle. Siehe die Details dazu oben bei der Parameterbeschreibung für -L. Weiterhin kann auch der Parameter -v weiterhelfen wenn Fehler in den Linux Backuptools auftreten.
3) Falls die Informationen in der Logdatei nicht helfen die Fehlerursache selbst zu finden besteht die Möglichkeit den Fehler zu berichten. Siehe dazu die Hinweise welche Möglichkeiten zur Kontaktaufnahme bestehen. In der Regel erfolgt dann die Bitte das erstellte ausführliche Logfile zwecks Analyse per eMail zuzuschicken.
 

Backupmethoden

Es gibt verschiedene Backupmethoden und eine jede hat ihre Vor- und Nachteile. Anbei eine Auflistung eben dieser für die verschiedenen unterstützten Backuptypen. Es können auch unterschiedliche Backupmethoden kombiniert werden. Sämtliche Backupmethoden können mit raspiBackup vollständig wiederhergestellt werden.
 
Ein dd Backup erstellt ein in sich konsistentes binäres Abbild der SD Karte. Dabei wird immer die ganze SD Karte gelesen und gesichert. Das bedeutet dass auch Daten gesichert werden, die sich nicht geändert haben. Auch bedeutet es, dass zum Restore die SD Karte wieder wenigstens so gross sein muss wie die Original SD Karte. Es wird keine Parition irgendwie in der Größe angepasst. Diese Methode belastet die SD Karte sehr stark. Allerdings kann ein dd Backup unter Windows mit disk32imager wiederhergestellt werden.
 
Ein ddz Backup sichert die gesamte SD Karte, wie ein dd Backup. Diese Methode belastet die CPU stark da die Datenmenge reduziert wird. (Es ist ein dd Backup mit eingeschaltetem Zippen mit -z). Ein Restore mit dem win32diskimager ist nicht möglich.
 
Ein tar Backup sichert die gesamte SD Karte, wobei allerdings das Backup nicht so gross ist wie bei einem dd Backup da nur die Daten gesichert werden, die tatsächlich existieren. Deshalb kann auch ein tar Backup auf eine SD Karte restored werden, die kleiner ist als die original SD Karte - sofern die gesicherten Daten auf die neue SD Karte passen.
 
Ein tgz Backup sichert die gesamte SD Karte, wie ein tar Backup. Diese Methode belastet die CPU stark da die Datenmenge reduziert wird. (Es ist ein tar Backup mit eingeschaltetem Zippen mit -z)
 
Ein rsync Backup sichert außer beim ersten Mal nur die Daten, die sich zum letzten Backup geändert haben. Durch die Hardlinks des ext3/ext4 Dateisystems wird dafür gesorgt, dass trotzdem ein konsistenter Stand des Backups vorliegt. Allerdings werden die Daten nicht komprimiert. Das hat aber wiederum den Vorteil, dass man sehr gezielt einzelne Dateien ganz einfach per copy aus dem Backup zurückholen kann. Diese Methode ist sehr schnell wenn bereits schon einmal ein initiales Backup erstellt wurde.
 
  Vollbackup Backupzeit Backupgröße  Datenkompression CPU belastet Karte belastet Selektiver Restore möglich
Dateisystem
dd  ja lang gross nein mittel hoch nein alle, fat32 nur bis 4GB
ddz ja lang kleiner ja ja hoch nein alle, fat32 nur bis 4GB
 tar  ja mittel  mittel nein nein mittel ja alle, fat32 nur bis 4GB
tgz ja mittel mittel ja ja mittel ja alle, fat32 nur bis 4GB
rsync ja

kurz mit Hardlinks

mittel ohne Hardlinks

klein mit Hardlinks

mittel ohne Hardlinks

nein nein kaum ja ext3/ext4
 

 

decisiontree de.dia

Vergleich partitionsorientierter Backup und normaler Backup

Es existieren zwei Backupmodi:

1) Normaler Backup

In diesem Modus werden die ersten zwei Partitionen (die Bootpartition und die Rootpartition) der SD Karte gesichert. Ausserdem wird beim tar und rsync Backup auch eine externe Rootpartition, d.h. eine auf einen USB Stick oder USB Platte ausgelagerte Rootpartition, gesichert. Mit dem dd Backup kann auch die gesamte SD Karte gesichert werden. Dieses kann man benutzen um z.B. NOOBS Images zu sichern. Falls die Ziel SD Karte beim Restore größer ist als die Quell SD Karte wird automatisch die zweite Partition entsprechend erweitert.

2) Partitionsorientierter Backup

In diesem Modus wird jede auf der SD Karte befindliche oder eine bestimmte Anzahl von Partitionen als tar oder rsync gesichert. Dabei ist die Anzahl der Partitionen beliebig und ermöglich damit auch die Sicherung von NOOBS Partitionen. Falls die Ziel SD Karte beim Restore größer ist als die Quell SD Karte wird der zusätzliche Platz nicht benutzt.

 

Backupverzeichnisstruktur (Normaler Backup)

Jeder Backuplauf erstellt im Backupverzeichnis ein Unterverzeichnis welches folgendes Format hat: <hostname>. Darunter wird ein weiteres Verzeichnis <hostname>-<backuptyp>-<backupdatum> erstellt. Wenn man die Option -M benutzt sieht der Unterordner wie folgt aus: <hostname>-<-M parameter> und darunter wird dann das weitere Verzeichnis <hostname>-<backuptyp>-<backupdatum> erstellt.

Beispiele: Die Raspberry hat den Hostnamen raspberrypi und es wird ein dd Backup am 15.04.2016 um 22:29:00 erstellt. Dann wird ein Verzeichnis raspberrypi erstellt sowie ein Unterverzeichnis raspberrypi-dd-backup-20160415-222900. Gibt man als Parameter für die Option -M "Hello world" mit wird das Verzeichnis raspberrypi-Hello_world sowie das Unterverzeichnis raspberrypi-dd-backup-20160415-222900 erstellt.

Anbei die Verzeichnisstruktur meines Backupservers, der in diesem Falle auch eine Raspberry Pi ist. Verschiedene Backuptypen können pro Pi kombiniert werden. Jedes Backup wird in einem neuen Unterverzeichnis abgelegt.

Pro Raspberry System werden drei bzw fünf weitere Dateien immer zum eigentlichen Backup erstellt und sind notwendig für den Restore wenn es kein dd Backup ist:

  1. .img - Bootpartition der SD Karte
  2. .mbr - Master Boot Record der SD Karte
  3. .sfdisk - Partitionslayout der SD Karte - Ausgabe des sfdisk Befehls
  4. .blkid - (Partitionsorientierter Modus) - Ausgabe des blkid Befehls
  5. .parted - (Partitionsorientierter Modus) - Ausgabe des parted Befehls

root@jessie:/mnt/backup/raspberrypi# tree -L 2
.
├── raspberrypi-dd-backup-20160415-222900
│   └── raspberrypi-dd-backup-20160415-222900.img
├── raspberrypi-rsync-backup-20160416-094106
│   ├── backup
│   ├── bin
│   ├── boot
│   ├── boot.bak
│   ├── dev
│   ├── etc
│   ├── home
│   ├── lib
│   ├── lost+found
│   ├── media
│   ├── mnt
│   ├── opt
│   ├── proc
│   ├── raspberrypi-backup.img
│   ├── raspberrypi-backup.mbr
│   ├── raspberrypi-backup.sfdisk
│   ├── remote
│   ├── root
│   ├── run
│   ├── sbin
│   ├── selinux
│   ├── srv
│   ├── sys
│   ├── tmp
│   ├── usr
│   └── var
├── raspberrypi-tar-backup-20160415-204305
    ├── raspberrypi-backup.img
    ├── raspberrypi-backup.mbr
    ├── raspberrypi-backup.sfdisk
    └── raspberrypi-tar-backup-20160415-204305.tar


Backupverzeichnisstruktur (Partitionsorientierter Backup) 

root@jessie:/mnt/backup/raspberrypi# tree -L 2
.
├── raspberrypi-dd-backup-20160415-222923
│   └── raspberrypi-dd-backup-20160415-222923.img
├── raspberrypi-rsync-backup-20160416-104548
│   ├── mmcblk0p1
│   ├── mmcblk0p2
│   ├── raspberrypi-backup.blkid
│   ├── raspberrypi-backup.fdisk
│   ├── raspberrypi-backup.mbr
│   ├── raspberrypi-backup.parted
│   └── raspberrypi-backup.sfdisk
└── raspberrypi-tar-backup-20160416-114748
    ├── mmcblk0p1.tar
    ├── mmcblk0p2.tar
    ├── raspberrypi-backup.blkid
    ├── raspberrypi-backup.fdisk
    ├── raspberrypi-backup.mbr
    ├── raspberrypi-backup.parted
    └── raspberrypi-backup.sfdisk

 

Haftungsausschluss

Das Backup- und Restorescript raspiBackup wurde für den persönlichen Gebrauch erstellt und, da es sich als sehr nützlich erwies, der Allgemeinheit zur Verfügung gestellt. Es wird im Rahmen des Möglichen die korrekte Funktionalität getestet aber es kann nicht ausgeschlossen werden, dass durch Fehler in raspiBackup die erwartete Funktionalität nicht gewährleistet ist. Jeder, der raspiBackup benutzt tut das auf sein eigenes Risiko. Der Ersteller von raspiBackup ist in keiner Weise haftbar für irgendwelche Fehlfunktionen des Scripts.

 

Updatestrategie

Vor Zeit zu Zeit wird eine neue Version von raspiBackup zum Download bereitgestellt die neue Funktionen, Erweiterungen und kleine Fixes enthält. Auf dieses wird von raspiBackup beim Aufruf und in der gesendeten eMail hingewiesen und man kann dann mit dem Parameter -U die neueste Version runterladen und aktivieren. Die aktuelle Version wird dabei gesichert und mit dem Parameter -V kann jederzeit wieder die vorherige Version aktiviert werden. Vor dem Update sollte man nachlesen welche Änderungen und Neuerungen in der neuen Version enthalten sind. Diese Information dazu findet sich in der Versionshistorie. Sollte einmal ein gravierender Fehler entdeckt werden, wird eine neue Version sofort bereitgestellt.

Jede neue Version wird vor der Veröffentlichung regression getestet. Details zum Regressiontest finden sich hier.

 

Trinkgeld

Immer wieder wird gefragt ob und wie man den Entwicklungs- und Wartungsaufwand sowie Support für raspiBackup honorieren kann. Die auf der Kontaktseite genannte eMail ist PayPal bekannt und ein jeder kann mit einem PayPal Konto an diese eMail ein Trinkgeld geben. Danach wirst Du in diese Liste aufgenommen. Solltest Du das nicht wollen das einfach kurz mitteilen.

Ein raspiBackup Nutzer wollte gerne in Bitcoins ein Trinkgeld spenden. Deshalb habe ich ein Wallet angelegt und die Addresse ist 13aXub22Sy3AvTKkj14yvnUdMQYJQFdbRo

Es gab auch vereinzelt raspiBackup Nutzer die wollten weder Paypal noch Bitcoins nutzen und haben mir dann per Briefpost ihr Trinkgeld zukommen lassen. Die Adresse findet sich auf der Impressumsseite.

 

Weitere Seiten zu raspiBackup

Häufig gestellte Fragen (FAQ)

Versionshistorie von raspiBackup.sh

Sicherung des Backups von raspiBackup.sh auf einer Synology

Alle Artikel zu raspiBackup auf dieser Webseite

 

Hilfreiche Links zum Thema Backup

Shrinking images on Linux

rpi-clone: A shell script to clone a running Raspberry Pi SD card to a USB mounted SD card

sysmatt: Backup, Restore, Customize and Clone your Raspberry Pi SD Cards

Automatic RPi Image Downsizer

How to extend a NOOBS partition

Kommentar schreiben

Hinweis

Spam Kommentare werden gelöscht und nicht veröffentlicht. Die Überprüfung wird manuell vorgenommen und deshalb dauert es i.d.R. zwischen ein paar Stunden bis zu einem Tag bis ein Kommentar veröffentlicht wird.

Kommentare   
#1135 Michael 2019-06-15 11:57
zitiere Michael:

Hallo framp,

ich habe es so verstanden dass mit cifs extensions hardlinks unterstuetzt werden. aber ich schaue noch mal nach der meldung (rbk0196w).

viele gruesse,
Michael


ich bin jetzt auf nfs umgestiegen, bzw. parallel zu cifs. ntfs war ein fehler von mir, das ist nur das letzte backup auf den usb traeger. dsa raspi backup geht auf ein ext.
ich glaub so ist es einfacher, nun funktioniert es zumindest wie gewollt. danke!
Zitieren
#1134 framp 2019-06-14 12:42
Moin Michael,

raspiBackup testet ob Hardlinks auf der Backuppartition erstellt werden können und wenn nicht wird die Meldung geschrieben und dann ohne Hardlinks Option rsync aufgerufen.
Ich kenne keine CIFS Extensions. Aber wenn die Hardlinks unterstützen wäre das natürlich toll. Wenn Du das hinbekommen solltest lass uns wissen wie Du es konfiguriert hast :-)

Cu framp
Zitieren
#1133 Michael 2019-06-14 12:24
zitiere Michael:
Moin Michael,

Dein Problem ist ein Setupproblem mit cifs bzw rsync - ..

Cu framp


Hallo framp,

ich habe es so verstanden dass mit cifs extensions hardlinks unterstuetzt werden. aber ich schaue noch mal nach der meldung (rbk0196w).

viele gruesse,
Michael
Zitieren
#1132 Michael 2019-06-13 10:32
Moin Michael,

Dein Problem ist ein Setupproblem mit cifs bzw rsync - kein Problem von raspiBackup ;-)

cifs unterstuetzt keine Hardlinks (Du solltest die Meldung RBK0196W bekommen). D.h. raspiBackup wird dann trotzdem sichern, aber immer alle Daten vollstaendig kopieren. Wenn Du die Vorteile von rsync wie kurze Sicherungszeit und wenig Speicherplatzverbrauch haben moechtest musst Du nfs benutzen.

Wenn Du trotzdem cifs benutzen willst musst Du alles richtig konfigurieren. cifs ist leider nicht leicht zu konfigurieren und ich bin da kein Spetzel. Du benutzt auch ntfs von Windows was auch eine Problemursache sein kann.

Ich empfehle entweder auf nfs umzustellen oder in einem Raspberry- oder Linux-Forum nach Antworten bei cifs und ntfs zu suchen oder um Hilfe fragen. Versuche es doch mal hier. Da wird Dir sicherlich geholfen.

Cu framp
Zitieren
#1131 Michael 2019-06-12 23:57
Guten Abend, zusammen.
Ich habe ein Problem und bin nahe am verzweifeln. Ich moechte raspibackup verwenden und zwar soll das backup als rsync (fuer zeitersparnis und leichteren zugang auf einzelne dateien) durchgefuehrt werden und das soll auf ein ueber cifs gemountetes ntfs netzwerkshare gespeichert werden. aber ich bekomme dann von rsync beim chown bei vielen dateien/foldern ein permission denied 13. ich habe jetzt schon vieles ausprobiert aber noch keine funktionerende loesung gefunden. kann mir bitte einer weiterhelfen?
viele gruesse,
Michael
Zitieren
#1130 framp 2019-06-12 10:33
Moin grallmo,

raspiBackup unterstuetzt das nicht. Du kannst aber das Hilfsscript raspiBackupWrapper.sh benutzen, erweitern und nach dem Backup das tar File mit split zerlegen. Vor dem Restore musst Du dann aber auch das tar File wieder zusammensetzen.

Cu framp
Zitieren
#1129 grallmo 2019-06-12 06:42
Geniales Tool, vielen Dank dafür!

Eine Frage noch: Ist es möglich ein tar-Backup in mehrere Teile zu splitten, z. B. 1 GByte große Files?
Zitieren
#1128 framp 2019-06-11 14:15
Moin Heinz aus Kiel,

vielen Dank fuer die PM aber ich benoetige das Debuglog - nicht nur die Meldungen - um rauszufinden warum mit /dev/sda2 gearbeitet wird.

Cu framp
Zitieren
#1127 Heinz aus Kiel 2019-06-11 12:24
Hallo Framp,

anbei eine Verständnisfrage: Bei der Erstellung eines rsync Backups mit den nachfolgendenParametern: "sudo raspiBackup.sh -a : -o : -m detailed -v -l debug -n -s msmtp" und einer unveränderten "raspiBackup.conf" Datei erhalte ich per eMail permanent einen etwas merkwürdigen Statusverlauf. Ich habe Dir das Log ungekürzt via PM zukommen lassen.

......
--- RBK0051I: Master boot backup wird von /media/usb_mem_stick_backup/Pi-Hole-on-Raspi/Pi-Hole-on-Raspi-rsync-backup-20190610-130714/Pi-Hole-on-Raspi-backup.mbr auf /dev/sda zurückgespielt.
....

Ich verstehe den Restore-Prozess nicht. sda Disk (sda1) ist ein 64 GB lokaler USB-Stick mit sauberen ext4 Dateisystem als Backup Ziel. Weitere Partitionen sind nur die der SD-Karte (FAT32, 83h). /dev/sda2 gibt es bei mir nicht.

Könntest Du meinem Verständnis auf die Sprünge helfen?

Liebe Grüße aus Kiel,

Heinz
Zitieren
#1126 framp 2019-03-17 19:48
Moin John,

Du meinst also dass Du irgendwann mal in irgendeinem rsync Backup eine Datei geloescht hast ? Nein, es besteht keine Moeglichkeit rauszufinden welches Backup dadurch inkonsistent wurde.

Das ist ein kleiner Nachteil von rsync Backups. Bei einem tar oder dd Backup kannst Du nur mit groesserem Aufwand Dateien aus dem Backup loeschen. Bei rsync geht das sehr leicht und schnell. :-*

Cu framp
Zitieren
#1125 john 2019-03-17 17:42
Hallo framp

ich nochmal : )

Gibt es eine Möglichkeit, die Konsitenz des Backups anhaned von den Counts zu überprüfen oder sonstwie auf der Kommandozeile ohne zu Restoren ?

Glaube nämlich das ich mal aus versehen was gelöscht habe.

grüsse john
Zitieren
#1124 john 2019-03-06 21:59
Hallo Framp

Danke dir für den Link und die Erklärung

und nich muss mich korrigieren

ich hatte es anscheinend noch nicht ganz verstanden ;)

grüsse john
Zitieren
#1123 framp 2019-03-06 21:05
Moin john,

eine jede Datei hat einen Handlinkzaehler (Das ist die erste Zahl die Du bei Code:ls -la siehst). Wenn Du eine Datei loeschst wird der Zaehler um eins verringert. Wenn er dann Null ist - also nirgendwo ein Hardlink auf die Datei existiert wird sie geloescht.

D.h. wenn der Vollbackup geloescht wird werden alle Zaehler in Deinem Beispiel von 4 auf 3 erniedrigt und die Dateien dann auch nicht geloescht. Bei einer Datei die beim zweiten Backup schon nicht mehr existierte wird der Zaehler beim Loeschen auf Null reduziert und dann die Datei im Filesystem auch wirklich geloescht.

Somit ist gewaehrleistet dass auch beim Loeschen des Vollbackups alle folgenden Backups ueber Hardlinks konsistent sind.

Du kannst auch mal diesen Thread lesen wo schon mal jemand eine Frage zu Hardlinks hatte und ich wohl auch Erfolg hatte bei der Erklaerung,

Cu framp
Zitieren
#1122 john 2019-03-06 20:01
Hallo Framp

Ich verstehe schon das prinzip von Hardlinks.

Aber wenn ich jetzt zb eine Vorhaltezeit von sagen 3 Versionen habe.

Und sagen wir ich mache 4 Backups :

1. Das vollbackup
2. Backup mit Hardlinks auf die vorh. Source
3. Backup mit Hardlinks auf die vorh. Source
4. Backup mit Hardlinks auf die vorh. Source

Soo.. jetzt ist es ja so, dass nach dem 4ten Backup das Script das erste löscht.
Aber ich verstehe nicht, wie ich jetzt noch die konsistente Backupversion habe.

Rsync hat ja von Haus aus soviel ich weiss keine Option für Keep x Backups.

Kannst du mir das evtl.. nochmal erläutern

grüsse john
Zitieren
#1121 framp 2019-03-06 19:11
Moin Bernd,

bei mir dauert ein Backup per rsync von 7GB etwa 30 Minuten. Wenn ich das mal als Massstab nehme muesste es bei Dir ca 1 Stunde dauern. Allerdings musst Du beruecksichtigen, dass der erste Backup mit rsync alle Daten uebertraegt waerend bei allen folgenden Backups nur noch die Aenderungen uebertragen wird. Wenn das jetzt Dein erstes Backup war starte noch mal eines. Das sollte dann viel schneller gehen.

Allerdings finde ich 6 Stunden fuer 15GB trotzdem ziemlich lange :sigh:

An der SD Karte wird es nicht liegen. Wohl eher an der NAS Konfig. Ich benutze eine Raspi mit Stretch als nfs Server. Wenn Du z.B. eine Synology oder einen anderen NAS provider benutzt koennte ich mir vorstellen, dass man da tunen kann/muss. Just my 2 cents ;-)

Cu framp
Zitieren
#1120 Bernd 2019-03-06 17:24
Wie lange dauert denn ungefähr ein Backup?

Ich hab 15GB auf meiner SD-Karte und es hat 6 Std gedauert es auf mein NAS im LAN zu sichern (rsync)

Ist das normal oder ist vielleicht meine SD Karte schwach auf der Brust?
Zitieren
#1119 framp 2019-03-05 21:10
Moin john,

rsync benutzt unter der Decke Linux Hardlinks. D.h. das Linux ext3/4 Filesystem sorgt dafuer dass nicht mehr benoetigte Dateien freigegeben werden. Beim Backup wird ein Zaehler im Dateisystem erhoht wenn eine Datei sich nicht geaendert hat und ein Hardlink darauf erstellt wurde. D.h. wenn Du eine Backupversion loeschst wird der Zaehler erniedrigt. Damit ist der Hardlink auf die Dateiversion aber immer noch gueltig solange es Backupversionen gibt die die Datei per Hardlink verlinken

Kurzum: Das Dateisystem sorgt dafuer dass eine Datei erst geloescht wird wenn sie nicht mehr in einer Backupversion verlinked wird ;-)

Falls meine Erklaerung nicht reicht suche einfach mal im Netz nach Hardlinks :-)

Cu framp
Zitieren
#1118 john 2019-03-05 20:53
hallo framp

Ich habe mal ne frage zu rsync.

Wenn ich ein script laufen lasse, mit einer Vorhaltelimit von sagen wir 3 Versionen und es wird immer das letzte gelöscht, dann ist doch irgendwann die Linkkette auf die Source Version unterbrochen oder?
Da sie es nicht mehr gibt

Oder verstehe ich da was falsch bzw. übersehe ich was.

grüsse john
Zitieren
#1117 john 2019-03-02 02:06
jo isn argument

kann man so sehen

grüsse
Zitieren
#1116 framp 2019-02-28 19:23
Moin John,

vielen Dank fuer Dein Feedback.

Wenn jemand eine eMailAdresse angibt macht er das weil er eine eMail erhalten will. Deshalb finde ich das absolut berechtigt raspiBackup sofort mit einer Fehlermeldung abzubrechen um dem Benutzer eine Fehlkonfiguration zu melden.
Klar wird er spaeter auch feststellen dass er keine eMail bekommen hat. Aber eine Fehlermeldung sollte immer sofort dann erzeugt werden wenn ein Fehler festgestellt wird.

Cu framp
Zitieren
#1115 john 2019-02-27 22:29
Sorry ich war wohl etwas schnell.

Das ist natürlich blödsinn. Ich meinte wenn kein mail programm installiert ist, führt er das backup nicht aus, wenn eine mail adresse gesetzt ist.

grüsse john
Zitieren
#1114 framp 2019-02-27 17:02
Moin john,

es tut mir leid aber ich verstehe nicht wie eine Mailadresse dazu fuehren kann dass raspiBackup nicht startet. Wieso und wie aenderst Du das Script raspiBackup? Du musst mir das Szenario etwas genauer erklaeren.

Cu framp
Zitieren
#1113 john 2019-02-27 13:24
hallo framp

Wenn im Script eine Mail Adresse steht, führt er das Script nicht aus.

Wäre es da nicht besser nur eine Warnung auszugeben und das Script trotzdem zu starten

grüsse
Zitieren
#1112 framp 2019-02-18 19:15
Moin Philipp,

auf der Kontaktseite steht meine eMail ;-)

Cu framp
Zitieren
#1111 Philipp 2019-02-18 09:20
zitiere framp:
Moin Philipp,

vermutlich geht es erst Mal nicht. Du kannst es probieren und mir das Debuglog zuschicken. Ich sehe dann rein ob nur eine kleine Anpassung notwendig ist.

Cu framp


DANKE!! Wo kann ich das debug log hinschicken?
Zitieren
#1110 john 2019-02-16 19:19
Ah ok dann muss ich mal nach mehr infos suchen was sd card health angeht

danke für die infos

grüsse
Zitieren
#1109 framp 2019-02-16 19:10
zitiere john:

ah ok Kennst du glusterfs ?

Nein. Aber das scheint mir nur den Dateifailover zu erledigen. Den Raspifailover musst Du anders handhaben.
Zitat:

Nochwas neue Speicherkarten erkennen ja soviel ich weiss ihren Health Status und erlauben wenn es zu Ende geht keine Operationen mehr zu.
Bricht bei einem solchen Fall das Update ab bevor es zu einem Schaden kommt ?
Welchen Update meinst Du und welchen Schaden? Meinst Du ob der Backup abbricht? Wenn es Lesefehler gibt - ja. Wenn es aber schon Bits gibt auf der SD Karte die nicht mehr umspringen - nein.

Beim Restore kann es irrwitzige Effekte haben wenn die SDkarte schon einen Weg hat :-? . Die Option -C hilft da ein wenig denn sie prüft auf Badblocks.

Cu framp
Zitieren
#1108 john 2019-02-16 18:52
zitiere framp:


Ich wuerde Docker und Kubernetes dafuer benutzen.

Cu framp


ah ok Kennst du glusterfs ?

Überlege gerade falls ich sowas aufziehe es damit zu versuchen. Bin aber nicht so versiert und muesste da noch ein bisschen recherchieren.

Mal kucken

Glaube vorerst reicht den Script völlig aus mit den 2 Jobs per DD und rsync.

Nochwas neue Speicherkarten erkennen ja soviel ich weiss ihren Health Status und erlauben wenn es zu Ende geht keine Operationen mehr zu.
Bricht bei einem solchen Fall das Update ab bevor es zu einem Schaden kommt ?

grüsse
Zitieren
#1107 framp 2019-02-16 18:29
Moin john,

zitiere john:
Denke aber da mach ich einmal 2 configs und ändere ggf. mal die parameter ( ist ja schnell passiert mit tools wie nano oder vim) das kommt ja nicht so oft vor und kaputt machen kann ich da auch weniger bzw. was vergessen.

Es fuehren bekanntlichermassen viele Wege nach Rom. Waehle den Dir verstaendlichsten :-)
Zitat:
Btw. hast du mal an sowas wie ein Failover Szenario nachgedacht ? oder würde das die Intention von deinem script sprengen.
Du meinst wenn eine Raspi ausfaellt soll eine andere die Funktion uebernehmen und dazu willst Du raspiBackup benutzen?

Das ist schon ein sehr anspruchsvolles Szenario. raspiBackup ist dafuer nicht vorgesehen. Es erledigt nur einen einfachen Backup/Restore.

Ich wuerde Docker und Kubernetes dafuer benutzen.

Cu framp
Zitieren
#1106 john 2019-02-16 18:19
Hm....

Da sind wir wieder bei dem Thema das ich nicht genau weiss, welcher parameter in der config zu welchem part gehört. Könnte die jetzt alle mühsam raussuschen.

Denke aber da mach ich einmal 2 configs und ändere ggf. mal die parameter ( ist ja schnell passiert mit tools wie nano oder vim) das kommt ja nicht so oft vor und kaputt machen kann ich da auch weniger bzw. was vergessen.

Btw. hast du mal an sowas wie ein Failover Szenario nachgedacht ? oder würde das die Intention von deinem script sprengen.

grüsse
Zitieren
#1105 framp 2019-02-16 17:41
Moin john,

nein. Du kannst auch mit der Option -k die Vorhaltebackups definieren. D.h. Du benutzt einmal Code:-k 10 -t dd sowie Code: -k 30 -t rsync ;-)
In der naechsten Version von raspiBackup kannst Du auch die Vorhaltebackups pro Backuptyp definieren. Dann musst Du nur einmal fuer dd 10 und fuer rsync 30 Backups in der Konfig definieren und brauchst das nicht mehr als Aufrufparameter. :-)

Cu framp
Zitieren
#1104 john 2019-02-16 17:22
ach so dann erkennt das script die optionen für dd oder rsync automatisch ?

das wäre ja noch einfacher aber manche optionen überschneiden sich doch dann ( zb. vrohaltebackups etc.)

oder sehe ich das falsch

grüsse
Zitieren
#1103 framp 2019-02-16 16:46
Moin john,

Zitat:
ich bevorzuge die option mit der config, da ich auch nicht genau weiss, was für parameter als gegenpart für die config nötig sind ( könnte man ja evtl. mit # in die config schreiben, dann kann man es gleich sehen).
Das verstehe ich nicht so ganz.

Ich wuerde eine Konfig erstellen in /usr/local/etc/raspiBackup.conf wo alle Optionen konfiguriert sind. Dann im CronAufruf die jeweils geaenderten Optionen im Aufruf mitgeben, also z.B.
Code:0 5 * * 0 root /usr/local/bin/raspiBackup.sh -t dd
0 5 * * 6 root /usr/local/bin/raspiBackup.sh -t rsync

Ansonsten muesstest Du falls Du mal etwas an der Config aenderst immer beide Configdateieln in Sync halten.
Aber wenn Du es trotzdem so machen moechtest koennte es wie folgt aussehen:
Code:0 5 * * 0 root /usr/local/bin/raspiBackup.sh -f /usr/local/etc/raspiBackup_DD.conf
0 5 * * 6 root /usr/local/bin/raspiBackup.sh -f /usr/local/etc/raspiBackup_RSYNC.conf


Cu framp
Zitieren
#1102 john 2019-02-16 16:25
Hallo framp

ich bevorzuge die option mit der config, da ich auch nicht genau weiss, was für parameter als gegenpart für die config nötig sind ( könnte man ja evtl. mit # in die config schreiben, dann kann man es gleich sehen).

Wie würde eine Zeile in crontab dann aussehen, wenn ich eine Datei als config mit starten will ?

grüsse
Zitieren
#1101 framp 2019-02-15 21:13
Moin Philipp,

vermutlich geht es erst Mal nicht. Du kannst es probieren und mir das Debuglog zuschicken. Ich sehe dann rein ob nur eine kleine Anpassung notwendig ist.

Cu framp
Zitieren
#1100 Philipp 2019-02-15 10:33
Hi, ich nutze Dein script für einen Raspi mit SD Karte. Jetzt hab ich einen der per pxe bootet und sein filesystem auf einem nfs mount auf einem NAS hat.

Kann ich dein script trotzdem nutzen oder wäre das nicht möglich bzw. quatsch?

Danke Dir!
Zitieren
#1099 framp 2019-02-15 08:09
Moin John,

Genau so kannst Du machen. Oder aber im Cronaufruf nur die Optionen überschreiben. Z.B. -t tar für tar Backup und im anderen Croneitrag -t dd.
Du musst aber darauf achten dass die beiden Backups sich zeitlich nicht überschneiden. Raspibackup kann nicht parallel laufen.

Cu framp
Zitieren
#1098 john 2019-02-15 01:28
Verstehe ich das richtig, dass ich mit der -f option dann einen crontab eintrag mit dieser Datei und einer mit einer anderen machen kann ?

Oder wie is das umgesetzt

grüsse
Zitieren
#1097 framp 2019-02-14 08:26
Hi john,
Die neue -f Option in 0.6.4.2 scheint das zu sein was du suchst https://github.com/framps/raspiBackup/issues/93.
https://github.com/framps/raspiBackup/issues/96 scheint auch für dich interssant zu sein :-) Kommt aber erst im nächsten Release ...

Cu framp
Zitieren
#1096 john 2019-02-14 02:39
Hallo framp,

Ist es möglich, die config dateien zu duplizieren, um mehere versch. Backups ( zb. rsync und dd) zu erstellen und jeweils mit einem crontab eintrag zu starten

grüsse
Zitieren
#1095 framp 2019-02-01 18:32
Moin Philipp,

ich verstehe leider Deine Frage nicht genau. Kann es sein dass Du den automatisch generierten Pfad der den Hostnamen beinhaltet wie z.B.
raspberrypi/raspberrypi-dd-backup-20160415-222900 variabel konfigurierbar machen kann. Z.B. meinBackup/raspberrypi-dd-backup-20160415-222900 wobei meinBackup eine Aufrufvariable sein soll?

Cu framp
Zitieren
#1094 Philipp 2019-02-01 10:46
Hallo,
bit es die Möglichkeit den Backuppfad in der raspiBackup.conf auch mit der Variable zu versehen? geht leider nur in der log Ausgabe.

Wenn das so nicht geht, gibt es einen anderen Workaround um mit dem hostnamen in der conf zu arbeiten?

DANKE!!!
Zitieren