Wie sich ein Raspberry Pi als automatischer Backup-Server nutzen lässt

Auf der Suche nach einer Möglichkeit automatische Backups bestimmter Ordner meines Windows Rechners herzustellen fand ich Syncthing. Bisher habe ich unregelmäßig manuell Kopien auf externen Festplatten hergestellt, was auf Dauer umständlich ist.

Das Programm Syncthing erlaubt es Ordner zwischen mehreren Rechnern zu synchronisieren. Ich nutze es um eine Kopie von mehreren Ordnern meines Windows Rechners auf dem Raspberry Pi zu speichern. Anschließend hält er diese auf dem aktuellen Stand.

Dazu sind folgende Schritte notwendig:

  1. Installation von Syncthing auf dem Raspberry Pi
  2. Einrichten des automatischen Starts von Syncthing über Systemd
  3. Rechtevergabe für Zugriff innerhalb des Netzwerks
  4. Installation des Windows Client
  5. Verbinden des Windows Clients mit dem Raspberry Pi
  6. Festlegung von Ordnern für Backups

Die Anleitung ist so aufgebaut, dass sämtliche Änderungen am Raspberry Pi vom Windows Rechner über SSH und einen Browser vorgenommen werden können.

1. Installation Syncthing

Das Herunterladen und die Installation der Software unter Linux ist hier beschriebenen. Da die Dateien zuverlässig synchronisiert werden sollen, entschied ich mich für den Stable Channel.

2. Einrichten des Autostart

Syncthing soll automatisch starten. Das ist über einen systemd Service möglich, was hier beschrieben wird. Bei mir haben diese beiden Befehle ausgereicht:
Zunächst wird dem Service erlaubt automatisch zu starten:
systemctl enable syncthing@myuser.service
Anschließend wird der Service gestartet:
systemctl start syncthing@myuser.service
Ob der Service tatsächlich läuft lässt sich mit diesem Befehl überprüfen:
systemctl status syncthing@myuser.service

3. Einrichten des Zugriff auf die Web-GUI

Als nächstes konfiguriere ich Synchting so, dass ich mit einem anderen Rechner auf die Web-GUI zugreifen kann. Per default steht die GUI lediglich auf dem Rechner zur Verfügung auf dem Syncthing läuft, also hier auf dem Raspberry Pi.
Durch Anpassen der config-Datei können alle Rechner des lokalen Netzes auf sie zugreifen. Dazu muss in der config-Datei die IP-Adresse vom Localhost 127.0.0.1 auf 0.0.0.0 geändert werden:
sudo nano ~/.config/syncthing/config.xml

Anschließend lässt sich über die IP-Adresse des Raspberry Pi sowie dem default Syncthing Port 8384 mit einem Broswer auf die WebGUI zugreifen.
Die IP-Adresse des Rechners lässt sich mit dem Befehl ifconfig abfragen:

Zur Initialisierung der Änderungen wird Syncthing neugestartet:
systemctl restart syncthing@pi.service
Die Web-GUI sollte nun für alle Netzwerkteilnehmer unter der IP-Adresse Hosts (hier 192.168.178.100) und dem Port 8384 erreichbar sein:

Unter Aktionen -> Einstellungen -> GUI lässt sich der Zugriff auf die GUI durch Vergabe eines Nutzernamens und Passworts beschränken.

Damit ist Syncthing auf dem Raspberry Pi einsatzbereit.

4. Installation Windows Client

Als nächstes gilt es Syncthing auf dem Windows Rechner zu installieren.
Hierfür verwende ich Synctrayzor. Dabei handelt es sich um eine GUI für Syncthing die zusätzliche Funktionen wie Autostart und ein Tray Icon mitbringt. Synctrayzor kann hier heruntergeladen werden.

5. Verbinden des Windows Clients mit dem Raspberry Pi

Vor dem Austausch von Dateien müssen die betreffenden Rechner miteinander verbunden werden. Das erfolgt über die Eingabe der Kennungen der Kommunikationspartner, die diese gleichzeitig authentifizieren. Die Kennung lässt sich über Aktionen -> Eigene Kennung abfragen.
Hier kopiere ich zunächst die Kennung des Windows Rechners:

Auf dem Raspberri Pi lege ich für den Windows Rechner ein neues Gerät an und füge die zuvor kopierte Kennung ein:

Anschließend kehren wir den Prozess um und fügen dem Windows Rechner die Kennung des Raspberry Pi hinzu.

6. Ordner für Backups auswählen und Speicherort festlegen

Zum Erstellen eines Backups eines Windows Ordners auf dem Raspberry Pi lässt sich wie folgt vorgehen:
Der Ordner wird durch Angabe seines Pfads definiert. Unabhängig von seinem Namen im Dateisystem kann in Syncthing ein eigener Name ("Ordner Kennung" vergeben werden.

Anschließen kann bestimmt werden mit welchen Geräten der Ordner geteilt werden soll. In meinem Fall mit dem Raspberry Pi:

In der Web-GUI des Raspberry Pi erscheint darauf ein Dialogfeld. Ich möchte den Ordner auf dem Raspberry Pi speichern und wähle daher "Hinzufügen".

Anschließend habe gilt es auf dem Raspberry einen Ort zu bestimmen an dem der Ordner gespeichert werden soll. Auch hier kann für eine bessere Lesbarkeit eine Ordnerkennung hinzugefügt werden.

Nach Klicken auf Speichern sollte der Inhalt der Ordner auf den Raspberry Pi übertragen werden.

Zukünftge Änderungen werden automatisch synchronisiert, sofern beide Geräte gleichzeitig mit dem Netzwerk verbunden sind.