Nextcloud Backup/Restore via Script

Einleitung

Einen wachsenden Datenbestand in regelmäßigen Abständen zu sichern, ist einer der wichtigsten Aufgaben. Ein Datenverlust ist nicht nur ärgerlich, sondern kann bei Firmen oft auch sehr teuer werden. Um sich vor solchen Katastrophen zu schützen, müssen funktionierende Backup-Methoden eingesetzt werden. Jan Rehr von DecaTec.de hat sich mit diesem Thema, in einen seiner zahlreichen Artikel, auseinandergesetzt. Wie genau ein Manuelles sowie eine automatisiertes Backup per Script funktioniert und wie Ihr dies umsetzt, könnt Ihr im verlinkten Artikel entnehmen. Dieses Script richtet sich an alle die ein LAMP oder LEMP Stack ohne Plesk verwenden.

Backup Script für Plesk Nutzer

Dieses Script ist mit Absicht so einfach wie nur möglich gehalten. Gerne können Verbesserungen in den Kommentaren hinterlassen werden.

Das Script befindet sich aktuell in einem Umfangreichen Umbau.

Bevor Sie das Script nutzen, müssen Sie einige angaben im Script tätigen welche mit TODO gekennzeichnet sind.

[tabmenu]

Scripte hochladen und ausführbar machen

Laden Sie das Script via FTP auf Ihren Server hoch. Damit die zwei Scripte auch fukntionieren, müssen Sie die Berechtigung sowie den Dateibesitzer der Datei ändern.

Code
chown root:root simple_backup.sh
chown root:root simple_restore.sh
chmod 700 simple_backup.sh
chmod 700 simple_restore.sh
Exkurs: Berechtigungen

Numerisch (Oktal)

Hier werden die Zugriffsrechte mit einer dreistelligen Oktalzahl angegeben, jede Ziffer entspricht einer Benutzerkategorie

Code: Beispiel
chmod -v 777 meinedatei.txt
         ││└── Andere
         │└─── Gruppe
         └──── Besitzer

####     -v    Steht für “verbose” und Zeigt alles an was der Befehl mv gerade macht.        ####
Benutzerkategorie Rechte
Erste Stelle = Besitzer
Zweite Stelle = Gruppe
Dritte Stelle = Andere
7 = Voll
6 = Lesen und Schreiben
5 = Lesen und Ausführen
4 = Nur Lesen
3 = Schreiben und Ausführen
2 = Nur Schreiben
1 = Nur Ausführen
0 = Keine

Scripte Ausführen

Sind alle notwendigen anpassungen erfolgt, kann das Script mit

Code
./simple_backup.sh
### Führt das Backup durch...


./simple_restore.sh
### Führt das Recover durch...  

ausgeführt werden.

Fehlermeldung beim ausführen der Scripte

bash: /usr/bin/"meinscriptname" : /bin/bash^M: bad interpreter: No such file or directory

Das ^M ist ein Wagenrücklauf-Zeichen. Linux verwendet das Zeilenvorschubzeichen, um das Ende einer Zeile zu markieren, während Windows die zweistellige Zeichenfolge CR LF verwendet. Ihre Datei hat Windows-Zeilenenden, was Linux verwirrt. Entfernen Sie die unechten CR-Zeichen. Sie können dies mit dem folgenden Befehl tun:

Code
sed -i -e 's/\r$//' scriptname.sh

Cronjob anlegen

Planen von Aufgaben (aus der Dokumentation von Plesk)

Wenn Sie in Ihrem Hosting-Konto zu bestimmten Zeitpunkten Skripte ausführen möchten, können Sie das System mithilfe des Aufgabenplaners in Plesk anweisen, die Skripte nach einem vorgegebenen Zeitplan auszuführen.

Alle für ein Abonnement erstellten Aufgaben können Sie einsehen, indem Sie zu Websites & Domains > Geplante Aufgaben gehen.

Bild: Planen von Aufgaben

Die können für jede Aufgabe in der Liste die Einstellungen ändern, indem Sie auf den Namen der Aufgabe klicken. Sie können die Aufgabe aktivieren, indem Sie auf das Symbol klicken. Wenn Sie sie deaktivieren möchten, klicken Sie auf das Symbol . Oder starten Sie die Aufgabe sofort.

Wenn Sie eine geplante Aufgabe erstellen wollen, gehen Sie zu Websites & Domains > Geplante Aufgaben > Aufgabe hinzufügen.

Bild: Planen von Aufgaben

Dann müssen Sie zunächst den Aufgabentyp je nach Ihrem Zweck auswählen:

  • Befehl. Geben Sie den vollständigen Pfad zu der ausführbaren Datei an, die gestartet werden soll. Hierzu zählen Binärdateien, Shellskripte und Batchdateien.
  • URL abrufen. Sie brauchen nur die URL anzugeben, müssen also keinen Befehl wie „curl“ oder „wget“ eingeben.
  • PHP-Skript ausführen. Geben Sie den Pfad zum Skript relativ zu Ihrem Verzeichnis des virtuellen Hosts an. Sie können auf das Symbol klicken, um die Skriptdatei schnell zu finden.
Bemerkung: In Plesk für Linux werden alle geplanten Aufgaben der Kategorie „Befehl ausführen“ standardmäßig in einer Chroot-Umgebung ausgeführt. In dem Fall wird das Basisverzeichnis des Systembenutzers eines Abonnements als Dateisystemstamm für das Abonnement behandelt und es können keine ausführbaren Dateien außerhalb von chroot-Jail ausgeführt werden. Falls Sie während der Ausführung Ihrer geplanten Aufgaben Fehler wie „Die Datei wurde nicht gefunden“ sehen, sollten Sie versuchen, keine absoluten Pfade, sondern Pfade relativ zum Basisverzeichnis des Systembenutzers zu verwenden. Sollte es darüber hinaus für Sie erforderlich sein, ausführbare Dateien ausführen zu können, die sich außerhalb der Chroot-Jail befinden, müssen Sie sich bitte an Ihren Hosting-Provider wenden.

Als Nächstes wählen Sie aus, wie oft die Aufgabe ausgeführt werden soll und legen das gewünschte Datum und die Zeit fest. Standardmäßig wird die Serverzeitzone verwendet. Falls Sie eine andere Zeitzone auswählen möchten, gehen Sie zu Websites & Domains > Geplante Aufgaben > Einstellungen. Außerdem können Sie eine Beschreibung für die Aufgabe angeben und Benachrichtigungen konfigurieren.

Zum Schluss haben Sie, bevor Sie die Aufgabe speichern, noch die Option, einen Testlauf durchzuführen, um sicherzugehen, dass die Aufgabe korrekt konfiguriert ist. Klicken Sie dazu auf Jetzt ausführen und warten Sie, bis die Aufgabe abgeschlossen ist. Sollte die Aufgabe mit einem Fehler fertiggestellt werden, wird sie auch bei einer Ausführung durch den Aufgabenplaner nicht funktionieren. Also sollten Sie zuerst das Problem herausfinden und lösen.

Quellen

Über den Autor

Ich bin IT-Spezialist im Fachbereich der IT-Administratoren. Neben Beruf und Familie, erstelle ich als, Teil meines Hobbys, gerne Tutorials, sowie WoltLab Stile. Aktuell befinde ich mich auf meinem Informationstechnikermeister.

Foxly Team

Kommentare