Raspberry-Pi-Backups könnt Ihr bei allen Systemen, wie Raspbian oder Xbian, ohne weitere Installation mit rsync machen – automatisch, platzsparend, gut.

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

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.

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.

Über den Autor

Mirco Lang

Mirco Lang

Am Anfang war der C-64 des großen Bruders des besten Freundes in der Grundschule ...

Der echte Technikwahn kam dann mit einer Ausbildung bei Saturn - als Computer noch erklärt werden mussten, Soundkarten benötigten, ein gutes Monatsgehalt kosteten und das Internet nur bei Nerds und mit 38 kbp/s lief, bestenfalls.

Ein Studium der Informationswirtschaft und ein paar Jahre als Redakteur bei Data Becker später, sitzt hier ein freier Journalist, der auf Old-School-Computing (cli ftw!), Free Software, Frickelei, Kodi und "Hundedinger" steht - und Grauseligkeiten wie Bild und Heftig.co zutiefst verabscheut.

Und sonst so? Sauerländer, BSI-Mitarbeiter, untalentierter Musikinstrumentebesitzer und seit 24 Jahren Skateboarder, ein ziemlich alter. Und manchmal kommt das abgebrochene Philo-Studium wieder durch ...

Sag' Deine Meinung

Kommentare

  • 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