diff --git a/README.md b/README.md index e69de29..aa67dc0 100644 --- a/README.md +++ b/README.md @@ -0,0 +1,75 @@ +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.