Script für den Wartungsmodus (Veeam backup)

Guten Abend.

ich möchte micht Veeam backups von Nextcloud machen. Da ich hörte, dass man vor einem Backup den Server in den Wartungsmodus setzen soll, bräuchte ich ein Script, welches mir den Wartungsmodus aktiviert und ein Script welches ihn deaktiviert. Dies kann man bei Veeam vor und nach einem Backup starten lassen.

Könnt ihr mir da evtl. weiterhelfen.

Danke im voraus
Schmidt

Dazu braucht es nur einen Shell-Befehl.
Doku siehe:

https://docs.nextcloud.com/server/18/admin_manual/maintenance/upgrade.html#maintenance-mode

Mit Veeam kenne ich mich nicht aus und auch nicht was da an Skripten laufen kann.

https://helpcenter.veeam.com/docs/agentforlinux/userguide/backup_job_scripts.html?ver=40
mit dem shell-befehl weiß ich wie es geht nur möchte ich, dass das Script dies automatisch übernimmt daher bräuchte ich diese in *.sh format

Es ist nur diese Zeile

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

bzw.

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

setzt natürlich voraus, dass der Befehl/die Datei occ im Ordner /var/www/nextcloud liegt. und das der web server bei dir als user www-data läuft.

du kannst das noch in eine datei packen und ein bisschen aufhübschen:

#!/bin/bash

sudo -u www-data php /var/www/nextcloud/occ maintenance:mode --${NC_MODE}

beim aufruf dann NC_MODE=on bzw. NC_MODE=off davor schreiben.

2 Likes

Hallo Zusammen,

Ich möchte gerne den folgenden Befehl in einer Datei hinterlegen:

sudo -u www-data php /var/www/nextcloud/occ maintenance:mode --${NC_MODE}

Wo sollte die Datei liegen bzw. abgelegt werden?

    1. In /var/www/nextcloud ??
    1. Ist egal wo ….
    1. Die Datei sollte an folgendem Ort abgelegt werden……

Danke …

Grundsätzlich ist es egal. Persönlich würde ich die Scripte wie selbst geschriebene Scripte in /usr/local/bin ablegen. Denk daran die Rechte korrekt zu setzen.

/usr/local/bin/nc-m-on

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

/usr/local/bin/nc-m-off

sudo -u www-data php /var/www/nextcloud/occ maintenance:mode --off
chmod 755 /usr/local/bin/nc-m-on
chmod 755 /usr/local/bin/nc-m-off

Da /usr/local/bin im Pfad ist (siehe “env”), solltest du nicht den Pfad eingeben müssen.

nc-m-on
nc-m-off
1 Like

Super … Vielen, vielen Dank!! Hat funktioniert.
Ein paar Bilder für die anderen.

Bild-326

Ich werde für Veeam das jetzt dort hinterlegen und berichten:

1 Like

wenn du auch eine Ausgabe sehen willst ob das Backup funktioniert hat oder nicht kann ich nur Hier und Github empfehlen

1 Like

Hi @daschmidt94

weißt Du wie man mit dem Veeam Agent for Linux ein Backup zurücksichert?

Ich habe ein Disaster Fall.

Immer Samstags wird ein automatisches Backup ausgeführt, heute ist nach dem Backup irgendetwas schief gelaufen. Das Web Interface lässt sich nicht mehr aufrufen.

Jetzt dachte ich mir, ist alles halb so schlimm, weil ich habe ein Backup :wink: Das verhält sich aber anders als ich es erwartet habe.

Das ist mein letztes funktionierendes Backup.

Dann kann ich den Wiederherstellungs Point selektieren:

Und dann wird gemountet:

Das sieht dann so aus:

Und wie geht es jetzt weiter? Ich kann doch jetzt nicht die Backup Daten von A nach B kopieren bzw. überschreiben? Das funktioniert doch nicht, oder?

Oder muss ich das Veeam ISO Wiederherstellungs Image in der VM Bereitstellen und von dort aus auf die Backups zugreifen und wiederherstellen?

Ich habe gerade gar keine Ahnung, ich dachte ich spiele ein Art Snapshot zurück.

Danke - Gruß

Hallo Faulpelz,
Natürlich kannst du einzelne Dateien aus dem Backup wiederherstellen aber wenn du alles Zurückrollen willst musst du über das Recovery Image starten und einen Restore machen. Für das Backup der Datenbank würde ich eher empfehlen mit mysqldump zu arbeiten da bei grosser Datenmenge das ganze sonst mehrere Stunden nicht erreichbar sein kann. Dort müsste dann in der VM nach einem Restore die Datenbank wieder übergebügelt werden. Veeam macht schnelle inkrementelle Backups jedoch muss nach einem Reboot wieder alles erneut gelesen werden was teils zu überraschend langen Downtimes führen kann .

