GNU/Linux >> LINUX-Kenntnisse >  >> Linux

So sichern Sie NextCloud und verschieben sie auf einen anderen Server

Wenn Sie eine Instanz der beliebten Data Cloud NextCloud ausführen, möchten Sie wahrscheinlich auch eine Möglichkeit, Ihre Daten zu sichern. Heute zeige ich Ihnen, wie Sie NextCloud sichern und Ihre Dateien auf einen anderen Server verschieben. Wir werden dies auf die einfachste Weise tun, keine Datendeduplizierung, keine inkrementelle Sicherung, sondern einfach eine tar.gz-Datei unserer wichtigsten Daten erstellen und verschieben auf den Backup-Server überschreiben und den vorhandenen mit Cron überschreiben. Ich gebe Ihnen eine Option, die das vorhandene Backup nicht überschreibt, sondern auch jedes Backup einzeln mit Datum erstellt.

Sehen wir uns zuerst unser Szenario an.

Das Szenario

NextCloudServer =Unser NextCloud-Server, natürlich..

BackupServer =Unser Backup-Server.

Was wollen wir erreichen? Wir wollen Backups auf NextCloudServer erstellen und auf unseren BackupServer verschieben. Für beide Server verwenden wir in diesem Beispiel Ubuntu 16.04 LTS.

Wo also anfangen? Zuerst müssen wir unseren BackupServer-Ordner auf unserem NextCloud-Server mounten.

Nehmen wir an, unser Backup-Server hat einen Ordner namens "backups", den Sie natürlich auf Ihrem BackupServer erstellen müssen.

Nehmen wir also an, der Pfad zu unserem BackupServer einschließlich des Backup-Ordners lautet:

//BackupServer.com/backups

Schritt 1 – NextCloud in den Wartungsmodus versetzen

Um die Datenintegrität zu gewährleisten, versetzen wir NextCloud zunächst in den Wartungsmodus. Dadurch wird sichergestellt, dass niemand aktiv an NextCloud arbeitet, und das Risiko beschädigter Backups wird verringert.

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

Schritt 2 – Mounten des Sicherungsservers

Erstellen Sie auf Ihrem NextCloudServer ein neues Verzeichnis. Sie können es erstellen, wo immer Sie möchten, für dieses Beispiel verwenden wir Folgendes:

mkdir /mnt/cifs/backups/nextcloud

Um CIFS-Freigaben mounten zu können, müssen Sie cifs-utils installiert haben, also machen wir das zuerst.

apt-get update
apt-get install cifs-utils

Manuelles Mounten des Laufwerks

Zuerst erstellen wir eine Datei, in der wir die Zugangsdaten auf unserem Backup-Server speichern, damit wir sie nicht als Klartext in unserem Skript verwenden müssen.

nano /etc/backup-credentials.txt

Und geben Sie Ihre Anmeldeinformationen wie im folgenden Beispiel ein:

Drücken Sie STRG+O zum Speichern und STRG+X zum Beenden.

Jetzt müssen wir die Berechtigungen anpassen:

chmod 600 /etc/backup-credentials.txt

Danach werden wir unseren BackupServer manuell mounten.

mount -t cifs -o credentials=/etc/backup-crendetials.txt //BackupServer.com/backups /mnt/cifs/backups/nextcloud

Dies sollte Ihren //BackupServer.com/backups-Ordner in /mnt/cifs/backups/nextcloud.

gemountet haben

Sie können dies mit dem folgenden Befehl überprüfen:

df -h

Wenn Sie jetzt Ihren NextCloudServer neu starten würden, wäre der Mount weg, weil wir ihn gerade manuell hinzugefügt haben. Sie können das Laufwerk automatisch zuordnen, indem Sie die Datei /etc/fstab ändern oder einfach den Mount-Befehl von oben in Ihren Cronjob einfügen, was die Option ist, die wir wählen werden.

Ich wähle diese Option ausdrücklich, um Fehler beim Neustart zu vermeiden. Wenn das Laufwerk während des Neustarts des Servers nicht verfügbar ist, wechselt es möglicherweise in den Notfallmodus und wird nicht angezeigt. Es gibt Möglichkeiten, dies zu umgehen, indem Sie die Option nofail oder noauto in der fstab-Datei verwenden, aber ich werde darauf nicht eingehen und stattdessen den sicheren und einfachen Weg wählen. Wenn Sie Ihr Laufwerk automatisch mounten möchten, indem Sie Ihre fstab-Datei ändern, führen Sie eine Google-Suche durch, um zu erfahren, wie das geht, aber seien Sie schlau, wenn Sie Ihre fstab-Datei bearbeiten, da dies Ihren Server am Booten hindern kann.

Sie haben die Wahl.

Schritt 3 - Backups erstellen

In Ordnung, jetzt, wo wir das Mount eingerichtet haben, müssen wir herausfinden, welche Dateien wir sichern müssen.

