Erstellen eines komplettes Backups der gesamten SD-Karte eines Raspberry Pis. https://strobelstefan.org
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

11 KiB

imagebackup

🇬🇧 README in English

Was ist der Zweck von "imagebackup"?

Das Skript

  1. erstellt via dd eine vollständige Kopie der SD-Karte Ihres Raspberry Pi als komplettes Backup
  2. speichert das Backup auf einem externen Speichergerät
  3. verkleinert das Image mit Drewsif's pishrink.sh, um Probleme mit "falschen" Größen von SD-Karten zu vermeiden (🔗 https://github.com/Drewsif/PiShrink)
  4. komprimiert das geschrumpfte Image mit gizp, um Speicherplatz auf einem externen Speichermedium zu sparen
  5. entfernt das nun "nutzlose" ddBackup und das geschrumpfte Image
  6. sendet den Status per E-Mail an den Administrator

Welches Raspberry Pi-Modell sollte ich verwenden?

Das Skript kann eine Menge Ressourcen deines Raspberry Pi verbrauchen, insbesondere für

  • Erstellen eines Backups über dd
  • Verkleinern über pishrink
  • Komprimieren über gzip

Es wird mindestens ein Raspberry Pi Modell 3 benötigt, besser noch ein Raspberry Pi 4. Das neueste Modell hat mehr Speicherleistung, was den ganzen Prozess deutlich beschleunigt.

Das Skript und eine laufende Nextcloud (keine angemeldeten Benutzer) verbrauchen den folgenden Speicher eines Raspberry Pi:

Mem ~ 350 to 400 M of 3.74G

Die Belastung der CPU ist zu vernachlässigen, dieser variiert zwischen allen vier Kernen und liegt zwischen 5 bis 25%.

Keine Sorge, wenn du einen älteren Raspberry Pi hast. Du kannst den Prozess auch nutzen, um ein vollständiges Backup deines Pi zu erstellen. Überspringe einfach den Shrink- und Zip-Prozess. Legen das dd-Backup auf einen externen Speicher ab und führe die beiden anderen Operationen (pishrink& gzip) auf einer "stärkeren" Hardware aus, z.B. einem neueren Raspberry Pi, Laptop, Server, einer virtuellen Box, etc.

Auch dieser nicht sehr praktische Prozess kann automatisiert werden, so dass er benutzerfreundlicher wird. Bitte wirf einen Blick auf "More features that can be-easily-used-with-imagebackup" um dich inspirieren zu lassen 😊.

Was ist erforderlich, um "imagebackup " zu verwenden?

  1. Zunächst einmal musst du einen funktionierenden Mail Transfer Agent (MTA) wie Postfix und einen E-Mail-Client wie mutt auf deinem Pi installiert haben. Eine ausführliche Anleitung, wie du beides einrichtest, findest du natürlich auf meiner Website: 🔗 E-Mail-Versand für den Raspberry Pi konfigurieren

  2. Zweitens: Stelle sicher, dass sich dein externes Speichermedium ohne Probleme einbinden lässt 🔗 Raspberry Pi Image verkleinern mit pishrink

  3. Drittens, du musst PiShrink verwenden 🔗 https://github.com/Drewsif/PiShrink

Kann der gesamte Prozess automatisiert werden?

Natürlich kannst du den gesamten Prozess automatisieren, indem du einen Cron-Job einrichtest, der imagebackup.sh aufruft.

Gibt es Sicherheitsprobleme?

Um ehrlich zu sein, kann es einige geben. Aber die Probleme hängen nicht wirklich mit den Skripts selbst zusammen, sondern eher mit den Skript-Berechtigungen und deinen Server-Administratoren.

Das Skript benötigt einige hohe Berechtigungen,

  • root-Berechtigungen zum Einhängen externer Speichergeräte und
  • root-Berechtigungen, um imagebackup aufzurufen

Um beides zu erreichen, müssen wir sudo crontab -e verwenden.

Das hohe Risiko besteht also darin, dass ein Benutzer, der Schreibzugriff auf das Skript erhält, über die crontab nicht autorisierte Befehle ausführen kann.

Bitte überprüfe deshalb doppelt

  • die Berechtigungen des Skripts
  • dass die Benutzer, die sudo oder root auf deinem System verwenden können, korrekt eingerichtet sind
  • dass personalisierte Konten für deine Admins in Gebrauch sind

Wenn du daran interessiert bist, dein System mit Hardware-Tokens und Zertifikaten gut abzusichern, schaue mal die YubiKey-Kategorie auf meiner Website genauer an.

🔗 https://strobelstefan.org/yubikey/

Trotz der oben genannten Bedenken musst du

  • PiShrink

vertrauen, denn das Skripte wird automatisch von imagebackup.sh aktualisiert. Wenn du ein ungutes Gefühl dabei hast, deaktiviere die Funktion auto-upgrade im Skript. So kannst du die Skripte manuell überprüfen, bevor due sie aktualisierst.

