Linux & Co.Netzwerk

Raspberry-Pi-Backup im Netzwerk speichern – ohne Extra-Software

Als was auch immer Ihr den Raspberry Pi nutzt, als Mediacenter mit Kodi, Retro-Spielekonsole, LAN-Radio oder Mailserver, es ist immer eine gute Idee, Euer Home-Verzeichnis mit Dateien und Einstellungen zu sichern. Und solange der Raspi im Netzwerk hängt, was wohl immer der Fall sein dürfte, geht das auch mit einem Tool, das bereits an Board ist: rsync.

Der Standard-Linux-Datei-Backupper kann mit minimalem Ressourcen-Bedarf wunderbare Backups erstellen: Filter für auszuschließende Verzeichnisse und Dateien, inkrementelle Backups für minimalen Speicherbedarf, in der Quelle gelöschte Dateien können im Ziel gelöscht werden und automatisch geht das ganze natürlich auch.

1. Netzwerk und Zugriff vorbereiten

In der Regel werdet Ihr Netzwerk-Freigaben lokal auf dem Pi gemountet haben – falls nicht, hier haben wir eine Anleitung. Und falls Ihr keine Tastatur und keinen Monitor am Pi hängen habt, braucht Ihr noch SSH-Zugriff, den wir Euch hier erklären.

2. Ausschlüsse vorbereiten

Legt eine Datei .r-exclude an (der Punkt versteckt die Datei), die Ordner enthält, die Ihr nicht sichern wollt. Habt Ihr im Home-Verzeichnis beispielsweise die Netzwerk-Freigaben Filme und /medien/Serien, schließt Ihr diese über

Filme*
medien/Serien*

aus. Auch Dateiausschlüsse wie *.TXT könnt Ihr hier unterbringen – oder alternativ direkt im rsync-Aufruf, wie wir es unten machen.

3. rsync-Skript schreiben

Das rsync-Skript ist schnell geschrieben, beispielsweise in die Datei r-backup.sh

#!/bin/bash
rsync -Pav –exclude-from=/home/mirco/.r-exclude exclude=’*‘.txt –delete /home/mirco /home/mirco/Backups/rsync_cubian

a steht für den Archiv-Modus, der folgende Optionen zusammenfasst: -r (rekursiv), -l (Verknüpfung als Verknüpfung kopieren), -p (Rechte bewahren), -t (Zeitstempel bewahren), -g (Guppen bewahren), -o (Eigentümer bewahren), -D (Spezial- und Gerätedateien bewahren). P steht für –partial (teilweise übertragene Dateien behalten) und –progress (Fortschritt anzeigen). Und v steht wie üblich für verbose, also detailliertere Ausgabe. Über –exclude-from= werden die Verzeichnisse in der Datei .r-exclude (über den anführenden Punkt wird die Datei „versteckt“) ausgeschlossen und über exclude= TXT-Dateien. Über –delete werden Dateien im Backup/Ziel gelöscht, die in der Quelle gelöscht wurden. Dann folgen das zu sichernde Verzeichnis und abschließend das Zielverzeichnis – hier der gemountete Ordner aus dem Netzwerk. Das anfängliche #!/bin/sh ist obligatorisch für Shell-Skripte.

Kleiner Hinweis noch zum delete-Parameter: Das Gute daran ist, dass das Backup platzsparend den aktuellen Stand der Quelle hat. Das Schlechte: Löscht Ihr versehentlich Dateien in der Quelle, und läuft dann das Skript – nun, dann sind die Dateien auch im Backup futsch. Also: Überlegt einsetzen!

Jetzt macht Ihr das Skript noch ausführbar:

chmod +x r-backup.sh

Und testet mit:

sudo bash r-backup.sh

rsync
Das rsync-Skript

4. Skript automatisieren

Wenn das Skript jetzt jeden Tag um 1.00 Uhr laufen soll, müsst Ihr es in die crontab eintragen. Bei Standard-Freigaben werdet Ihr root-Rechte benötigen, um das Skript auszuführen – daher beim Test auch der Aufruf mit sudo. In der Praxis kommt es hier immer wieder zu Problemen, bei dem hiesigen System funktioniert folgende Lösung: Kopiert das Skript zunächst mittels

sudo cp r-backup.sh /root

in Roots Verzeichnis. Öffnet dann die crontab mit

sudo crontab -e

Hier gebt Ihr für tägliche Backups um 1.00 Uhr folgendes ein:

  • 1 * * * /root/r-backup.sh

Das bedeutet: Beliebige (*) Minute, Stunde 1, beliebiger Tag im Monat, beliebiger Monat, beliebiger Tag der Woche – also jeden Tag um 1.00 Uhr. Diese Notation ist nicht gerade nutzerfreundlich, aber einmal verstanden, auch nicht sonderlich kompliziert.

rsync
crontab ist der Scheduler unter Linux.

Das praktische rsync bietet noch etliche weitere Optionen, ist schlank, schnell, immer verfügbar (sogar auf QNAP- und Synology-NAS-Systemen) – einmal eingerichtet, werdet Ihr es nicht mehr bemerken, aber immer ein zuverlässiges Backup haben. Klar gibt es auch grafische Lösungen für Backups, aber wer mit rsync und cron klar kommt, wird nie wieder etwas anderes benötigen – und nochmal: Es ist verdammt zuverlässig!

P.S.: Wenn rsync Fehlermeldungen ausgibt, findet Ihr die im lokalen Mail-Postfach – gebt einfach den Befehl mail ein.
P.P.S: Das ganze funktioniert natürlich auch mit echten Linuxen, aus Virtuellen Maschinen heraus oder mit dem dem Pi weit überlegenen Cubietruck.

Mirco Lang

Freier Journalist, Exil-Sauerländer, (ziemlich alter) Skateboarder, Dipl.-Inf.-Wirt, Einzelhandelskaufmann, Open-Source-Nerd, Checkmk-Handbuchschreiber. Ex-Saturn'ler, Ex-Data-Becker'ler, Ex-BSI'ler. Computer-Erstkontakt: ca. 1982 - der C64 des großen Bruders eines Freunds. Wenn Ihr hier mehr über Open Source, Linux und Bastelkram lesen und Tutonaut unterstützen möchtet: Über Kaffeesponsoring via Paypal.freue ich mich immer. Schon mal im Voraus: Danke! Nicht verpassen: cli.help und VoltAmpereWatt.de. Neu: Mastodon

6 Kommentare

  1. Hallo Marco danke für den Artikel. Gibt es auch irgendwie die Möglichkeit ein komplett Backup der SD Karte zu machen? Ich habe nämlich ein Hausautomatisierungs System auf dem PI laufen. Das würde ich gerne im Notfall auf innerhalb kürzester Zeit auf eine neue SD Karte schieben und wieder weiter benutzen.

  2. Guten Abend,

    ich möchte den RasPi dazu nutzen, bestimmte Pfade meines Netzwerks, z.B. \server\daten*.* auf einer USB-Platte regelmäßig und differentiell zu sichern. Hast Du bitte einen Tipp für mich, wie ich es am einfachsten machen kann (Programm oder …)?

    Danke, Michael

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.

Schaltfläche "Zurück zum Anfang"
Schließen

Ooopsi!

Bitte deaktiviere Deinen Adblocker.