Wir müssen Folgendes sichern:

  • Das Hauptverzeichnis unter /var/www/nextcloud
  • Das Datenverzeichnis befindet sich standardmäßig unter /var/www/nextcloud/data, aber es wird empfohlen, es an einen anderen Ort außerhalb des Ordners /www/ zu verschieben, aber ich werde Ihnen zeigen, wie Sie es finden.
  • Die SQL-Datenbank

Hauptverzeichnis sichern

tar -cpzf /mnt/cifs/backups/nextcloud/NextcloudBackup_FileDir.tar.gz -C /var/www/nextcloud .

Pass auf . am Ende gehört es zum Kommando. Das war's.

Datenverzeichnis sichern

Wenn sich Ihr Datenverzeichnis also nicht an seinem Standardspeicherort befindet, können Sie es finden, indem Sie die nextcloud-Konfigurationsdatei öffnen:

nano /var/www/nextcloud/config/config.php

Sie können die Datei verlassen, indem Sie STRG+X drücken.

Wie Sie sehen können, zeigt es Ihnen, wo sich Ihr Datenverzeichnis befindet. Verwenden Sie also diesen Pfad zum Sichern. Beachten Sie auch, dass dort geschrieben steht, welche Art von Datenbank Ihre NextCloud verwendet, was für den nächsten Schritt relevant ist.

In Ordnung, um Ihr Datenverzeichnis zu sichern, führen Sie Folgendes aus:

tar -cpzf /mnt/cifs/backups/nextcloud/NextcloudBackup_DataDir.tar.gz -C /var/lib/nextcloud/data .

Passen Sie den /var/lib/nextcloud/data-Pfad an Ihren eigenen Pfad an! Pass auf . am Ende gehört es zum Kommando. Dies kann lange dauern.

Datenbank sichern

Ok, es gibt also mehrere Datenbanken, die NextCloud verwenden kann, in diesem Beispiel gehen wir davon aus, dass wir MySQL verwenden. Wenn Ihre Installation eine andere Datenbank verwendet, müssen Sie den entsprechenden Befehl für Ihre googeln.

Um diesen Datenbank-Dump auf sichere Weise ohne Passwortabfrage in einem Cron-Job durchzuführen, müssen wir zuerst /  erstellen oder die .my.cnf-Datei im Verzeichnis ~/ ändern.

nano ~/.my.cnf

Es ist möglich, dass die Datei bereits existiert und einen Eintrag hat, abhängig von Ihrer Serverkonfiguration, machen Sie sich keine Sorgen, fügen Sie einfach die Zeilen unter dem vorhandenen Text hinzu.

[mysqldump]
user = yourDBusername
password = yourDBpassword

Drücken Sie STRG+O zum Speichern und STRG+X zum Beenden.

Wenn Sie Ihren DB-Benutzernamen oder Ihr Passwort nicht kennen – es steht in Ihrer config.php, die wir uns vorher angesehen haben.

Als nächstes müssen wir die Berechtigungen der Datei anpassen:

chmod 600 ~/.my.cnf

Jetzt können Sie einen Dump Ihrer Datenbank ausführen, ohne ein Passwort einzugeben.

Sie können den SQL-Dump ausführen, indem Sie Folgendes eingeben:

mysqldump – single-transaction -h localhost -u nextcloud > /mnt/cifs/backups/nextcloud/NextcloudBackup_DB.sql

Okay, jetzt haben wir ein Backup der 3 wichtigsten Dateien erstellt. Lassen Sie uns überprüfen, ob alles vorhanden ist.

Wir führen eine CD in unserem Backup-Verzeichnis durch und führen df -h erneut aus, um zu überprüfen, ob der Speicherplatz tatsächlich aufgefüllt ist.

cd /mnt/cifs/backups/nextcloud
df -h

Und das tat es tatsächlich:

Wir können auch ls in unserem Backup-Verzeichnis ausführen, um zu überprüfen, ob die Dateien dort sind:

ls

Und das war's für den Backup-Prozess. Jetzt wissen wir, dass alles funktioniert, und wir können jetzt den gesamten Prozess mit Cron automatisieren. Aber zuerst müssen wir den Wartungsmodus wieder deaktivieren.

Schritt 4 – Wartungsmodus deaktivieren

Schnell und einfach:

cd /var/www/nextcloud 
sudo -u www-data php occ maintenance:mode – off

Schritt 5 – Erstellen eines Cron-Jobs

Jetzt erstellen wir im Grunde genommen einen Cron-Job, der alle Befehle ausführt, die wir nur manuell an einem bestimmten, von uns festgelegten Datum ausführen. Sie sollten zumindest die Cron-Job-Grundlagen lernen, bevor Sie dies blind versuchen. Ich habe ein kurzes und informatives Tutorial l dazu, inklusive Video .

