Backupjob auf Synology NAS einrichten

dieser Backupjob wird verwendet, um einzelne Dateien auf google drive zu sichern, die in einem App-Verzeichnis liegen und vom normalen Backupjob des NAS nicht erreicht werden können.

Auch hier geht der Weg wieder über die Shell. Dabei verwenden wir ein Wahnsinnstool rclone.

sudo -i

Wir wechseln zuerst in das Verzeichnis /tmp und legen dort ein Verzeichnis rclone an und wechseln dann dorthin:

cd /tmp
mkdir rclone
cd rclone

Wir laden uns rclone herunter, entpacken es, setzen die Rechte und wechseln in das Unterverzeichnis:

curl -o rclone.zip https://downloads.rclone.org/rclone-current-linux-amd64.zip
7z x rclone.zip
chmod +x rclone
cd rclone-v1.72.1-linux-amd64

Nun verschieben wir rclone in ein Verzeichnis, das im System auffindbar ist:

sudo mv rclone /usr/local/bin

Jetzt muss rclone konfiguriert werden. Das Tool ist so komplex, dass das Konfigurieren für mich das Schwierigste war.

rclone config

Im Folgenden stellt rclone diverse Fragen. Die Antworten werden hier dokumentiert:

>n (new remote)

name>mygoogledrive  (der Name wird nachher als Ziel verwendet, frei wählbar)

>22 (derzeit die Nummer für google drive, es können auch andere Services verwendet werden)

client_id>enter drücken

client_secret> enter drücken

scope>1

service_account_file>enter drücken

edit advanced config? N

Use webbrowser to automatically authenticate rclone remote? N

Gehe jetzt auf dein Windows-System, dort https://downloads.rclone.org/rclone-current-windows-amd64.zip herunterladen. Das zip in ein Verzeichnis deiner Wahl entpacken, dann per Powershell in das Verzeichnis wechseln. Dort dann den Befehl eingeben, der dir in der NAS-Shell angezeigt wird. Etwa so:

rclone authorize „drive“ „hdfuerndflwerfwdmf“

In der Powershell wird dann ein Text (Token) zurückgegen mit der Anleitung, was genau man kopieren muss. Das Token wird dann in der NAS-Shell eingefügt und es geht weiter:

config_token>hier den Token einfügen

Configure this as a Shared Drive? (y/n)>n

Yes this is OK: y

q

Nun legen wir in der NAS-GUI im Wurzelverzeichnis ein Verzeichnis „scripts“ an. Dort erstellen wir eine Datei emby_backup.sh.

Die Datei editieren wir und fügen folgenden Text ein:

#!/bin/bash
# Quelle und Ziel
SOURCE="/volume1/@appdata/EmbyServer/data/library.db"
DEST=" mygoogledrive:verzeichnis_auf_googledrive"
# Logfile
LOG="/var/log/rclone_emby_backup.log"
# Zeitstempel
DATE=$(date +"%Y-%m-%d_%H-%M")
# Temporäre Dateien
TMP="/tmp/library_${DATE}.db"
TMP_COMPRESSED="${TMP}.xz"
# 1. Kopie erstellen (falls Emby die Datei gerade nutzt)
cp "$SOURCE" "$TMP"
# 2. Maximale Kompression (xz -9e = höchste Kompression + extreme Optimierung)
xz -9e "$TMP"
# 3. Upload nach Google Drive
/usr/local/bin/rclone copy "$TMP_COMPRESSED" "$DEST" --progress >> "$LOG" 2>&1
# 4. Temporäre Datei löschen
rm "$TMP_COMPRESSED"
echo "Backup abgeschlossen am $DATE" >> "$LOG"

Tipp: lege einen Unterordner auf google drive an. Du ersetzt dann im Script „verzeichnis_auf_googledrive“ mit deinem Verzeichnis.

Jetzt geht’s in den Aufgabenplaner der NAS-GUI.

  1. Erstellen → Ausgelöste Aufgabe → Benutzerdefiniertes Skript
  2. Benutzer: root
  3. Zeitplan: z. B. täglich 03:00
  4. Unter „Aufgabeneinstellungen“:
sh /volume1/scripts/emby_backup.sh

Damit wird das angelegte Script wie definiert regelmäßig ausgeführt.

nano als Editor in der Shell einrichten

Ich mag den Linux-Editor vi nicht, als Alternative habe ich mir nano installiert. Das geht über die Einbindung einer neuen Quelle im Paket-Zentrum. Dort wechselt man zu Einstellungen und den Reiter „Paketquellen“. Hier fügt ihr nun https://packages.synocommunity.com hinzu. Dadurch erhält man einen neuen Eintrag ganz links in der Paketzentrum-Übersicht namens „Community“. Dort steht nun weitere Software zur Verfügung. Wir benötigen die SynoCLI File Tools.

ssh-Zugang für Synology-NAS einrichten

Wer noch keinen Shellzugriff hat, muss zuerst in den NAS-Einstellungen („Systemsteuerung“) den Eintrag „Terminal&SMTP“ wählen und den ssh-Dienst aktivieren. Ich empfehle, den Port auf 22 zu setzen.

ACHTUNG: aus Sicherheitsgründen empfehle ich außerdem, den SSH-Dienst nach Gebrauch wieder zu deaktivieren.

Die Shell erreicht man unter Windows zB. mit der Powershell: dort gibt man ein:

ssh user@nas

Dabei solltet ihr einen User nehmen, der Admin-Rechte hat. Anstelle des „nas“ müsst ihr eventuell die IP-Adresse angeben.