linux-arch-alpine-minimal backup recovery minimalism alpine arch-linux cli

Minimal Backup: tar, dd & lbu (Artikel 227)

Datensicherung auf minimalistischen Systemen ohne schwere Backup-Suites. Erfahren Sie den Umgang mit lbu unter Alpine sowie effizientes Streaming-Backup via tar und dd.

# Minimal Backup: Datensicherung ohne Ballast

TL;DR / Management Summary Auf minimalistischen Systemen (Arch/Alpine) haben wir oft keinen Platz für Gigabyte-schwere Backup-Agenten. Wir besinnen uns auf die Unix-Philosophie: tar für Dateisicherungen, dd für Images und unter Alpine das geniale lbu (Local Backup Utility). In diesem Modul lernen wir, wie wir Daten sicher über das Netzwerk streamen, ohne sie lokal zwischenzuspeichern – ideal für Systeme mit winzigen Festplatten oder reinem RAM-Betrieb.


# 1. Einführung & Architektur

Streaming statt Speichern.

In Umgebungen mit wenig Disk-Platz (IoT, Edge) ist das lokale Erstellen einer .tar Datei oft unmöglich (Disk full). Die Lösung: Pipes.

# Die Backup-Pipeline (Mermaid)

graph LR
    A[SLES Host: Local Files] -->|tar / dd| B[Standard Out]
    B -->|SSH / Netcat Pipe| C[Remote Network]
    C -->|Input| D[Backup Server: Disk / S3]
    subgraph "Alpine Special"
        E[RAM Changes] -->|lbu commit| F[Persistence Medium]
    end

# 2. Alpine Spezial: lbu (Local Backup Utility)

Persistenz im Diskless-Mode.

Wenn Alpine vom USB-Stick/RAM bootet, gehen Änderungen verloren. lbu speichert diese in eine Datei config.apkovl.tar.gz.

# Nutzung

# 1. Datei zum Backup hinzufügen
lbu add /etc/nginx/nginx.conf

# 2. Status prüfen (Was wird gesichert?)
lbu status

# 3. Sicherung auf das Boot-Medium schreiben
lbu commit

# 3. Raw Streaming Backups

Effizienz für Bare-Metal.

# Full Disk Image via Netzwerk (dd + ssh)

Sichern Sie eine ganze SD-Karte oder SSD eines Remote-Systems:

# Auf dem Backup-Server ausführen
ssh root@remote-alpine "dd if=/dev/mmcblk0 | gzip -1 -" > backup_image.gz

# Inkrementelle Datei-Sicherung (tar + ssh)

tar -czf - /etc /var/www | ssh user@backup-server "cat > server_config.tar.gz"

# 4. Day-2 Operations: Verify & Recovery

Kein Blindflug.

# Backup-Inhalt ohne Entpacken prüfen

ssh user@backup-server "cat server_config.tar.gz" | tar -ztv

# Schneller Restore (Bare Metal)

Booten Sie ein Live-ISO und ziehen Sie das Image zurück:

ssh user@backup-server "cat backup_image.gz" | gunzip -c | dd of=/dev/sda

# 5. Troubleshooting & “War Stories”

Wenn die Pipe bricht.

# Story 1: “Der korrupte tar-Stream”

Symptom: Der Restore bricht mit tar: Unexpected EOF ab. Ursache: Die SSH-Verbindung wurde unterbrochen oder der Server hat während des Backups die Log-Dateien rotiert (Größenänderung). Lösung: Nutzen Sie das Tool mbuffer zwischen den Pipes, um Netzwerk-Schwankungen abzufangen. Schließen Sie wachsende Logs (/var/log) vom Backup aus.

# Story 2: “Das lbu-Limit”

Symptom: lbu commit schlägt fehl oder das resultierende Archiv ist leer. Ursache: lbu sichert standardmäßig nur /etc (außerhalb von /etc/init.d). Manuelle Pfade in /var/ oder /opt/ müssen explizit mit lbu add registriert werden. Lösung: Prüfen Sie mit lbu list, ob alle Ihre Applikations-Daten erfasst sind.


# 6. Fazit & Empfehlung

  • Wahl: Nutzen Sie lbu für alle Alpine-Systeme im Diskless-Mode.
  • Wartung: Testen Sie Ihre dd-Wiederherstellung regelmäßig. Ein Byte-weiser Klon ist nur dann nützlich, wenn die Ziel-Hardware identisch oder größer ist.
  • Security: Nutzen Sie für SSH-Backups immer dedizierte Keys ohne Shell-Zugriff (command="tar ..." in authorized_keys).

# Anhang: Cheatsheet

Aufgabe Alpine / CLI Befehl
Alpine Config sichern lbu commit
Verzeichnis hinzufügen lbu add /pfad/
Verzeichnis ausschließen lbu exclude /pfad/
Image über Netz `dd if=/dev/sda
Empfang via Netcat nc -l -p <port> > backup.img
Archiv-Integrität tar -df backup.tar (Diff gegen Live-System)
Kompression zstd ist schneller und effizienter als gzip.