Wie sichert ihr euren Raspi ?

einfachpeer

Lt. Commander
Registriert
Apr. 2022
Beiträge
1.539
Hi,

aufgrund der immer wichtig werdeneren Nextcloud (lokales NAS) möchte ich die Daten meiner Raspi5 SD und USB SSD auf eine externe USB HDD sichern.

Ich dachte "ja easy, nimmste Veeam for Linux Free" aber die ist leider nicht für ARM.

Kennt ihr gute Alternativen, die eine inkrementelle Sicherung auf USB beherschen ?
 
restic sowie rsync intern. Intern auf ein NAS mit rsync, weil das schon so seit 20 Jahren bei mir so läuft.

Es läuft aber auch alle in docker und. In Summe waren das drei RPi4.
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: Alter_Falter
einfachpeer schrieb:
Auf der befinden sich die Daten welche die NAS bereit stellt?

Dann lege ich dir eine Backupstrategie nach der "3-2-1 Regel" ans Herz.
Ein Backup ist zu wenig.
 
  • Gefällt mir
Reaktionen: einfachpeer, madmax2010 und H3llF15H
einfachpeer schrieb:
Kennt ihr gute Alternativen, die eine inkrementelle Sicherung auf USB beherschen ?
Um es kurz und schmerzvoll werden zu lassen: Nein, gibt es nicht.

Habe was eigenes gestrickt - nicht perfekt - aber läuft grundsätzlich - kannst es ja nach Deinem Bedarf anpassen:

Code:
#!/bin/bash
echo "Starte Backup!"

set -e  # Beendet das Skript bei Fehlern

# Festplatte einbinden
# mount -t cifs -o user=Nutzrename,password=Passwort,rw,file_mode=0744,dir_mode=0744 //192.168.178.111/Backups/Raspberry /mnt/nas || { echo "Mount fehlgeschlagen"; exit 1; }

# Variablen
BACKUP_PFAD="/mnt/nas/Raspberry/"
BACKUP_ANZAHL="15"
BACKUP_NAME="Raspi4MariaDB"
DATEI="${BACKUP_PFAD}/${BACKUP_NAME}-$(date +%Y%m%d%H%M%S).img.gz"

echo "Prüfe, ob Zielordner existiert!"
# Prüfen, ob Zielordner existiert
if [ ! -d "$BACKUP_PFAD" ]; then
  echo "Backup-Verzeichnis nicht gefunden: $BACKUP_PFAD"
  exit 1
fi

echo "Erstelle Backup - kopiere und packe Daten - das kann dauern bitte Geduld!"
# Backup erstellen (mit bs=4M für Performance-Boost)
dd if=/dev/mmcblk0 bs=4M | gzip > "$DATEI" || { echo "Backup fehlgeschlagen"; exit 1; }

echo "Teste Backup auf Fehler!"
# Archiv auf Fehler prüfen
gzip -t "$DATEI" || { echo "Archivprüfung fehlgeschlagen"; exit 1; }

# Alte Sicherungen löschen (nur wenn mind. BACKUP_ANZAHL vorhanden sind)
find "$BACKUP_PFAD" -name "${BACKUP_NAME}*.img.gz" -type f | sort | head -n -$BACKUP_ANZAHL | xargs rm -f

# Festplatte auswerfen
# umount /mnt/nas || echo "Unmount fehlgeschlagen"
 
mchawk777 schrieb:
Um es kurz und schmerzvoll werden zu lassen: Nein, gibt es nicht.
Mal mindestens restic und borg gibtes die das können. Sie versionieren die Inkremente sogar

mchawk777 schrieb:
Habe was eigenes gestrickt - nicht perfekt - aber läuft grundsätzlich - kannst es ja nach Deinem Bedarf anpassen:
Was du gestrickt hast ist nicht inkrementell.. Du machst volle Images.
 
madmax2010 schrieb:
Was du gestrickt hast ist nicht inkrementell.. Du machst volle Images.
Ja - und? Davon ist in der Ausgangsfrage auch keine Rede. 🤷‍♂️

Wenn Du aber ein gutes Backupprogramm für Linux on ARM kennst, was auch nur teilweise an die übliche Windows-Software ran reicht - nur her mit der Info.
 
mchawk777 schrieb:
Ja - und? Davon ist in der Ausgangsfrage auch keine Rede. 🤷‍♂️
Exakt das war doch die Ausgangsfrage:
einfachpeer schrieb:
Kennt ihr gute Alternativen, die eine inkrementelle Sicherung auf USB beherschen ?


mchawk777 schrieb:
Wenn Du aber ein gutes Backupprogramm für Linux on ARM kennst, was auch nur teilweise an die übliche Windows-Software ran reicht - nur her mit der Info.
Restic wurde hier im thread mehrfach genannt. Ansonsten gehen Borg, Dublicati. Rsync selbst kann auch inkrementelle Kopien, aber keine Versionierung dieser

Kann Versionierung, Inkrementelle Backups,
Dein Skript oben hat keinen Mechanismus um ein konsistentes Backup von eingehängten Dateisystemen zu erstellen. DD geht die Sektoren der reihen folge nach durch, wenn sich etwas im bereits kopierten Bereich ändert, gibt es in dd keinen Mechanismus, der zurück schaut und das
FS Locking kann helfen.
LVM | ZFS | BTRFS snapshots und dann die an andere Ziele synchronisieren hilft hier konsistenz sicher zu stellen.

Da du mariaDB drin stehen hast:
Wenn du von Datenbanken sicherungen machst, insbesondere so wie das mit dd passiert, ist es ratsam den Datenbankserver vor dem Backup zu anzuhalten und erst danach wieder zu starten, oder noch besser die Datenbank 1x kurz zu exportieren, um auch hier die Konsistenz sicherzustellen
Code:
DBUSER=username
PASS=passwrd
DBNAME=dbname

mysqldump -u $DBUSER  –p $PASS $DBNAME   [ > $DBNAME_$(date +%Y-%m-%d-%H.%M.%S).sql

Wenn die Datenbank sonst schreibt, waehrend die datei gelesen wird, sind die Chancen hoch, dass die Datei die du in der Sicherung hast nicht mehr vom jeweiligen Datenbankserver gelesen werden kann
Mehr dazu:
https://ninedata.medium.com/ensuring-consistent-backups-with-mysqldump-f18929553ab4
Gute erklaerung und anleitung, wie man das in Borg direkt sicher stellt
https://docs.borgbase.com/setup/borg/databases
 
  • Gefällt mir
Reaktionen: mchawk777
madmax2010 schrieb:
Restic wurde hier im thread mehrfach genannt. Ansonsten gehen Borg, Dublicati. Rsync selbst kann auch inkrementelle Kopien, aber keine Versionierung dieser
Konkretisiere- für meinen Anwendungsfall: System-Image-Backups, die entweder via Systemrettungsdatenträger oder via Image-Burner-Programm lauffähig zurück gespielt werden können.
madmax2010 schrieb:
Da du mariaDB drin stehen hast:
Danke den Code - werde ich mal mit einbauen und testen.

Streng genommen dient die mariaDB als DB für mein KODI-System.
Da aber alles notwendige (auch) in inf-Dateien, die ich liebevoll mit dem tinymediamanager erstelle, vorliegt wäre jetzt ein Datenverlust der DB nicht gravierend.

Dennoch: Ich habe bei so was lieber ein Backup zu viel als zu wenig. Werde mich dann mal auf die Suche begeben, wo ich die mysqldump-Datei finde.
 
Zurück
Oben