Meine Laufwerke und das Zubehör

An meinem Pi 4 hängen eine Samsung T5 mit 1 TB als Hauptlaufwerk und eine Seagate-HDD mit 2 TB für die Sicherungen. Beide Laufwerke verwenden ext4. In der Liste sind die Samsung T9 und die 8-TB-BarraCuda als Alternativen zu diesen beiden Laufwerken verlinkt.

Als Amazon-Partner verdiene ich an qualifizierten Verkäufen.

Komponentenbilder · KI-Illustrationen

Laufwerke einhängen und prüfen

Bei mir sind die Laufwerke über ihre Labels in /etc/fstab eingetragen. Mit diesen Befehlen siehst du, welche Geräte tatsächlich an den beiden Pfaden eingehängt sind. Prüfe das vor dem Einrichten der Freigabe oder des Backups und nach einem Neustart.

Die beiden Beispielzeilen gehen von bereits formatierten ext4-Laufwerken aus. Gleiche die Labels zuerst mit lsblk -f ab, lege die Zielordner an und ergänze die Zeilen in /etc/fstab. Bereits vorhandene Einträge für dieselben Pfade bearbeitest du an Ort und Stelle.

LABEL=ssd1tb /media/ssd1tb ext4 defaults,nofail 0 2
LABEL=backup /media/backup ext4 defaults,nofail 0 2
lsblk -f
sudo mkdir -p /media/ssd1tb /media/backup
sudo mount /media/ssd1tb
sudo mount /media/backup
findmnt --mountpoint /media/ssd1tb
findmnt --mountpoint /media/backup

Die SSD über Samba freigeben

Meine Freigabe heißt SSD1TB und zeigt auf /media/ssd1tb. Installiere bei Bedarf das Paket samba. Der Beispielabschnitt gehört in /etc/samba/smb.conf. Ersetze nasuser durch deinen vorhandenen Linux-Benutzer mit Schreibrechten auf der SSD und leg für ihn ein Samba-Kennwort an. Unter Linux Mint öffnest du die Freigabe im Dateimanager über smb://HOSTNAME/SSD1TB. Ersetze HOSTNAME durch den Namen oder die LAN-IP deines Pi.

[SSD1TB]
    path = /media/ssd1tb
    read only = no
    guest ok = no
    valid users = nasuser
sudo smbpasswd -a nasuser
sudo testparm -s && sudo systemctl reload smbd

Sicherungsstände mit rsnapshot

rsnapshot sichert bei mir die SSD auf die zweite Platte. Installiere bei Bedarf das Paket rsnapshot. Ergänze oder bearbeite die folgenden Einträge in /etc/rsnapshot.conf und trenne die Felder mit Tabulatoren. Die Zeile mit backup gehört einmal in die Datei. Dieses Beispiel sichert die Dateien auf der SSD. Für die openHAB-Konfiguration brauchst du eine eigene Sicherung, sofern sie außerhalb der SSD liegt.

Eine 3,5-Zoll-Festplatte liegt neben einem externen USB-Gehäuse.
Die Backup-HDD sitzt im Betrieb im externen USB-Gehäuse · KI-Illustration
snapshot_root	/media/backup/rsnapshot/
no_create_root	1

retain	daily	7
retain	weekly	4
retain	monthly	6
retain	yearly	3

backup	/media/ssd1tb/	localhost/
mountpoint -q /media/backup && sudo mkdir -p /media/backup/rsnapshot
sudo rsnapshot configtest
sudo rsnapshot -t daily

Cron startet die Sicherung. Die retain-Zeilen bestimmen, wie viele Stände pro Stufe aufgehoben werden. In diesem Beispiel testet jeder Auftrag zuerst die beiden Einhängepunkte. Treffen mehrere Stufen zusammen, laufen die selteneren zuerst. Prüfe nach dem Einrichten, ob die Jobs tatsächlich gelaufen sind. Den Beispielzeitplan trägst du in Roots Crontab ein. sudo crontab -e

0 0 1 1 * /usr/bin/mountpoint -q /media/ssd1tb && /usr/bin/mountpoint -q /media/backup && /usr/bin/rsnapshot yearly
0 1 1 * * /usr/bin/mountpoint -q /media/ssd1tb && /usr/bin/mountpoint -q /media/backup && /usr/bin/rsnapshot monthly
0 2 * * 0 /usr/bin/mountpoint -q /media/ssd1tb && /usr/bin/mountpoint -q /media/backup && /usr/bin/rsnapshot weekly
0 3 * * * /usr/bin/mountpoint -q /media/ssd1tb && /usr/bin/mountpoint -q /media/backup && /usr/bin/rsnapshot daily

Eine Datei probeweise zurückholen

Ich habe eine kleine Datei aus daily.0 in einen privaten Testordner kopiert und mit cmp bytegenau gegen den Sicherungsstand verglichen. Der Test war erfolgreich. Wähle für deinen Test eine bekannte Datei aus dem Sicherungsstand und öffne die zurückgeholte Kopie. Der Testordner liegt außerhalb der Freigabe.

snapshot=/media/backup/rsnapshot/daily.0/localhost
file="$snapshot/path/to/file"
target=$(mktemp -d "$HOME/nas-restore-test.XXXXXX")
sudo install -m 0600 -o "$(id -u)" -g "$(id -g)" -- "$file" "$target/restored-file" &&
  sudo cmp -- "$file" "$target/restored-file" && printf "%s\n" "$target/restored-file"

openHAB separat sichern

Die openHAB-Konfiguration und die Nutzerdaten liegen bei mir außerhalb der NAS-SSD. Dafür erstelle ich eigene ZIP-Archive mit openhab-cli backup direkt auf der Backup-HDD. Der Wochenjob ist für Sonntag um 07:00 Uhr eingerichtet und behält die letzten acht Wochenarchive. Vor größeren Änderungen lege ich ein separates manuelles Archiv an.

Beim manuellen Testlauf hat unzip -tq das Wochenarchiv geprüft. Die ZIP-Prüfung bestätigt, dass das Archiv lesbar ist. Eine vollständige openHAB-Wiederherstellung steht noch aus.

openHAB-Backup und Wiederherstellung

Quellen