76 lines
2.8 KiB
Markdown
76 lines
2.8 KiB
Markdown
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.
|