Praxis: Automatisierung und Überwachung von Backups in produktiven Umgebungen Backup in Nextcloud: Internes Backup, Skripte und BorgBackup nutzen

Von Thomas Joos 4 min Lesedauer

Anbieter zum Thema

Eine regelmäßige Sicherung der Nextcloud-Instanz schützt Konfigurationen, Benutzerdaten und Datenbanken vor Verlust. Dieser Beitrag zeigt Methoden für vollständige Backups und beschreibt die Schritte zur sicheren Wiederherstellung.

Erstellen von Wiederherstellungspunkten in Nextcloud.(Bild:  Joos - Nextcloud)
Erstellen von Wiederherstellungspunkten in Nextcloud.
(Bild: Joos - Nextcloud)

Ein vollständiges Backup einer Nextcloud-Instanz ist notwendig, um den Verlust von Konfigurationen, Benutzerdateien und Datenbankinhalten zu vermeiden. Dabei sind vier zentrale Komponenten zu sichern: das Konfigurationsverzeichnis, das Datenverzeichnis, die Theme-Verzeichnisse sowie die verwendete Datenbank.

Wichtig ist generell bei Backups, diese auch regelmäßig zu testen. Die interne Backup-App von Nextcloud ist etwas veraltet, lässt sich aber dennoch auch noch nutzen. Wir haben dieser App einen eigenen Beitrag gewidmet.

Bildergalerie
Bildergalerie mit 6 Bildern

Nextcloud Backup App: Automatisierte Sicherung innerhalb der Weboberfläche

Seit Version 23 steht in Nextcloud eine integrierte Backup-App zur Verfügung. Die Installation erfolgt über das Administrationsinterface. Nach der Aktivierung steht im Menü ein neuer Bereich „Sicherung“ bereit. Hier wird definiert, wann Backups erstellt werden. Standardmäßig erfolgt die Sicherung zwischen 23 und 5 Uhr. Es empfiehlt sich, die Sicherung auf Zeiten geringer Benutzeraktivität zu legen.

Unterstützt werden vollständige und inkrementelle Backups. Ein vollständiges Backup sichert die gesamte Instanz, während inkrementelle Backups nur Änderungen erfassen. Sicherungen werden lokal erstellt, komprimiert, verschlüsselt und anschließend über die App „External storage support“ auf externe Speicherziele wie FTP-Server oder NAS-Systeme verschoben. Zur Sicherheit wird empfohlen, die Sicherungskonfiguration und den Verschlüsselungsschlüssel separat zu exportieren und sicher aufzubewahren.

BorgBackup: Effiziente Sicherung mit Deduplizierung und Verschlüsselung

BorgBackup ermöglicht inkrementelle und verschlüsselte Backups. Die Installation erfolgt über den Paketmanager:

apt install -y borgbackup

Vorbereitend werden die Verzeichnisse /backup/daten, /backup/temp und /restore angelegt:

mkdir -p /backup/daten /backup/temp /restore

Das Repository wird initialisiert:

borg init -e repokey-blake2 /backup/daten/

Während der Sicherung wird der Wartungsmodus aktiviert. Dies kann entweder per OCC-Befehl oder durch Bearbeiten der config.php erfolgen:

sudo -u www-data php /var/www/nextcloud/occ maintenance:mode --on

Oder durch Setzen des Parameters:

"maintenance" => true,

Die Sicherung der Datenbank erfolgt durch mysqldump:

mysqldump --single-transaction --default-character-set=utf8mb4 -h localhost -u root -pPasswort nextcloud > /backup/temp/nextcloud-db.sql

Danach werden die Verzeichnisse /var/www/nextcloud, /home/data und /backup/temp mit Borg gesichert:

borg create --stats /backup/daten::$(date +"%Y%m%d_%H%M%S") /backup/temp /home/data/ /var/www/nextcloud/

Der Webserver wird nach Abschluss neu gestartet und der Wartungsmodus deaktiviert:

systemctl start apache2sudo -u www-data php /var/www/nextcloud/occ maintenance:mode --off

Altbackups werden automatisch verwaltet:

borg prune --progress --stats /backup/daten --keep-within=7d --keep-weekly=4 --keep-monthly=6

Eine tägliche Ausführung wird per Cronjob definiert:

crontab -e0 3 * * * /root/backup.sh > /dev/null 2>&1

Die Wiederherstellung in Nextcloud

Liste aller Backups anzeigen:

borg list /backup/daten

Ein bestimmtes Backup mounten:

borg mount /backup/daten::backupname /restore/

Dateien aus dem gemounteten Backup kopieren und das Backup wieder aushängen:

borg umount /restore/

Manuelle Sicherung via SSH und SFTP

Bei manueller Sicherung wird über SSH auf den Server zugegriffen. Danach werden Archive der wichtigsten Verzeichnisse erstellt:

tar -cvf config_backup.tar /var/www/nextcloud/config/tar -cvf themes_backup.tar /var/www/nextcloud/themes/tar -cvf data_backup.tar /var/www/nextcloud/data/

Die Nextcloud-Datenbank wird mit folgendem Befehl gesichert:

mysqldump --single-transaction --default-character-set=utf8mb4 -h localhost -u root -pPasswort nextcloud > nextcloud-sqlbkp_$(date +"%Y%m%d").bak

