Wie in einem anderen Beitrag beschrieben wurde ein Ubiquiti Unifi Controller auf einem Raspberry Pi installiert und läuft seitdem. Damit nun die automatisch erstellten Datensicherungen im Falle eines Ausfalls der SD-Karte nicht verloren sind, sollten diese auf einen (entfernten) Windows-Server synchronisiert werden.

Mein Mittel der Wahl für solche Jobs ist WinSCP, das sich ganz wunderbar automatisieren lässt. Kurz und knackig sieht das Skript wie folgt aus:

@echo off

rem Konfiguration

 rem Arbeitsverzeichnis festlegen

 set WorkingDir=C:\UniFi-Controller-Backup
 cd %WorkingDir%

rem RaspberryPi

 set host=<IP-Adresse-des-Raspberry-Pi>
 set type=scp
 set username=pi
 set password=<Kennwort>

rem WinSCP-Skript erstellen

 echo option batch abort > script.txt
 echo option confirm off >> script.txt
 echo open %type%://%username%:%password%@%host% >> script.txt
 echo synchronize local -resumesupport=on -delete %WorkingDir%\backup /var/lib/unifi/backup >> script.txt
 echo close >> script.txt
 echo exit >> script.txt

rem WinSCP ausfuehren

 del /q winscp.log

 WinSCP\WinSCP.com /script=script.txt /log=winscp.log > winscp-console.log

 if %errorlevel%==1 echo Fehler bei "WinSCP" > error.txt & exit

rem Aufraeumen

 del /q script.txt

Wichtig: Damit man auf das Datenverzeichnis des UniFi Controllers zugreifen kann, muss man zunächst die Berechtigungen anpassen. Es genügt ein lesender Zugriff, der am Beispiel des pi-Benutzers wie folgt erteilt wird:

sudo usermod -a -G unifi pi

Es wird also schlicht der Benutzer “pi” der Gruppe “unifi” hinzugefügt. Ab der nächsten Anmeldung via ssh, scp, usw. kann man auf den Pfad zugreifen.

Apropos Pfade (nur zur Info):

“/usr/lib/unifi/data” ist ein Link zu “/var/lib/unifi”.

Ein paar Erklärungen:

Beim Aufruf der WinSCP.com werden tatsächlich zwei Protokolle geschrieben. Für auf die Schnelle mal nachschauen finde ich die Konsolenausgabe praktischer. Für Details, vor allem im Fehlerfall, ist dann das eigentliche Log interessanter.

Im Fehlerfall wird eine Datei “error.txt” erstellt, auf deren Vorhandensein z.B. mit Monitoring-Tools geprüft werden und in Folge alarmiert werden kann. Man könnte an dieser Stelle auch ein smtpsend.exe einbauen um direkt eine Mail zu erhalten.

Quellen:

datamate – SPEICHERPFAD DES UNIFI CONTROLLER BACKUPS ÄNDERN

findanyanswer – Where are UniFi controller backups stored?

How-to Geek – Add a User to a Group (or Second Group) on Linux