2026-04-07 12:45:35 +02:00
2026-04-07 10:39:49 +02:00
f
2026-04-07 12:45:35 +02:00
2026-04-07 12:16:33 +02:00
fix
2026-04-07 12:13:48 +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.

S
Description
No description provided
Readme 57 KiB
Languages
Shell 100%