Backup
Bei diesem Backup sollen Dateien, Systemkonfigurationen sowie Apps (Erweiterungen Ihrer Nextcloud-Installation) automatisch auf eine zweite Festplatte geschrieben werden. Hierbei handelt es sich um eine einfache Kopie der Daten. Es erfolgt weder eine Versionierung noch ein Dateivergleich (zwischen Quelle und Ziel) auf Grundlage einer Prüfsumme. Das Backup wird jedoch automatisch ausgeführt.
Zuerst muss die Festplatte für das Backup formatiert und eingebunden werden. Im Beispiel wird als Mountpoint das Verzeichnis: /var/hdd2/Backup verwendet. Eine Anleitung zum Formatieren und Mounten der Backupfestplatte finden Sie im Bereich: Speichermedien vorbereiten.
Auf der Backupfestplatte werden drei Ordner benötigt. www für das Webverzeichnis, db für die Datenbank und data für die Dateien der Benutzer:innen:
mkdir /var/hdd2/Backup/www
mkdir /var/hdd2/Backup/db
mkdir /var/hdd2/Backup/data
Damit über die Konsole die Nextcloud in den Wartungszustand versetzt werden kann, müssen die OCC Befehle aktiviert werden. Hierzu arbeiten Sie die php.ini Datei für die Kommandozeile:
nano /etc/php/8.1/cli/php.ini
Fügen Sie ganz unten folgende Zeile ein:
apc.enable_cli = 1
Nun sind alle Vorbereitungen getroffen, damit das Backup-Skript erstellt werden kann. Erstellen Sie eine neue Datei, in der das Backup-Skript gespeichert wird:
nano /var/backupskript.sh
Fügen Sie dort folgende Zeilen ein:
#!/bin/bash cd /var/www/nextcloud sudo -u www-data php occ maintenance:mode --on rsync --progress -h -a --delete /var/www/nextcloud /hdd2/Backup/www rsync --progress -h -a --delete /hdd1/nextcloud /hdd2/Backup/data if [ -f /hdd2/Backup/db/cloud.sql ]; then rm /hdd2/Backup/db/cloud.sql fi mysqldump --single-transaction cloud > /hdd2/Backup/db/cloud.sql sudo -u www-data php occ maintenance:mode --off
Erläuterungen zum Backupskript:
- Zeile 2 + 3: Die Nextcloud wird in den Wartungsmodus versetzt, damit keine Daten mehr geändert werden können.
- Zeile 4: Daten des Webverzeichnisses werden gesichert.
- Zeile 5: USER Daten werden gesichert.
- Zeile 6: Der alte Datenbankstand wird gelöscht.
- Zeile 7: Erstellt ein neues Backup der Datenbank.
- Zeile 8: Wartungsmodus wird beendet, die Nextcloud kann wieder verwendet werden.
rsync Synchronisiert Dateien und Ordner zwischen Quelle und Ziel.
rsync [optionen] Quelle Ziel
Optionen:
-progress gibt an, dass rsync während des Kopiervorgangs den Fortschritt ausgeben soll. Kann auch entfernt werden, da das Backupskript automatisiert ausgeführt werden soll.-a steht für den Archiv-Modus. Der Archiv-Modus ist eine Kombination aus mehreren anderen Optionen, die häufig zum Kopieren von Dateien verwendet werden. Wenn die Option -a verwendet wird, werden automatisch die folgenden Optionen aktiviert:
- -r Rekursives Kopieren von Unterverzeichnissen
- -l Behalten von symbolischen Links
- -p Beibehalten von Dateiberechtigungen
- -t Beibehalten von Zeitstempeln
- -g Beibehalten von Gruppeninformationen
- -o Beibehalten von Benutzerinformationen
Die Option -a sorgt also dafür, dass alle diese Optionen aktiviert werden, um eine vollständige Kopie von Verzeichnissen und Dateien zu erstellen, die die gleichen Eigenschaften wie die Quelldateien und -verzeichnisse haben.
-h steht für human-readable (menschlich lesbar). Wenn diese Option bei der Ausführung von rsync verwendet wird, werden die Dateigrößen und andere Informationen in einem für Menschen leichter lesbaren Format angezeigt.
--delete löscht Dateien im Zielverzeichnis, die nicht mehr im Quellverzeichnis vorhanden sind, um sicherzustellen, dass das Zielverzeichnis eine exakte Kopie des Quellverzeichnisses ist.
Damit Sie das Skript ausführen dürfen, verwenden Sie den Befehl:
chmod +x /var/backupskript.sh
Nachdem das Backup-Skript zum ersten Mal ausgeführt wurde, sollten sich auf der Backupfestplatte in den oben beschriebenen Ordnern die Dateien der Nextcloud befinden. Um das Skript manuell zu starten, verwenden Sie den Befehl:
/var/backupskript.sh
Backup Automatisieren
Mit Cron lassen sich immer wiederkehrende Aufgaben zeitbasiert starten. Wenn Sie Cron zum ersten Mal verwenden, werden Sie gefragt, in welchem Editor Sie arbeiten möchten. Bitte wählen Sie hier den Editor nano.
crontab -e
cron-Befehle sind wie folgt aufgebaut:
Minute Stunde Tag Monat Wochentag /Pfad/Programmname
Wenn das Backupscript täglich um 02:30 Uhr starten soll, lautet der Eintrag wie folgt (Die einzelnen Einträge werden durch ein Tab getrennt):
30 2 * * * /var/backupskript.sh