Wie schon in Teil 1 – Nextcloud unter Docker auf der Synology installieren angekündigt, möchte ich heute zeigen, wie man schnell und einfach die Ausführung der Hintergrundaufgaben automatisiert. Hintergrundaufgaben sind z.B. das Aufräumen der Datenbank oder der Erstellen von Thumbnail-Bildern für Bilder, die Hochgeladen worden sind. Ich habe für die Automatisierung zwei Möglichkeiten beschrieben:
- automatisierte Ausführung über den externen Dienst cron-job.org
- automatisierte Ausführung über den Synology -Internen Aufgabenplanen
Vorbereitung: Nextcloud parametrisieren
Dazu konfigurieren wir als erstes in dem Nextcloud-Webinterface die Ausführung der Hintergrundjob für Webcron.
Wozu sind die anderen Parameter?
AJAX: Die Ausführung der hintergrundaufgaben findet bei jedem Besuchen einer Nextcloud-Seite statt. Je nach Aufgaben und Performance kann sich das nachteilig auswirken.
Webcron: Eine dedizierte php-Datei triggert das Ausführen der Hintergrundjobs. Somit hat man die Möglichkeit den Aufruf zyklisch aufzurufen, unabhängig der Nutzerinteraktion.
Cron: Wenn man auf einem Linux-System NExtcloud installiert hat, kann man auch den Standard-Cron-Service als Job Scheduler nutzen.
Möglichkeit 1: Ausführung über externen Webcron:
Da wir uns hier in der Synology-Docker-Umgebung befinden, könnte man dem Docker-Container auch einen cron-Service beibringen. Der Container basiert auch debian. Ich fürchte jedoch, dass nach einem Update des Containers die Einstellungen verloren gehen.
Aufruf des Webcron:
Für den Aufruf genügt es die Webadresse (domain.xyz/cron.php) aufzurufen. Um den Aufruf zyklisch zu realisieren nutze ich den Service von cron-job.org.
Dieser Dienst erlaubt es in frei definierbaren Abständen beliebige Webadressen aufzurufen und je nach Erfolg oder Fehlerübergabe, bekommt man sogar eine Status-E-Mail zugesandt.
Nachdem der Job einige mal lief, lässt sich in der Übersicht sehen, wie die Jobs abgearbeitet worden sind:
Möglichkeit 2: nutzen des Synology eigenen Job-Scheduler
Synology DSM bringt einen eigenen Aufgabenplaner mit. Dieser Aufgabenplaner kann direkt verschiedene Linux-Kommandos verarbeiten oder shell-scripte ausführen.
Unter der Systemsteuerung -> Aufgabenplaner haben wir die Möglichkeit neue Aufgaben anzulegen. Dazu klicken wir auf „Erstellen“ -> „Geplante Aufgabe“ -> „benutzerdefiniertes Skript“ vergeben einen Namen und legen einen Zeitplan fest. Ich wähle hier täglich, alle 15 Minuten.
In dem neuen Task legen wir fest, wie der cron-job ausgeführt werden soll. Ein einfacher Aufruf mit curl tut schon seinen Dienst: curl https://next.indibit.de/cron.php
Mit diesem Schritt ist die Einrichtung der Automatisierung abgeschlossen.
Vor- und Nachteile
Der Vorteil des Synology eigenen Aufgabenplaner liegt auf der Hand. Wenn die Nextcloud nur aus einem Intranet erreichbar ist, würde ein externer Dienst wie cron-jobs.org nicht die cron.php Datei öffnen können und somit ist der interne Aufgabenplaner fast die einzige Lösung.
Der Nachteil ist, dass die Ereignisanzeige nicht so gut gelungen ist, wie z.B. bei cron-job.org. D.h. es ist nicht auf die schnelle Erkennbar, wann ein Job nicht lief und welche Rückgabewerte es gab.
An dieser Stelle muss jeder für sich abwägen, welche Kriterien hier wichtiger sind.
Im nächsten Teil der Reihe Synology-Docker-Nextcloud zeige ich euch, wie die Docker-Images stets auf einem aktuellen Stand gehalten werden können.
- Synology: Nextcloud Automatisierung mit cron jobs - 28. Mai 2018
- Synology: Nextcloud und Docker installieren - 24. Mai 2018
- Meteorit über Deutschland - 16. November 2017
Pingback: Synology: Nextcloud und Docker installieren - indiBit
Pingback: Synology und NextCloud – passt das? – blue B