Files
nextcloudRemoteBackupScripts/README.md
T

76 lines
2.8 KiB
Markdown
Raw Normal View History

2026-04-07 12:16:33 +02:00
Nextcloud Data Backup Script
Dieses Bash-Script dient zur inkrementellen Sicherung (Synchronisation) von Nextcloud-Datenverzeichnissen auf einen Remote-Server via rsync über SSH. Nach Abschluss des Backups wird eine Statusmeldung sowie die Log-Datei direkt in einen Nextcloud Talk-Raum gesendet.
Features
Effiziente Übertragung: Nutzt rsync, um nur geänderte Daten zu übertragen.
Spezifische Filter: Schließt automatisch unnötige Log-Dateien und das appdata-Verzeichnis aus.
Nextcloud Talk Integration: Sendet Status-Updates und Logfiles über die TalkLib.sh direkt an dein Team.
Sicherheit: Nutzt SSH-Key-Authentifizierung auf einem benutzerdefinierten Port.
Voraussetzungen
1. Abhängigkeiten
rsync: Muss auf dem Quell- und Zielsystem installiert sein.
ssh: Für die verschlüsselte Übertragung.
TalkLib.sh: Diese Bibliothek muss im selben Verzeichnis wie das Script liegen, um die Benachrichtigungsfunktionen bereitzustellen.
2. Infrastruktur & Zugang
SSH-Key: Ein SSH-Key (Standard: /root/.ssh/id_ed25519) muss ohne Passphrase generiert und auf dem Zielserver (alsdorf.spznord.de) hinterlegt sein.
Nextcloud-App-Passwort: Für den User MittagsApp sollte ein dediziertes App-Passwort in den Nextcloud-Sicherheitseinstellungen erstellt werden.
Talk Room Token: Der Token des Ziel-Raums in Nextcloud Talk.
Konfiguration
Die Einstellungen werden direkt im Header des Scripts im Bereich --- KONFIGURATION --- vorgenommen:
Variable Beschreibung
SOURCE_DIR Lokaler Pfad zu den Nextcloud-Daten (mit abschließendem /).
REMOTE_HOST Zielserver (FQDN oder IP).
REMOTE_PORT SSH-Port des Zielservers (hier: 1022).
REMOTE_DIR Zielpfad auf dem Backup-Server.
NC_APP_PASSWORD Das verschlüsselte Passwort/Token für die Talk-API.
ROOM_TOKEN Die ID des Talk-Chatraums.
Ausschlussliste (Excludes)
Das Script ignoriert standardmäßig folgende Dateien/Ordner, um Speicherplatz und Bandbreite zu sparen:
Sämtliche Logfiles (nextcloud.log, audit.log, updater.log, flow.log inkl. Rotationen).
Das Verzeichnis appdata_ocubwyrxncdg (enthält meist Vorschaubilder und Cache).
Verwendung
Script ausführbar machen:
Bash
chmod +x NextcloudBackupScript.sh
Manueller Testlauf:
Bash
./NextcloudBackupScript.sh
Automatisierung (Cronjob):
Um das Backup z. B. täglich um 02:00 Uhr nachts auszuführen, füge folgende Zeile in die Crontab ein (crontab -e):
Code-Snippet
0 2 * * * /pfad/zu/deinem/script/NextcloudBackupScript.sh > /dev/null 2>&1
Sicherheitshinweis
Das Script enthält im aktuellen Zustand ein Klartext-Passwort (NC_APP_PASSWORD). Stellen Sie sicher, dass die Datei nur für den ausführenden User lesbar ist:
Bash
chown root:root NextcloudBackupScript.sh
chmod 700 NextcloudBackupScript.sh
Erstellt für die interne IT-Infrastruktur der PTV Euregio.