Das Terminal-Skript calcardbackup von Bernhard Ostertag ist die perfekte Wahl für Ihr Vorhaben. Es liest die Zugangsdaten der Datenbank direkt aus der Nextcloud-config.php aus und exportiert alle Kalender (.ics) und Adressbücher (.vcf) als getrennte, lesbare Textdateien. [1, 2]
Da Sie ein Ubuntu-System mit Plesk nutzen, ist die Einrichtung in vier einfache Schritte unterteilt. Sie benötigen dazu SSH-Zugriff auf Ihren Server.
Schritt 1: Vorbereitung des Backup-Ordners
Zuerst erstellen wir auf dem Server ein Verzeichnis, in dem die exportierten Backup-Dateien sicher abgelegt werden.
- Verbinden Sie sich per SSH/Terminal als
root-Nutzer mit Ihrem Ubuntu-Server. - Erstellen Sie den Zielordner (am besten außerhalb des öffentlichen Webspace-Ordners aus Sicherheitsgründen):
mkdir -p /var/backup/nextcloud_calcard - Passen Sie die Rechte an, damit der Plesk-Webserver-Nutzer (
www-data) später in diesen Ordner schreiben darf: [3]chown -R www-data:www-data /var/backup/nextcloud_calcard
Schritt 2: Download von calcardbackup
Wir laden das Skript direkt aus dem offiziellen Repository auf den Server.
- Wechseln Sie in ein temporäres Verzeichnis:
cd /usr/local/bin - Laden Sie das Skript mit
curlherunter:curl -sSL -o calcardbackup https://codeberg.org - Machen Sie das Skript ausführbar und weisen Sie die Rechte dem System zu: [4]
chmod +x calcardbackup chown root:root calcardbackup
Schritt 3: Der erste manuelle Testlauf
Bevor wir das Ganze automatisieren, prüfen wir, ob das Skript die Nextcloud-Installation in Plesk fehlerfrei auslesen kann.
Führen Sie den folgenden Befehl aus. Ersetzen Sie dabei /var/www/vhosts/DEINE-DOMAIN.de/httpdocs/ durch den exakten Pfad, unter dem Ihre Nextcloud in Plesk liegt: [5]
sudo -u www-data /usr/local/bin/calcardbackup "/var/www/vhosts/DEINE-DOMAIN.de/httpdocs" -o "/var/backup/nextcloud_calcard"
- Erklärung der Parameter:
sudo -u www-data: Führt das Skript im Namen des Webserver-Benutzers aus (wichtig für die Dateirechte).-o "/pfad/": Definiert das Ausgabe-Verzeichnis für das fertige Backup. [1, 3]
Was passiert jetzt? Das Skript erstellt im Zielordner ein komprimiertes .tar.gz-Archiv. Wenn Sie dieses entpacken, finden Sie eine saubere Ordnerstruktur: Jeder Nextcloud-Nutzer hat dort einen eigenen Unterordner, in dem seine Kalender als .ics und Adressbücher als .vcf im Klartext liegen. [6]
Schritt 4: Automatisierung via Plesk-Cronjob
Damit die Datensicherung ab jetzt jede Nacht vollautomatisch abläuft, richten wir den Befehl direkt in der Plesk-Oberfläche ein. Das ist komfortabler und übersichtlicher als die manuelle crontab über das Terminal.
- Loggen Sie sich in Ihr Plesk-Panel ein.
- Gehen Sie links auf Websites & Domains und wählen Sie die Nextcloud-Domain aus.
- Scrollen Sie nach unten und klicken Sie auf Geplante Aufgaben (Scheduled Tasks / Cronjobs).
- Klicken Sie auf Aufgabe hinzufügen.
- Konfigurieren Sie die Aufgabe wie folgt:
- Aufgaventyp:
Befehl ausführen(Command). - Befehl: Geben Sie den exakten Testbefehl von oben ein:
/usr/local/bin/calcardbackup "/var/www/vhosts/DEINE-DOMAIN.de/httpdocs" -o "/var/backup/nextcloud_calcard" -r 30(Der zusätzliche Parameter-r 30am Ende sorgt automatisch dafür, dass Backups, die älter als 30 Tage sind, von selbst gelöscht werden, damit Ihre Festplatte nicht vollläuft). - Systembenutzer: Wählen Sie zwingend den Systembenutzer des Webspaces aus (z.B. Ihren Plesk-Abonnenten oder standardmäßig
www-data). - Ausführen: Wählen Sie Täglich und stellen Sie eine Uhrzeit in der Nacht ein (z. B.
03:00Uhr). [1, 7]
- Aufgaventyp:
- Klicken Sie auf Speichern.
Ab sofort extrahiert Ihr Server jede Nacht alle Kalender-, Aufgaben- und Kontaktdaten als lesbare Einzeldateien. Sollte ein Benutzer wie calcard@domain.de jemals versehentlich Daten löschen, können Sie das .tar.gz-Archiv des Vortrags einfach per Plesk-Filemanager öffnen und genau die benötigte .ics– oder .vcf-Datei direkt wieder in Nextcloud importieren. [8]
Möchten Sie zusätzlich wissen, wie Sie das Skript so einstellen, dass es Ihnen im Falle eines Fehlers automatisch eine Benachrichtigungs-E-Mail über Plesk zusendet?
[2] https://help.nextcloud.com
[4] https://www.strobelstefan.de
[5] https://www.patrickweber.info
[6] https://help.nextcloud.com
[7] https://syncloud.discourse.group
Datensicherheit
Die Sorge um die Datensicherheit ist absolut berechtigt und zeigt, dass Sie sich tiefgehende Gedanken über die Absicherung Ihres Servers machen.
Um es direkt vorwegzunehmen: Das Skript zweigt keine Daten ab und stellt kein zusätzliches Sicherheitsrisiko dar.
Die Architektur und Funktionsweise des Skripts schützt Ihre Daten aus folgenden strukturellen Gründen:
1. Das Skript nutzt den offiziellen, lokalen Weg
calcardbackup verhält sich technisch exakt so wie Nextcloud selbst.
- Wenn ein Benutzer im Browser auf Ihre Nextcloud zugreift, muss das Nextcloud-System (PHP) die Zugangsdaten aus der Datei
config.phplesen, um sich mit der MySQL-Datenbank zu verbinden. - Das Skript macht exakt dasselbe: Es läuft lokal auf Ihrem Ubuntu-Server, öffnet die
config.php, liest die Zugangsdaten und verbindet sich mit der Datenbank, um die Daten zu exportieren. - Es findet keine Übertragung ins Internet statt. Die Daten verlassen zu keinem Zeitpunkt Ihren eigenen Server. Da das Skript komplett in Bash geschrieben und Open Source ist, kann der gesamte Quellcode von jedem überprüft werden.
2. Zugriffsschutz durch Systemrechte (Das Sicherheits-Schloss)
Ein Angreifer könnte die Zugangsdaten über das Skript nur dann abfangen oder missbrauchen, wenn er ohnehin schon vollständigen Zugriff auf Ihren Server hätte.
Im vorherigen Schritt haben wir die Rechte extrem restriktiv gesetzt:
- Das Skript liegt in
/usr/local/binund gehört dem Benutzerroot. Nur Administratoren können das Skript verändern. - Ausgeführt wird es über Plesk im Namen des Webserver-Benutzers (
www-data). Dieser Benutzer hat standardmäßig sowieso das Recht, dieconfig.phpvon Nextcloud zu lesen (sonst würde Ihre Nextcloud im Browser gar nicht funktionieren).
Das bedeutet: Das Skript erlangt keine neuen Rechte, die der Webserver nicht ohnehin schon besitzt. Ein unbefugter Dritter hat keine Möglichkeit, sich in diesen lokalen Prozess einzuklinken.
Was Sie für maximale Datensicherheit tun können:
Da die exportierten Daten nun als lesbare .ics– und .vcf-Dateien in dem Ordner /var/backup/nextcloud_calcard liegen, sind sie dort im Klartext gespeichert. Um diesen Ordner perfekt abzusichern, sollten Sie folgende zwei Punkte beachten:
- Verschlüsselung des Zielordners (Optional, über das Skript):
calcardbackupbesitzt eine integrierte Funktion, mit der das fertige Backup-Archiv direkt mit einem Passwort verschlüsselt werden kann (mittelsgpgoder7z). Selbst wenn jemand physischen Zugriff auf die Backup-Datei erlangt, kann er sie ohne das Passwort nicht öffnen. - Rechte des Backup-Ordners prüfen:
Stellen Sie sicher, dass andere Benutzer auf Ihrem Ubuntu-Server (falls vorhanden) diesen Ordner nicht einsehen können. Der Befehlchmod 700 /var/backup/nextcloud_calcardsorgt dafür, dass ausschließlich der Besitzer des Ordners Zugriff darauf hat.
Möchten Sie, dass wir den Plesk-Befehl aus Schritt 4 so erweitern, dass das Skript das erzeugte Backup-Archiv automatisch mit einem sicheren Passwort verschlüsselt, bevor es auf der Festplatte abgelegt wird?