Dies ist eine alte Version des Dokuments!


Digital-Café Berlin

Nextcloud-Backup-Skript

Was macht dieses Skript?

Das Skript erstellt automatisch eine Sicherung (Backup) Ihrer Nextcloud-Instanz. Es werden sowohl alle hochgeladenen Dateien (Dokumente, Fotos usw.) als auch die dazugehörige Datenbank (Benutzer, Teilungen, Einstellungen) gesichert. Das Ergebnis ist eine einzige komprimierte .tar.gz-Datei, die im Notfall zur Wiederherstellung verwendet werden kann.

Wann wird das Skript eingesetzt?

  • Manuell – Ein Administrator führt es bei Bedarf aus.
  • Automatisch – Es kann z. B. täglich über einen Cron-Job (geplante Aufgabe) gestartet werden, um regelmäßige Backups zu gewährleisten.

Was wird genau gesichert?

  • Das gesamte Nextcloud-Installationsverzeichnis (Programmdateien, Konfiguration, Apps)
  • Das data-Verzeichnis (enthält alle Benutzerdateien, sofern es sich außerhalb der Installation befindet)
  • Ein vollständiger Export der Nextcloud-Datenbank (MySQL/MariaDB)

Welche Einstellungen sind wichtig?

Vor der ersten Nutzung müssen in der Skriptdatei zwei Pfade angepasst werden:

Variable Bedeutung
BACKUP_BASE Ordner, in dem die Backup-Dateien gespeichert werden (z. B. ein externer USB-Stick oder ein Netzwerklaufwerk)
MAX_BACKUPS Wie viele alte Backups aufbewahrt werden sollen (ältere werden automatisch gelöscht)

Benötigte Berechtigungen

Das Skript muss mit Administratorrechten (root) ausgeführt werden, da es auf geschützte Verzeichnisse und Dienste zugreift.

Was passiert während des Backups?

  1. Nextcloud wird in den Wartungsmodus versetzt – Benutzer können sich dann nicht einloggen und keine Änderungen vornehmen. Das stellt sicher, dass das Backup konsistent ist.
  2. Ein Dump der Datenbank wird erstellt.
  3. Alle Dateien und der Datenbank-Dump werden in ein .tar.gz-Archiv gepackt.
  4. Ältere Backups über der eingestellten Anzahl werden gelöscht.
  5. Der Wartungsmodus wird deaktiviert – Nextcloud ist wieder normal erreichbar.

Wo finde ich Fehlermeldungen?

Alle Fehler werden in einer Logdatei festgehalten. Diese liegt im selben Ordner wie die Backups und heißt nextcloud.log. Bei Problemen sollte der Administrator dort nachsehen.

Wichtige Hinweise

  • Backup-Medium: Es wird dringend empfohlen, das Backup auf einem anderen Gerät (z. B. externer USB-Stick, NAS, separates Laufwerk) zu speichern. Wenn die Festplatte der Nextcloud defekt geht, wäre ein Backup auf derselben Platte nutzlos.
  • Plattenplatz: Das Skript prüft derzeit noch nicht automatisch, ob genug freier Speicherplatz vorhanden ist. Der Administrator sollte regelmäßig kontrollieren, dass das Zielverzeichnis nicht voll läuft.
  • Debug-Modus: Für detailliertere Ausgaben während der Ausführung kann die Variable debug im Skript auf 1 gesetzt werden.

Kurzanleitung zur Einrichtung

  1. Skriptdatei auf dem Server speichern (z. B. /usr/local/bin/backup_nextcloud.sh).
  2. Ausführbar machen:
    chmod +x /usr/local/bin/backup_nextcloud.sh
  3. Die vier Hilfsskripte (detect_web_apps.sh, zeitdifferenz.sh, limit_backups.sh, in_arbeit.sh) ebenfalls im Verzeichnis /usr/local/bin ablegen.
  4. BACKUP_BASE und MAX_BACKUPS anpassen.
  5. Testlauf als root:
    sudo /usr/local/bin/backup_nextcloud.sh
  6. Bei Erfolg kann ein Cron-Job eingerichtet werden, z. B. täglich um 2 Uhr nachts:
0 2 * * * root /usr/local/bin/backup_nextcloud.sh

Wiederherstellung

Die erstellte .tar.gz-Datei kann einfach in das gewünschte Verzeichnis entpackt werden (

tar -xzf backupname.tar.gz

). Anschließend muss der Datenbank-Dump eingespielt und ggf. die Konfiguration angepasst werden. Eine detaillierte Wiederherstellungsanleitung finden Sie in der Nextcloud-Dokumentation.