Synology: Nextcloud Automatisierung mit cron jobs

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:

  1. automatisierte Ausführung über den externen Dienst cron-job.org
  2. 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.

In der Weboberfläche des Nextcloud ist in den Grundeinstellungen das Webcron zu selektieren

Nextcloud Webcron slektieren

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.

Auf CronJob.org einen neuen Job anlegen

Auf CronJob.org einen neuen Job anlegen

 

Nachdem der Job einige mal lief, lässt sich in der Übersicht sehen, wie die Jobs abgearbeitet worden sind:

Ausgeführte Aufträge

Ausgeführte Aufträge

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.

 

synology_aufgabenplaner_webcron

synology_aufgabenplaner_webcron

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

Cron Job auf der Synology ausführen

Cron Job ausführen

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.

Heiko

8 Comments

  1. Pingback: Synology: Nextcloud und Docker installieren - indiBit

  2. Antworten speedy

    Hallo, vielen dank für deine super Anleitung 🙂 Könntest du mir mit der Nextcloud News App helfen? bekomme den Hinweis: Ajax oder ein webbasierter Cron-Modus gefunden! Deine Feeds werden nicht aktualisiert!
    Hab keine Ahnung wie sich das lösen lässt. Vielen Dank

    • Antworten Heiko

      Hallo Speedy,
      vielen Dank für deine Rückmeldung. Bzgl. der News-App habe ich mich mal eingelesen. Es stellt sich so dar, dass nur der Linux eigene cron scheduler das updaten der rss feeds anstoßen kann oder will. Ein antriggern durch Ajax oder Webcron ist scheinbar nicht vorgesehen. Hast du vollen Zugriff auf deinen Nextcloud – Server?
      Wenn ja, dann gibt es eine Anleitung, wie du die Updates mit cron triggerst – wenn nein, dann frag doch gerne einfach mal beim support deines Providers nach. Ggf. aktivieren die das für dich. Ich hoffe, ich konnte so auf die schnelle helfen?
      Anleitung: https://github.com/nextcloud/news-updater

      Beste Grüße
      Heiko

      • Antworten speedy

        Hallo Heiko, vielen dank für deine Antwort… habe es inzwischen hinbekommen. Wie sind deine Erfahrungen mit Nextcloud auf der Synology? Bin echt am Überlegen ob es nicht mehr Sinn macht einen reinen Linux Server anzuschaffen für NextCloud. Weißt du wie ich diese Fehler entfernt bekomme:
        Dein Web-Server ist nicht richtig eingerichtet um „/.well-known/caldav“ aufzulösen. Weitere Informationen findest Du in der Dokumentation.
        Dein Web-Server ist nicht richtig eingerichtet um „/.well-known/carddav“ aufzulösen. Weitere Informationen findest Du in der Dokumentation.
        Der „Referrer-Policy“ HTTP-Header ist nicht gesetzt auf „no-referrer“, „no-referrer-when-downgrade“, „strict-origin“, „strict-origin-when-cross-origin“ oder „same-origin“. Dadurch können Verweis-Informationen preisgegeben werden. Siehe die W3C-Empfehlung.

  3. Pingback: Synology und NextCloud – passt das? – blue B

Hinterlasse eine Antwort

Deine E-Mail-Adresse wird nicht veröffentlicht.

WordPress Cookie Hinweis von Real Cookie Banner