Vielleicht lässt sich aber die bestehende Instanz auch wieder herstellen, was spuckt denn dein Apache Log aus?

Hi Dark-Schnitzel,

über das Recovery Image erhalte ich folgendes Ergebnis, siehe Bild. Das ist leider nicht das was ich mir vorgestellt hatte, das ist Datei / File Backup. Ich kann damit keine komplette VM zurücksichern oder wenigstens eine komplette Festplatte aus der VM. Meine VM hat zwei Festplatten, eine System und eine Daten HD. Bis jetzt konnte mir keiner sagen was ich auswählen muss um die System Festplatte wiederherzustellen. Schade, ich habe mir mit Veeam viel Arbeit gemacht und mir mehr von der Free Version versprochen. Ich kenne die Veeam Backup & Replication Version und weiß wie einfach das wiederherstellen sein kann.

Hallo Faulpelz,

normalerweise kannst du dort auf der linken Seite die Partitionen löschen und von rechts das übertragen, dafür sollte es denn eine extra taste geben womit du das auswählen kannst.

was genau bedeutet denn disaster fall? bootet dein server nichtmehr oder geht lediglich nextcloud nicht mehr?

1 Like

Guten Morgen,

Danke für Deine Info bzw. für Deinen Veeam Link. Ich hätte einfach nur im Recovery Modus weiterklicken müssen, im Wiederherstellungsmodus erhält man später die Möglichkeit ganze Festplatten wiederherstellen zu können. Ich hatte mich nicht getraut weiter zu Klicken, weil ich davon ausgegangen bin das Veeam gleich mit der Wiederherstellung der Partition beginnt. Vor lauter Panik :wink: bin ich auch nicht auf die Idee gekommen bei Veeam zu recherchieren.

Ich nutze die NC-VM von Daniel Hannson und aus unerklärlichen Gründen hat sich automatisch die PHP Version aktualisiert, das bedeutet ich hatte noch Zugriff auf die komplette VM und nur das NC- Webinterface ließ sich nicht mehr starten.

Zwischenzeitig hatte ich das Angebot erhalten von DH seine neuste NC Version mit Ubuntu 20.04 einsetzen zu dürfen. Diese läuft jetzt bereits. Nichtsdestotrotz bin ich immer noch auf der Suche nach eine Backup Lösung. Die alte defekte VM und die zugehörigen Backups ist noch vorhanden. Ich werde das durchspielen müssen um zu wissen ob es letztendlich funktioniert und ich damit zurechtkomme.

Welche Partition um NC wiederherzustellen?

Mit den jetzt neu erworbenen Kenntnissen kommt die Free Backup Lösung wieder in die engere Wahl.

Danke für deinen Beitrag! Hast Du damit bereits eine komplette Sicherung, Festplatte … zurückgespielt? Bei den vielen Partitionen wusste ich nicht welche zur Systemfestplatte gehören, laut Doku erkennt das Veeam selbständig.

Okay das ist doch super wenn es dir helfen konnte, ist auch nie verkehrt einmal einen restore zu testen auf einer anderen Maschine/vm um zu wissen worauf man zu achten hat. Habe das in einem System als Ubuntu 18.04 VM (proxmox), dort ist mittels nfs eine Synology eingehängt wo die Backups hingehen. Konnte dort vor einigen tagen erfolgreich einen Restore mit der Version 4 des Agents machen. Bei dem Backup wurden die Datenbank gestoppt, nach dem Restore ging es nahtlos weiter als wäre nichts gewesen. Mittlerweile mache ich dies jedoch mit einem mysqldump, das einspielen kann zwar ein paar minuten brauchen dafür muss die cloud nicht offline. Wenn man das System privat nutzt und es sogut wie immer an ist und wenig neu gebootet ist würde ich das abschalten der Services empfehlen, andernfalls das sichern per dump. Restore könnte man sich auch erleichtern indem man dafür ein Skript vorbereitet das die Datenbank einspielt. Davor wurde das Backup auf dem System mittels rsnapshot erledigt, vielleicht ist das auch etwas. Wenn du Ubuntu mit zfs nutzt könntest du auch mittels zfs sichern: https://github.com/zfsonlinux/zfs-auto-snapshot