Zusätzlich wird empfohlen, den SSH-Ordner des Servers zu sichern:

tar -cvf ssh_backup.tar /root/.ssh/

Dateiübertragungen erfolgen sicher per SFTP, zum Beispiel über den Dolphin-Filemanager. Nach Übertragung sollte ein Hashvergleich erfolgen, um die Integrität der Daten sicherzustellen. Nach erfolgreicher Sicherung sollten alte TAR- und BAK-Dateien entfernt werden, um Speicherplatz freizugeben.

Wiederherstellung einer Nextcloud-Instanz

Vor der Wiederherstellung muss die alte Datenbank entfernt und neu erstellt werden. Für MySQL/MariaDB:

mysql -h localhost -u root -pPasswort -e "DROP DATABASE nextcloud"mysql -h localhost -u root -pPasswort -e "CREATE DATABASE nextcloud CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci"

Für PostgreSQL:

PGPASSWORD="password" psql -h server -U username -d template1 -c "DROP DATABASE \"nextcloud\";"PGPASSWORD="password" psql -h server -U username -d template1 -c "CREATE DATABASE \"nextcloud\";"

Die Wiederherstellung der Daten erfolgt anschließend durch Einspielen des Datenbank-Backups und Kopieren der Verzeichnisse mit rsync:

rsync -Aax nextcloud-dirbkp/ nextcloud/

Nach Abschluss wird der Fingerprint der Daten aktualisiert:

sudo -u www-data php occ maintenance:data-fingerprint

Anschließend empfiehlt sich ein kompletter Dateiscan:

sudo -u www-data php occ files:scan --all

Wichtige Hinweise nach der Wiederherstellung

Wenn das Backup älter ist als die lokalen Daten der Clients, sollten Konflikte bewusst einkalkuliert werden. Der Fingerprint-Befehl hilft, verlorene Dateien vom Client zurückzuholen, kann aber auch Konflikte bei der Synchronisation auslösen. Nach Abschluss der Sicherung und Wiederherstellung sollten offene Portweiterleitungen für SSH-Verbindungen deaktiviert werden, um die Sicherheit der Serverumgebung zu erhöhen.

Checkliste für eine erfolgreiche Sicherung und Wiederherstellung

  • Wartungsmodus aktivieren,
  • Backup der Konfigurationsdateien,
  • Backup des Datenverzeichnisses,
  • Backup der Themes,
  • Sicherung des SSH-Verzeichnisses,
  • Erstellung eines Datenbank-Dumps,
  • Test der Backups auf Integrität,
  • sichere Lagerung auf externen Medien,
  • regelmäßige Wiederherstellungstests,
  • Aktualisierung des Datenfingerprints,
  • Portweiterleitungen nach Sicherung entfernen,
  • Dokumentation aller Prozesse.

Damit lässt sich eine Nextcloud-Instanz umfassend sichern und im Ernstfall vollständig wiederherstellen.

Bildergalerie
Bildergalerie mit 6 Bildern

Weitere Backup-Möglichkeiten für Nextcloud-Instanzen

Neben der Backup App, BorgBackup und manuellen Methoden existieren weitere Ansätze, um Nextcloud-Instanzen abzusichern. Einige Administratoren setzen auf Snapshots auf Dateisystemebene, zum Beispiel mithilfe von Btrfs oder ZFS. Diese Technik erlaubt die Erstellung von Abbildern kompletter Dateisystemzustände innerhalb weniger Sekunden.

Jetzt Newsletter abonnieren

Täglich die wichtigsten Infos zu Cloud Computing

Mit Klick auf „Newsletter abonnieren“ erkläre ich mich mit der Verarbeitung und Nutzung meiner Daten gemäß Einwilligungserklärung (bitte aufklappen für Details) einverstanden und akzeptiere die Nutzungsbedingungen. Weitere Informationen finde ich in unserer Datenschutzerklärung. Die Einwilligungserklärung bezieht sich u. a. auf die Zusendung von redaktionellen Newslettern per E-Mail und auf den Datenabgleich zu Marketingzwecken mit ausgewählten Werbepartnern (z. B. LinkedIn, Google, Meta).

Aufklappen für Details zu Ihrer Einwilligung

Eine weitere Option bietet die Replikation der Datenbank auf einen zweiten Server. Hierbei werden alle Datenbankänderungen in Echtzeit oder zeitversetzt auf eine Sicherungsdatenbank gespiegelt. Zudem kann die Nutzung externer Backup-Dienste, etwa über rclone für Cloud-Ziele wie AWS S3 oder Backblaze B2, eine flexible Speicherstrategie ermöglichen. In diesem Fall sollte auf Verschlüsselung und begrenzte Zugriffskontrollen geachtet werden.

Darüber hinaus können komplette Server-Backups mit Tools wie „rsnapshot“, „Duplicity“ oder „Restic“ integriert werden, um nicht nur Nextcloud, sondern auch Betriebssystem und weitere Anwendungen gemeinsam zu sichern. Diese Lösungen bieten Möglichkeiten zur Versionierung und Deduplizierung, jedoch erfordern sie eine saubere Einbindung in die Backup-Strategie und regelmäßige Tests zur Wiederherstellung.

(ID:50454543)