Nextcloud Updates automatisieren

Cronjob für automatische Nextcloud Updates

Wer eine Nextcloud Instanz betreibt, kennt den Update Prozess sehr gut. Meistens läuft dieser einwandfrei durch. Deshalb stellen wir hier vor, wie sich Nextcloud Updates automatisieren lassen. Die Befehle und Konfigurationen in diesem Beitrag wurden auf einem Debian 10 getestet.

Nextcloud Updates auf der Kommandozeile

Als Basis für die automatisierten Updates dienen die Befehle, welche zur Aktualisierung auf der Kommandozeile genutzt werden. Der erste Befehl installiert verfügbare Updates. Mit dem zweiten Befehl wird sicher gestellt, dass auch die installierten Apps aktualisiert werden.

# Update der Nextcloud Basis
sudo -u www-data php /var/www/nextcloud/updater/updater.phar -n
# Update der Nextcloud Apps
sudo -u www-data php /var/www/nextcloud/occ upgrade -n

Bekannte Probleme beheben

Häufig gibt es nach einem Update kleinere Probleme mit der Datenbank. Deshalb gibt es von Nextcloud Werkzeuge, welche diese Probleme beheben. Die beiden häufigsten Probleme kann man durch die unten genannten Befehle beheben. Diese Sammlung aktualisieren wir bei zukünftig auftretenden Problemen weiterhin.

# Reparieren der Datenbank
sudo -u www-data php /var/www/nextcloud/occ db:add-missing-indices
sudo -u www-data php /var/www/nextcloud/occ db:add-missing-columns

Nextcloud Updates automatisieren mit Crontab

Die Automatisierung kann man nun mithilfe von Cronjobs einrichten. Dazu erstellt man zuerst ein Shellskript, welches die Update Befehle beinhaltet. Dafür nutzt man den Editor seiner Wahl und erstellt eine neue Datei.

edit /usr/bin/nextcloud-autoupdater

Der Inhalt des Skripts sieht wie folgt aus.

#!/bin/sh
sudo -u www-data php /var/www/nextcloud/updater/updater.phar -n
sudo -u www-data php /var/www/nextcloud/occ upgrade -n
sudo -u www-data php /var/www/nextcloud/occ db:add-missing-indices
sudo -u www-data php /var/www/nextcloud/occ db:add-missing-columns

Setzen der Berechtigungen zur Ausführung

Damit das geschriebene Skript ausführbar ist, setzt man noch die entsprechenden Unix Berechtigungen. Ansonsten kann der Cronjob das Skript nicht ausführen und schlägt fehl.

chmod 755 /usr/bin/nextcloud-autoupdater

Aktivieren des Cronjobs

Durch einen Cronjob führt das Betriebssystem die konfigurierten Befehle regelmäßig selbstständig aus. Am besten bearbeitet man den Cronjob über den nachfolgenden Befehl.

crontab -e

Dort fügt man dann in der bekannten Cronjob Notation das Skript ein. Die Zeile im folgenden Beispiel würde dafür sorgen, dass das Skript täglich um 02:00 Uhr ausgeführt wird. Einige Beispiele für die Konfiguration finden sich im Cron Wikipedia Artikel.

0 2 * * * /usr/bin/nextcloud-autoupdater

Überwachung

Abschließend sollte man noch erwähnen, dass solche automatisierten Updates immer das Potential von unbemerkten Fehlern bieten. Aus diesem Grund sollte man mindesten einfache Prüfungen im Monitoring aufnehmen. Weil ein reiner Ping-Check aber durch die Nutzung eines Reverse Proxy kein brauchbares Ergebnis liefert, sollte man Inhalte der Nextcloud Instanz prüfen. Dafür könnte man beispielsweise die status.php Datei nutzen und prüfen, ob der Webserver die erwarteten Antworten ausliefert.

https://cloud.example.com/status.php