Installation

  1. Ich verwende git, um das gesamte PiShrink Repository von GitHub auf meiner lokalen Festplatte zu klonen, um das Skript einfach per Skript zu aktualisieren. Alle meine Skripte befinden sich in einem Ordner und sind in Unterordnern organisiert, was es sehr einfach macht, sie zu pflegen.

    1. Erstelle ein Verzeichnis für deine benutzerdefinierten Skripte auf der Festplatte Ihres Pi.
sudo mkdir /etc/scripts
cd /etc/scripts
  1. Klone das Repository PiShrink auf deine lokalen Festplatte in den neu erstellten Ordner. Mit diesem Befehl wird ein neuer Unterordner namens PiShrink erstellt, der alle Dateien des GitHub-Repositorys enthält.
sudo clone https://github.com/Drewsif/PiShrink.git
  1. Verzeichnis wechseln
/etc/scripts/PiShrink
  1. Skript-Berechtigungen für pishrink.sh setzen
sudo chown root:root pishrink.sh
sudo chmod 0600 pishrink.sh
sudo chmod +x pishrink.sh
  1. Kopiere die imagebackup.sh auf Ihre lokale Festplatte
cd /etc/scripts
  1. Klonen Sie das Repository imagebackup von codeberg.org auf die Festplatte Ihres Pi
sudo clone https://codeberg.org/strobelstefan.org/imagebackup.git

⚠️Das Repository wird NICHT automatisch aktualisiert. Wir kopieren nur die aktuelle Version von Codeberg auf die Raspberry Pi's. Ein automatisches Update für imagebackup ist nicht zu empfehlen, da deine Variablen am Anfang des Skripts überschrieben werden.

  1. Passe die Variablen oben im Skript an deine Bedürfnissen an.
sudo nano /etc/scripts/imagebackup/imagebackup.sh
# Storage device as defined in your /etc/fstab.
mountpoint='/mnt/usbbackup/'

# Path were the image of your SD card should be saved to
STORAGEPATH="/mnt/usbbackup/nextcloud/images"

# Location of Nextcloud Installation
NEXTCLOUDINSTALLATION="/var/www/html/nextcloud"

# Location of PiShrink script pishrink.sh
PISHRINK="/etc/scripts/PiShrink"

# Location of imagebackup
IMAGEBACKUP="/etc/scripts/imagebackup"

# Location of image backup script
IMAGESCRIPT="/etc/scripts/imagebackup/imagebackup.sh"

# Image name
IMAGENAME="nextcloud"

# E-Mail Address For Messages
EMAIL="mail@e-mail.de"

# E-Mail Address for sending out backup script
EMAILIMAGESCRIPT="mail@e-mail.de"

#Log File location and name
LOGFILE="/var/log/imagebackup.log"
  1. Berechtigungen für imagebackup.sh anpassen
sudo chown root:root imagebackup.sh
sudo chmod 0600 imagebackup.sh
sudo chmod +x imagebackup.sh
  1. Skript ausführen

    Die Laufzeit des Skripts kann sehr, sehr lang sein. Es wird daher dringend empfohlen, screen zu verwenden, um Unterbrechungen zu vermeiden.

cd /etc/scripts
screen # This is optional
sudo ./imagebackup.sh
  1. Einrichten eines Cron
# imagebackup
# At 01:00 on Wednesday
0 01 * * 3 /bin/bash /etc/scripts/imagebackup/imagebackup.sh
# At 01:00 on Sunday.
0 01 * * 0 /bin/bash /etc/scripts/imagebackup/imagebackup.sh

​ Wenn Sie das Skript zu einem anderen Zeitpunkt aufrufen möchten, ist vielleicht crontab guru hilfreich: ​ 🔗 https://crontab.guru

  • Weitere Funktionen, die einfach mit imagebackup verwendet werden können

    Es gibt noch viele andere Möglichkeiten, Ihre Exporte auf einem anderen, physikalisch getrennten Gerät zu speichern. Hier sind einige Beispiele:


Donation

Do you find the templates helpful, then feel free to buy me a coffee Donate 😊 Donate 😎

Du findest meine Vorlagen hilfreich, dann kannst du mir gerne einen Kaffee ausgeben Donate 😊 Donate 😎


You can find more exciting articles on IT topics on my website www.strobelstefan.org

There you can find more articles about Nextcloud and the popular Raspberry Pi:


⚠️ Disclaimer

EN

The working methods described here are based on my personal experience and my personal thought processes. I do not guarantee the results; trying out and implementing the described procedures is entirely at your own risk and responsibility.

Therefore, please make a backup before making any changes to your system or configuration so that you can restore it if the worst comes to the worst.

DE

Die hier geschilderten Arbeitsweisen basieren auf meiner persönlichen Erfahrung und meinen persönlichen Gedankengängen. Ich übernehme keine Garantie für die Resultate; Ausprobieren und Implementieren der beschriebenen Vorgehensweisen erfolgt ausschließlich auf eigene Verantwortung und Gefahr.

Bitte erstellt deshalb vor jeder Änderung an eurem System oder Konfiguration ein Backup, damit ihr im Fall der Fälle eine Wiederherstellung durchführen könnt.