Raspberry Pi

Aus Wiki Freifunk-3Ländereck
Wechseln zu: Navigation, Suche

Automatisches Backup

Damit die auf dem Raspberry Pi gespeicherten Daten auch sicher sind, empfiehlt sich ein regelmäßiges, möglichst automatisiertes Backup. Lösungen hierzu gibt es viele. Eine einfache, jedoch recht komfortable Lösung bietet BackupPC [1]. Neben diversen Verfahren zur eigentlichen Erstellung der Backups bietet es eine einfache Web-Oberfläche, welche einen bequemen Zugriff (Konfiguration und Daten) aus der Ferne ermöglicht. Zum Glück ist BackupPC teil der Debian-Distribution und lässt sich mittels apt installieren:

apt-get install backuppc

Im Zuge der Installation wird automatisch der Benutzer backuppc angelegt und sowie ein zufälliges Passwort generiert. Diese sollte man sich notieren. Prinzipiell werden Passwörter in der Datei /etc/backuppc/htpasswd verwaltet. Das Passwort für den Benutzer backuppc lässt sich mit dem folgenden Befehl ändern:

 sudo htpasswd /etc/backuppc/htpasswd backuppc

Die Konfiguration für den Apache2 Web-Server ist in der Datei /etc/apache2/conf.d/backuppc.conf abgelegt. Um sichere Verbindungen via SSL zu erzwingen, aktivieren wir dort die Option "SSLRequireSSL":

# Uncomment the line below to ensure that nobody can sniff importanti
# info from network traffic during editing of the BackupPC config or
# when browsing/restoring backups.
# Requires that you have your webserver set up for SSL (https) access.
SSLRequireSSL

Sofern man SSL für den Apache2 noch nicht aktiviert hat, sollte man dies jetzt nachholen:

sudo a2enmod ssl

Für den Backup-Betrieb genügen die vorinstallieren nichtöffentlichen Zertifikate. Im Anschluss starten wir den Apache2 neu:

service apache2 restart

Sofern der Neustart erfolgreich war, lässt sich die Web-Oberfläche von BackupPC ab sofort unter dem folgenden URL aufrufen:

 https://<host>/backuppc/

Für die Anmeldung benutzen wir den zuvor notierten Benutzernamen und das zugehörige Passwort. Der Rechner "localhost" ist in BackupPC bereits vorkonfiguriert. Wir klicken auf "Host Summary" und danach auf den Link "localhost". Im Anschluss wählen wir im Menü links oben die Option "Edit Config". Im Reiter "Xfer" im Hauptfenster wählen wir danach als "Xfer Method" die Option "rsync". Unter "RsyncClientPath" stellen wir dem bestehenden Eintrag ein "/usr/bin/nice -n 10" voran, um die Priorität des rsync-Prozesses zu reduzieren. Weiterhin tragen wir unter "BackupFilesExclude" für den Schlüssel "*" die Pfade /var/lib/backup, /mnt, /media, /tmp, dev, proc und sys sowie alle weiteren Pfade und Dateien ein, die nicht gesichert werden sollen.

Backuppc include exclude.png

Den Rest der Einstellungen kann man in der Regel unverändert lassen. Sollte rsync auf dem Rechner noch nicht isntalliert sein, so holen wir dies in der Konsole mittels apt nach:

 sudo apt-get install rsync

BackupPC läuft aus Sicherheitsgründen unter dem Linux-Benutzer backuppc. Der Zugriff auf die zu sichernden Rechner und Dateien erfolgt via SSH (zumindest bei der von uns gewählten Sicherungsmethode). Dies gilt auch, wenn der lokale Rechner gesichert werden soll. Damit sich BackupPC via SSH als Benutzer root anmelden kann, aktivieren wir die entsprechende Option in der Datei /etc/ssh/sshd_config:

 PermitRootLogin yes

Im Anschluss startend wir den SSH-Dämonen neu:

sudo service ssh restart

Als nächstes werden wir zum Benutzer backuppc:

 sudo su backuppc

In dieser Identität generieren wir ein SSH-Schlüsselpaar:

 ssh-keygen -t rsa -b 4096 -C "<email@example.com>"

Das Schlüsselpaar wird standardmäßig im Heimverzeichnis im versteckten Unterverzeichnis ~/.ssh abgelegt. Der öffentliche Schlüssel ist in der Datei id_rsa.pub gespeichert. Um diesen Schlüssel für den Zugang als Benutzer root zu registrieren, führen wir die folgende Befehlszeile aus:

ssh-copy-id -i ~/.ssh/id_rsa.pub root@localhost

Auf die Aufforderung hin geben wir das Passwort des Benutzers root ein. Ab sofort sollte die Verbindung mittels SSH als Benutzer root auch ohne Passworteingabe möglich sein:

 ssh root@localhost
 exit

Nachdem dies erledigt ist, werden wir wieder zu unserem regulären Benutzer:

 exit

Jetzt sind wir fast soweit, dass wir unser erstes Backup erstellen können. Backups werden im Verzeichnis /var/lib/backuppc gespeichert. Dieses Verzeichnis dient dem Linux-Benutzer backuppc gleichzeitig als Heimverzeichnis. Da wir Backups aus Sicherheitsgründen nicht auf dem gleichen Speichermedium ablegen sollten, empfiehlt sich die Einrichtung eines USB-Speichers (oder externen Speichers im allgemeinen). Dieser muss unbedingt mit einem Dateisystem formatiert sein, welches Linux-Benutzerrechte unterstützt (z.B. ext4fs). Es wird im Folgenden davon ausgegangen, dass der Speicher an der Stelle /mnt/<usb-storage> in das Dateisystem eingebunden ist. Zuerst stoppen wir den Hintergrundprozess von BackupPC:

sudo service backuppc stop

Im zweiten Schritt verschieben wir das existierende Heimverzeichnis auf den externen Speicher:

sudo mv /var/lib/backuppc /mnt/<usb-storage> 

Im Anschluss erstellen wir an der ursprünglichen Stelle einen symbolischen Link auf den neuen Speicherort:

sudo ln -s /mnt/<usb-storage>/backuppc /var/lib/backuppc

Zuletzt aktivieren wir den BackupPC-Hintergrundprozess erneut:

sudo service backuppc start

Damit sind wir soweit, dass wir unser erstes Backup starten können. Hierzu wechseln wir wieder in die Web-Oberfläche. In der Ansicht für den Rechner "localhost" hat man unter "User Actions" durch Klick auf die Schaltfläche "Start Full Backup" die Möglichkeit, ein erstes, vollständiges Backup manuell zu starten. Danach heißt es Geduld haben. Sollte es zu einem Fehler kommen, empfiehlt sich ein Studium der Log-Dateien. In Zukunft sollten die Backups automatisch erstellt werden. Wie sich die Intervalle anpassen lassen, entnimmt man am besten der Dokumentation zu BackupPC. Wenn alles funktioniert wie es soll, erwartet einen in Kürze eine Übersicht wie in dem nachfolgenden Bildschirmfoto dargestellt.

Backuppc localhost summary.png