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.