Datensicherung & Backup

Die Datensicherung

Um regelmäßige Sicherungen anzulegen, kannst du dir entweder alle benötigten Dateien & Ordner händisch an einen separaten Ort kopieren.

Oder du erstellst dir ein Script, das alle benötigten Dateien & Ordner zusammensucht und in eine komprimierten Datei packt. Für automatisierte Datensicherungen wird das Script dann bestenfalls noch durch einen Cronjob ausgeführt.

Es ist zu empfehlen die Sicherungsdateien auf einem externen Laufwerk anlegen zu lassen.


Anzeige

Script für Datensicherung

Für das Script legst du dir erstmal eine Datei an:

sudo nano /usr/local/bin/datensicherung.sh

Als Grundlage für dein Script kann das folgende Beispiel dienen:

#!/bin/bash

# Verzeichnisse
SUBDIR=UNTERVERZEICHNIS
DIR=/PFAD/FUER/SICHERUNG/$SUBDIR

# Variablen
BACKUP_ANZAHL_MAX="60"
OFILE="$DIR/dasi_$(date +%d%m%Y_%H%M%S)".tar.gz

WICHTIGER_ORDNER1="PFAD/ZUM/WICHTIGEN/ORDNER/1/"
WICHTIGER_ORDNER2="PFAD/ZUM/WICHTIGEN/ORDNER/2/"
WICHTIGER_ORDNER3="PFAD/ZUM/WICHTIGEN/ORDNER/3/"
#...

WICHTIGE_DATEI1="PFAD/ZUR/WICHTIGEN/DATEI1"
WICHTIGE_DATEI2="PFAD/ZUR/WICHTIGEN/DATEI2"
WICHTIGE_DATEI3="PFAD/ZUR/WICHTIGEN/DATEI3"
#...

######################################################################################

echo "Starte Datensicherung"

# Prüfen, ob Zielordner existiert
if [ ! -d "$DIR" ];
   then
      echo "Sicherungs-Verzeichnis $DIR ist nicht vorhanden und wird jetzt angelegt!"
      mkdir $DIR
fi

# First sync disks
sync; sync

# BackUp starten
echo "Abhängig von der Speicherkartengröße und der Lesegeschwinidgkeit wird dies etwas Zeit in Anspruch nehmen. Bitte warten..."
cd /
tar cfzv $OFILE $WICHTIGER_ORDNER1 $WICHTIGER_ORDNER2 $WICHTIGER_ORDNER3 $WICHTIGE_DATEI1 $WICHTIGE_DATEI2 $WICHTIGE_DATEI3
pushd ${DIR}; ls -tr ${DIR}/dasi_* | head -n -${BACKUP_ANZAHL_MAX} | xargs rm; popd

echo "Datensicherung erstellt!"

Kopiere das Beispiel in die soeben erstellte Datei. Nimm deine Anpassungen vor und speichere die Datei per STRG + O ab und schließe sie dann per STRG + X.

Das Script muss nun noch mit den passenden Rechten ausführbar gemacht werden:

sudo chmod 755 /usr/local/bin/datensicherung.sh

Starten kannst du das Script nun manuell:

sudo /usr/local/bin/datensicherung.sh

Wie das Script arbeitet

Anhand der vorhandenen Variablen legst du den Hauptordner (DIR) für deine Sicherungen fest (bspw. ein externes Laufwerk) und bestimmst dann das Unterverzeichnis (SUBDIR), in dem die Sicherungen liegen sollen.

Bestimme, wie viele Sicherungen (BACKUP_ANZAHL_MAX) maximal angelegt werden sollen, alle älteren werden dann nach dem erstellen des Sicherungsarchivs gelöscht. Der Dateiname (OFILE) bildet sich aus einem Prefix und dem aktuellen Datum undder Uhrzeit.

Dann gibst du die einzelnen Dateien (WICHTIGE_DATEI1, WICHTIGE_DATEI2, …) & Ordner (WICHTIGER_ORDNER1, WICHTIGER_ORDNER2, …) an, die gesichert werden sollen. Die jeweiligen Variablen für die einzelnen Ordner musst du dann anhand des Beispiels in Zeile 39 nach „tar czf $OFILE…“ ergänzen.

Das Script prüft nun, ob das Unterverzeichnis im Zielordner existiert und legt dieses an, sollte dies nicht der Fall sein.

Nun werden alle anhand der benannten Variablen angegebenen Dateien & Ordner in ein komprimiertes TAR-Archiv im Zielpfad erstellt.

Script automatisieren

Damit du nicht jedes Mal das Script manuell ausführen musst, kannst du einen Cronjob anlegen und diesen automatisiert zu einer bestimmten Uhrzeit, an bestimmten Tagen das Script ausführen lassen.

Um die Konfiguration der Cronjobs aufzurufen, gibst du in der Konsole / im Terminal folgendes ein:

sudo -s crontab -e

Such dir eine freie Zeile, in die du folgendes einfügst:

0 0,12 * * * /usr/local/bin/datensicherung.sh

Diese Zeile bewirkt, dass jeden Tag 00.00 Uhr, sowie 12.00 Uhr das Script zur Datensicherung ausgeführt wird.

Speichere per STRG + O und schließe die Datei dann per STRG + X.

Du hast nun ein Script für regelmäßige Datensicherungen zur Hand, welches du manuell, oder automatisiert ausführen kannst.

Datensicherung entpacken

Um Daten aus erstellten Sicherungen anhand des obigen Scripts wieder herzustellen muss das Sicherungsarchiv lediglich entpackt werden und dann kopierst du dir die benötigten Dateien dort hin, wo sie hin sollen.

Archiv entpacken:

sudo cp /URSPRUNGSPFAD/ARCHIVNAME.ENDUNG /ZIELPFAD/ #kopieren des Archivs an Zielordner
cd /ZIELPFAD/ #in Zielverzeichnis wechseln
tar xfv ARCHIVNAME.ENDUNG #entpacken

Anzeige

Das Backup unter grafischer Oberfläche

Um ein vollständiges BackUp des Raspberrys zu machen, welches im Notfall wieder zurückgespielt werden kann, setze ich nicht mehr auf ein entsprechendes Script, da dieses auch den ungenutzten Platz sichert und je nach Speicherkarten- / SSD-Größe für enormen Speicherplatzbedarf sorgt, vor allem aber sehr viel Zeit in Anspruch nehmen kann und dadurch die zur Verfügung stehende Leistung einschränkt.

Die aktuellen Versionen von Raspberry Pi OS bringen die Desktopanwendung „SD Card Copier“ mit. Zu finden über das Startmenü >> Zubehör.

Man wählt die aktiv genutzte SD-Karte / SSD als Quelle aus und gibt sie Ziel-SD / -SSD an. Wichtig ist das Setzen des Hakens „New Partition UUIDs„.

Auf „Start“ klicken und der Kopiervorgang wird ausgeführt.

Der Vorteil des SD Card Copiers ist, dass er nur den genutzten Speicher kopiert. So kann ich den tatsächlich genutzten Platz auf meiner 480 GB SSD auch auf eine kleinere SD-Karte / SSD kopieren. Das zurückspielen ist problemlos möglich.

Dafür muss jedoch von der BackUp-SD / -SSD gebootet werden, damit diese über den SD Card Copier als Quelle dienen kann. Ich bevorzuge in meiner Konfiguration mit verbauter SSD daher die Verwendung einer SD-Karte, da der SD-Slot ja eh frei ist. Sollte ich die 480 GB meiner SSD irgendwann ausreizen, besorge ich mir eine SD-Karte in entsprechender Größe.


Anzeige

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.