README.md erstellt
This commit is contained in:
@@ -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.
|
||||
|
||||
Reference in New Issue
Block a user