Cronjob Befehl einrichten

  • Guten Tag,


    bin ein neuer Netcup-Webhosting Kunde und bräuchte bei der Einrichtung einer Geplanten Aufgabe Hilfe, Im Prinzip geht es um die Software-Lösung Nextcloud. Damit man die Benachrichtigungfunktion nutzen kann muss man hierfür einen entsprechenden Cronjob anlegen. Und zwar geht es um diesen Befehl:


    php -f /var/www/vhosts/hosting.XXXXX.af9be.netcup.net/httpdocs/XXXXX/occ activity:send-mails hourly >/dev/null 2>&1


    Wenn ich mich per SSH über Putty mit dem Server verbinde, kann ich den Befehl ausführen und die Benachrichtigungsmails werden generiert und verschickt..


    Richte ich nun unter Geplante Aufgaben einen Cronjob der stündlich laufen soll ein und verwende folgenden Befehl:


    /usr/local/php71/bin/php -f /var/www/vhosts/hosting.XXXXX.af9be.netcup.net/httpdocs/XXXXX/occ activity:send-mails hourly >/dev/null 2>&1


    bekomme ich beim Ausführen den Hinweis:


    Die Aufgabe "/usr/local/php71/bin/php -f /var/www/vhosts/hosting.XXXXX.af9be.netcup.net/httpdocs/XXXXX/occ activity:send-mails hourly/occ activity:send-mails hourly >/dev/null 2>&1" wurde in 0 Sekunden abgeschlossen, jedoch traten Fehler auf.


    Und die Benachrichtigungsmails werden nicht generiert.


    Hat jemand eine Idee woran das liegen könnte ?


    Vielen Dank im Voraus.

  • Du könntest es wahrscheinlich herausfinden indem du nicht alles nach /dev/null pipest, sondern zum Beispiel in eine log-Datei.


    Dafür ersetzt du das /dev/null in deinem Command beispielsweise durch /var/www/vhosts/hosting.XXXXX.af9be.netcup.net/debug_cron.log

  • Ich habe ebenfalls Nextcloud in einen Netcup Webhostingpaket (Webhosting 4000) laufen.

    Nextcloud hat die Version 12.0.4.


    Den Cronjob habe ich wie folgt erstellt:

    ==> Aufgaben-Typ: PHP-Skript ausführen

    ==> Skript-Pfad: httpdocs/meine-domain.tld/nextcloud/cron.php

    ==> keine Argumente

    ==> PHP-Version: 7.1.13


    Das hat bisher gut funktioniert bei mir!


    Probier doch anstatt Aufgaben-Typ "Befehl ausführen" doch mal "PHP-Skript ausführen" aus:

    Gib als Skript-Pfad "httpdocs/XXXXX/occ" und als Argumente "activity:send-mails hourly" ein.

    PHP-Version wählen, mit der Du Nextcloud betreibst.

  • Vielen Dank für die schnelle Hilfe.


    Über den Befehl hat es dann wohl auch geklappt, nur kamen hier die E-Mails ein paar Stunden verzögert, so das ich davon ausging, dass es nicht geklappt hat.


    Hecke29 da stand ich wohl auf dem Schlauch. Vielen Dank für den Hinweis mit "/dev/null 2>&1" . Das hat natürlich dazu geführt, dass ich eine Fehlermeldung bei den Geplanten Aufgaben bekommen habe.


    Ich habe das nun auf "PHP-Skript ausführen" umgestellt und das funktioniert auch soweit :D


    Somit ist mir nun geholfen und mein Umzug zu Netcup ist damit soweit abgeschlossen, ging doch alles viel einfacher und problemloser als ich anfangs dachte.

  • Mal ne andere Frage, gibt es einen Grund, warum du nicht einfach die cron.php ausführst? Bei mir werden dann die Benachrichtigungsmails verschickt zusätzlich halt auch noch alle anderen Hintergrundaufgaben ausgeführt. Das ist glaube ich auch der empfohlene Weg.

  • Kann es eventuell sein, dass du noch eine ältere Version von Nextcloud einsetzt ? Früher wurde das alles über den Cron-Job erledigt. Mit Version 12 wurde dann diese OCC-Geschichte eingeführt:


    Damit die Benachrichtigungs-Emails erzeugt werden, muss man obigen Befehl verwenden.


    Näheres dazu findest du hier:


    https://docs.nextcloud.com/ser…tivity_configuration.html


    Damit sie dann verschickt werden muss die cron.php Datei ausgeführt werden.

  • Danke für den Link, das ist für mich in der Tat neu. Ich nutze NC 12.


    So wie ich die Dokumentation verstehe werden die Emails aber auch über den normalen Cron verschickt, nur kann man nicht den genauen Zeitpunkt (Montag morgens, etc..) einstellen. Ist das richtig? Ein schnelles googlen hat auch nichts gebracht.


    Ich hab für mich selbst die Email eh ausgestellt, weil die mich ziemlich genervt haben. Ich bin mir jetzt grade nicht sicher ob jetzt meine Nutzer überhaupt ihre Emails bekommen haben.

  • Die Aktivitäts-Emails an sich würden dann nicht erzeugt und resultierend daraus auch nicht versendet, wenn man nur die cron.php ausführt.


    Es würden dann nur die systemseitigen E-Mails versendet, z.b. Passwort-Anforderung, Test-Mail, Share-Links, E-Mail-Änderung, usw.


    Die Aktivitätsfunktion wurde wohl seit Version 12 in eine eigene App ausgelagert, vorher war sie glaube ich im Core mit drin und dafür muss man nun den Cron-Job anlegen, damit die E-Mails erzeugt werden. Der Versand erfolgt dann weiterhin über cron.php

  • Du hast recht, ich habe es gerade extra getestet. Der normale cron schickt tatsächliche keine Emails raus. Gut das ich über diesen Thread gestolpert bin :)

    Ich hab jetzt bei meiner Instanz die activity crons hinzugefügt.


    Danke dir nochmal!

  • Der normale cron schickt tatsächliche keine Emails raus

    Das kann ich nicht nachvollziehen!

    Ich rufe per Server Cronjob die cron.php auf und da werden in der Tat E-Mails verschickt und ich werde über Uploads/Downloads, neue und gelöschte Dateien/Ordner informiert.


    Auch in der Nextcloud 12.x Dokumentation ist cron.php noch erwähnt:

    siehe: https://docs.nextcloud.com/ser…?to=admin-background-jobs

    Das ist nicht veraltet, sondern immer noch ein möglicher Weg, um E-Mails zu verschicken!

    Auch im Backend (...domain.tld/index.php/settings/admin#backgroundjobs) ist der Hinweis auf cron.php zu finden.


    occ hat aber genauso seine Berechtigung, um mehr Kontrolle über den Zeitpunkt des Versendens der E-Mails zu haben.


    Es ist also beides möglich und erlaubt ... und keines ist veraltet.

    Sie verhalten sich nur unterschiedlich!

  • Es werden schon noch mails verschickt, das war nicht richtig. Aber die Benachrichtigungsmails der Activity App leider halt nicht.


    Meine erste Vermutung war auch das ich durch das occ Kommando nur den genauen Zeitpunkt bestimme, so scheint es aber nicht zu sein.


    Ich hatte heute Nachmittag extra die Email Benachrichtigungen wieder eingestellt und auf stündlich gestellt. Danach eine Testdatei erstellt, fleißig geteilt geändert und wieder gelöscht und hatte nach 2h noch immer keine Mail bekommen. Nachdem ich dann die occ Kommandos ausgeführt hatte sind die mails losgeschickt wurden. Offensichtlich wude mit NC12 das Verhalten verändert, der normale corn job scheint nicht auszureichen.