Produktive Nextcloud sichern: Backup Strategien, die wirklich funktionieren

Sie sehen gerade einen Platzhalterinhalt von Standard. Um auf den eigentlichen Inhalt zuzugreifen, klicken Sie auf die Schaltfläche unten. Bitte beachten Sie, dass dabei Daten an Drittanbieter weitergegeben werden.

Mehr Informationen

Ein zuverlässiges Backup ist essenziell für den sicheren Betrieb einer produktiven Nextcloud. Viele Administratoren verlassen sich jedoch auf unvollständige oder ungeeignete Sicherungen, die sich im Ernstfall nicht konsistent wiederherstellen lassen. In diesem Video zeige ich, wie du deine Nextcloud professionell absicherst und ein Backup-Konzept nach Best Practice aufbaust. Wir betrachten, welche Komponenten gesichert werden müssen, warum ein reines VM-Backup oft nicht ausreicht und wie sich bewährte Backup-Strategien wie die 3-2-1-Regel in der Praxis umsetzen lassen.

Dieser Beitrag wird gesponsort von:

Nextcloud Navigator Prohttps://nextcloud-navigator.de
Dein Weg zum Nextcloud Admin Profi!

🛠️ OpenSource IT-Support 🛠️
Du benötigst Unterstützung bei der Installation oder Konfiguration von OpenSource Software? Wir helfen dir gerne weiter! Schreib uns einfach eine Mail an: service@apfelcast.com

✌🏻Unterstütze unseren Kanal auf Patreon: https://patreon.com/apfelcast

Im Video verwendete Befehle:

## Pakete installieren
sudo apt update
sudo apt install -y borgbackup borgmatic

## Backup-Ziel vorbereiten (lokales Repository)
# -> NAS oder Laufwerk muss zuvor unter /mnt/backup gemountet werden
sudo mkdir -p /mnt/backup/borg-repo
sudo chmod 700 /mnt/backup/borg-repo

sudo borg init --encryption=repokey-blake2 /mnt/backup/borg-repo

## Verzeichnisse für DB-Backups anlegen
sudo mkdir -p /dbbackup
sudo chmod 750 /dbbackup


## Pre-Backup-Skript anlegen
sudo nano /usr/local/sbin/nextcloud-pre-backup.sh


#!/bin/bash
set -euo pipefail

echo "set variables"

ncroot=/var/www/nextcloud
dbbackuppath=/dbbackup

dbusername=$(php -r "include '$ncroot/config/config.php'; echo \$CONFIG['dbuser'];")
dbpassword=$(php -r "include '$ncroot/config/config.php'; echo \$CONFIG['dbpassword'];")
dbdatabase=$(php -r "include '$ncroot/config/config.php'; echo \$CONFIG['dbname'];")

[[ ! -d "$dbbackuppath" ]] && mkdir -p "$dbbackuppath"

echo "Take Nextcloud offline into Maintenance mode"
cd "$ncroot"
sudo -u www-data php occ maintenance:mode --on

cleanup() {
  sudo -u www-data php occ maintenance:mode --off || true
}
trap cleanup EXIT

echo "delete old db-backups (only if backups exist)"
cd "$dbbackuppath"

if ls *.bak >/dev/null 2>&1; then
    rm -f *.bak
    echo "Old backups deleted"
else
    echo "No old backups found – nothing to delete"
fi

mysqldump --single-transaction \
  -h localhost \
  -u"$dbusername" -p"$dbpassword" \
  --databases "$dbdatabase" \
  > "$dbbackuppath/nextcloud-sqlbkp_$(date +'%Y%m%d').bak"

echo "db-backup DONE!"

Ausführbar machen:
chmod +x /usr/local/sbin/nextcloud-pre-backup.sh

## Post-Backup-Skript anlegen
sudo nano /usr/local/sbin/nextcloud-post-backup.sh

#!/bin/bash
set -euo pipefail

echo "Take Nextcloud back online"
ncroot=/var/www/nextcloud
cd "$ncroot"
sudo -u www-data php occ maintenance:mode --off

Ausführbar machen:
chmod +x /usr/local/sbin/nextcloud-post-backup.sh

## borgmatic Konfiguration erstellen
sudo mkdir -p /etc/borgmatic
sudo nano /etc/borgmatic/config.yaml

location:
  source_directories:
    - /var/www/nextcloud
    - /dbbackup
    - /pfad/zum/nc-data-verzeichnis

  repositories:
    - /mnt/backup/borg-repo

storage:
  encryption_passphrase: "HIER_EIN_LANGES_SICHERES_PASSWORT"

retention:
  keep_daily: 7
  keep_weekly: 4
  keep_monthly: 6

consistency:
  checks:
    - repository
    - archives

hooks:
  before_backup:
    - /usr/local/sbin/nextcloud-pre-backup.sh

  after_backup:
    - /usr/local/sbin/nextcloud-post-backup.sh

  on_error:
    - /usr/local/sbin/nextcloud-post-backup.sh
	
	
## Erstes Backup (manuell testen)
Dry Run:
sudo borgmatic --verbosity 2 --dry-run

Echtes Backup:
sudo borgmatic --verbosity 2

Prüfen:
borg list /mnt/backup/borg-repo


## Timer für automatische Ausführung anlegen
sudo systemctl edit borgmatic.timer

[Timer]
OnCalendar=
OnCalendar=*-*-* 02:30:00
RandomizedDelaySec=0

sudo systemctl daemon-reload
sudo systemctl restart borgmatic.timer

systemctl list-timers borgmatic.timer


## Restore
Zielordner für Restore anlegen

sudo mkdir -p /mnt/backup/restore
sudo chmod 750 /mnt/backup/restore

## Fuse installieren
apt install -y python3-llfuse fuse

borg mount \
  /mnt/backup/borg-repo::<backup-id> \
  /mnt/backup/restore

## Backups durchsuchen
cd /mnt/backup/restore

Ähnliche Beiträge