Wer eine Nextcloud-Instanz bei einem Hosted Service betreibt, hat häufig keinen oder nur eingeschränkten SSH-Zugriff. Das lässt sich in vielen Fällen mit einem Kniff lösen.
Viele Hoster setzen auf Plesk als Verwaltungsoberfläche. Da diese Verwaltung vom Service-Anbieter konfiguriert werden kann, variieren die Möglichkeiten. In den meisten Fällen wird – aus nachvollziehbaren Gründen – kein oder nur ein stark eingeschränkter SSH-Zugriff angeboten.
Die Beschränkungen verhindern bis auf seltene Ausnahmen auch den Aufruf des PHP-Interpreters, der für die Ausführung der Datenbank-Pflege mit dem Nextcloud-Tool „occ“ erforderlich ist.
Ab hier setze ich ein Datenbank-Backup voraus.
Dafür lassen sich in vielen Fällen „Aufgaben planen“. Im Tech-Sprech sind das „Cron-Jobs“. Damit lässt sich diese Einschränkung vollständig umgehen. Voraussetzung ist lediglich, dass selbst eingerichtete Cron-Jobs PHP-Scripte starten können. Was sich schnell mit Aufruf der „Aufgaben planen“-Seite klären lässt.
Mit Auswahl des Schalters Aufgabentyp: PHP-Skript ausführen
wird die zugeordnete PHP-Version (oder wie hier auswählbar) für den Aufruf des Skirpts verwendet. occ
liegt im Installationsverzeichnis von Nextcloud. Das kann httpdocs
oder – wie bei einigen Hostern mitterlweile üblich – ein Verzeichnis mit dem Namen der (Sub-)Domain sein.
Die Verwendung der „Aufgabe“ ist einfach: Nextcloud erzählt alles Nötige. Aus Einstellungen
→ Verwaltung
→ Übersicht
können die erforderlichen Befehle herauskopiert werden. Relevant sind die db:…
-Einträge. occ
ist das Script am Ende des Nextcloud-Pfades (s. Bild), db:…
ist das Argument für die jeweilige Reparatur.
Der Parameter Aktiv
sollte deaktiviert werden – wobei das im Grunde egal ist, wenn die Aufgabe mit Jetzt ausführen
erledigt wird, aber kein Klick auf OK
erfolgt. Das ist unnötig, denn jeder „Job“ muss typischerweise nur einmal ausgeführt werden. Das ist immer occ
mit wechselnden Argumenten. Was genau steht – s.o. – in der Übersicht im Fließtext. Möglich sind z.B.
db:add-missing-indices
Richtet fehlende Index-Einträge eindb:add-missing-primary-keys
erzeugt fehlende Primärschlüsseldb:add-missing-columns
ergänzt fehlende Spalten in Tabellendb:convert-filecache-bigint
konvertiert Integer-Inices in bigint
Speziell die Letzte Aktion kann an einer Sicherheitsabfrage scheitern, weil das bei größeren Installation richtig lange dauern kann. Das System beantwortet die Frage automatisch mit n
(=nein). Doch das lässt sich beheben, indem die Abfrage mit einem vorangestellten -n
unterdrückt wird:
-n db:convert-filecache-bigint
lässt die Änderung durchlaufen.
Während der Änderungen sollten keine Zugriffe auf die betroffene Nextcloud-Instanz erfolgen. Das könnte ein unerwartetes Verhalten hervorrufen, im ungünstigsten Fall die Datenbank beschädigen.
Mit Jetzt ausführen
wird der jeweilige Job gestartet, Plesk gibt informationen aus, ob das geklappt oder wo es eventuell geklemmt hat.
Die Seite kann offen bleiben, die Argumente können geändert und ein neuer Aufruf gestartet werden. Shell-Fetischisten werden das umständlich finden, für „GUI-Nutzer“ ist das durchaus komfortabler, als sich mit Shell-Befehlen herum zu schlagen.
Ist alles erledigt, wird die Seite sinnvoller Weise mit Abbrechen
verlassen, damit es keinen Jobeintrag gibt.