Ich möchte, dass mein Cron-Job jeden Sonntag ab 20:59 Uhr ausgeführt wird.

Wir erstellen einen Cron, indem wir die Crontab-Datei ändern:

crontab -e

Jetzt wissen wir, dass die Sicherung unseres Datenverzeichnisses bei weitem am längsten dauern wird, also führen wir dies als letzten Befehl aus.

59 20 * * 7 cd /var/www/nextcloud; sudo -u www-data php occ maintenance:mode – on
0 21 * * 7 mount -t cifs -o credentials=/etc/backup-credentials.txt //BackupServer/backup /mnt/cifs/backups/nextcloud
05 21 * * 7 tar -cpzf /mnt/cifs/backups/nextcloud/NextcloudBackup_FileDir.tar.gz -C /var/www/nextcloud .
30 21 * * 7 mysqldump – single-transaction -h localhost -u nextcloud > /mnt/cifs/backups/nextcloud/NextcloudBackup_DB.sql
00 22 * * 7 tar -cpzf /mnt/cifs/backups/nextcloud/NextcloudBackup_DataDir.tar.gz -C /var/lib/nextcloud/data .
00 02 * * 1 cd /var/www/nextcloud; sudo -u www-data php occ maintenance:mode – off

Lassen Sie uns schnell jede Zeile durchgehen, um die Verwirrung zu beseitigen.

  • Jeden Sonntag 20:59: Wartungsmodus aktivieren
  • Jeden Sonntag 21:00: Stellen Sie sicher, dass unser BackupServer gemountet ist/mounten Sie ihn erneut
  • Jeden Sonntag 21:05: Sichern Sie unser NextCloud-Dateiverzeichnis
  • Jeden Sonntag 21:30: Sichern Sie unsere SQL-Datenbank
  • Jeden Sonntag 22:00: Sichern Sie unser Big-Data-Verzeichnis
  • Jeden Montag 02:00: Wartungsmodus deaktivieren

Jetzt können Sie sehen, dass ich dem Skript genügend Zeit zwischen der letzten Datenverzeichnissicherung und dem Verlassen des Wartungsmodus gegeben habe.

STRG+O zum Speichern und STRG+X zum Beenden.

Wenn Sie überprüfen möchten, ob das Skript ausgeführt wurde, navigieren Sie einfach am Montag zum Sicherungsordner und führen Sie es aus.

ls -la

Um zu überprüfen, ob die Dateien die richtigen Daten haben.

Und das ist es. Wie gesagt, dies ist eine einfache und einfache Möglichkeit, ein Backup zu erstellen. Wenn Sie inkrementelle Backups erstellen oder Datendeduplizierung implementieren möchten, müssen Sie sich nach etwas wie Rsync oder Borgbackup umsehen.

Wie versprochen, finden Sie unten die Option, einzelne Dateien zu erstellen, ohne sie zu überschreiben.

Schritt 6 (OPTIONAL) - Individuelle Dateinamen verwenden

Das ist sehr einfach, aber denken Sie daran, dass dies Ihren Festplattenspeicher ziemlich schnell füllen wird, je nachdem, wie oft Sie Sicherungen ausführen. Wir erstellen einfach individuelle Dateinamen, indem wir die Datumsoption in unserem Sicherungsbefehl hinzufügen.

Anstatt also diesen Befehl zu verwenden:

tar -cpzf /mnt/cifs/backups/nextcloud/NextcloudBackup_FileDir.tar.gz -C /var/www/nextcloud .

Sie würden dies verwenden:

tar -cpzf /mnt/cifs/backups/nextcloud/NextcloudBackup_FileDir_`date +"%Y%m%d"`.tar.gz -C /var/www/nextcloud .

Dies würde dem Dateinamen das Datum mit dem spezifischen Erstellungsdatum hinzufügen.

Diesen Schritt wiederholen Sie einfach auch für alle anderen Backups. Ich werde Ihnen in einem zukünftigen Tutorial beibringen, wie Sie Backups wiederherstellen.


Linux
  1. So erstellen Sie eine Sicherung

  2. Was ist ein Webserver und wie funktioniert ein Webserver?

  3. So sichern und wiederherstellen Sie das SVN-Repository unter Linux

  4. So sichern und wiederherstellen Sie eine Datenbank in PostgreSQL

  5. Wie verschiebt (und überschreibt) man alle Dateien von einem Verzeichnis in ein anderes?

Wie verschiebt man Konten von einem cPanel-Server auf einen anderen cPanel-Server?

So installieren Sie Tomcat und Java unter CentOS 8

So installieren und konfigurieren Sie Parse Server unter Ubuntu 20.04

So sichern und wiederherstellen Sie eine WordPress-Website

So installieren und konfigurieren Sie Nextcloud unter Ubuntu 20.04

So installieren und konfigurieren Sie Sandstorm Server unter CentOS 8