Thread "Cron Job funktioniert nicht"

Tabs

  • Deleted
    Deleted | 5. Aug 2018, 10:00
    Cron Job funktioniert nicht
    Moin zusammen,

    ich habe Ilias auf einer NAS Synologie DS218+ installiert.
    Soweit funktioniert alles, nur die in Ilias erstellten Cron Jobs werden nicht ausgeführt.
    Bei manueller Ausführung (Tägliche Mail für Gruppen und Kurs News) erhalten alle die E-Mail.

    Muss ich in einer Konfig Datei noch User und Passwort hinterlegen, oder ist der Hund wo anders begraben?
  • Deleted
    Deleted | 5. Aug 2018, 10:39
    Edited on: 5. Aug 2018, 10:46 - by Deleted
    Re: Cron Job funktioniert nicht
    ILIAS auf einer Synology? Nette Idee, Ich hätte nicht gedacht dass da die CPU-Power ausreicht. Für wie viele User ist das gedacht?
    Zum Problem: wie sieht denn der Crontab-Eintrag aus? Und, nur um sicherzugehen: nach den Änderungen an der Crontab auch brav ein 'synoservice --restart crond' gemacht?
  • Deleted
    Deleted | 5. Aug 2018, 12:49
    Re (2): Cron Job funktioniert nicht
    System ist ausgelegt für bis zu 50 User. Abwarten ob die Rechenpower ausreicht, oder nicht.


    Mit Crontab-Eintrag meinst du das File: /etc/crontab
    Dieses File wurde nicht von Ilias angepasst. Es wurden keine Einträge gesetzt, oder muss man dies immer manuell setzen?

    Ich hatte einen Eintrag gesetzt:
    # ILIAS-Cronjobs ausführen

    Jedoch hatte dies nicht funktioniert, weil ich testweise die tägliche E-mail in Ilias selbst auf 5 Minuten gestellt hatte.

    synoservice --restart hatte ich nicht gemacht, aber die NAS komplett durchgestartet.

    Attachments
    Unbenannt.jpg
  • Deleted
    Deleted | 5. Aug 2018, 13:59
    Re: Re (2): Cron Job funktioniert nicht
    Hmm, das ist jetzt schon einige _Zeit her seit dem ich das das letzte mal aufgesetzt habe, aber:
    • Den Eintrag in der Crontab muss man selbst anlegen, ILIAS kann das nicht (weil - hoffentlich - keine Schreibrechte auf die Crontab)
    • Bei Dir ist der Eintrag auskommentiert - kann also nicht funktionieren.
    • Du hast da als User 'root' eingetragen - laut ILIAS-Doku muss da aber der User stehen unter dem der Webserver läuft (was aber problematisch ist weil Syno soweit ich mich entsinne nur 'root' kann und alle Einträge für andere User löscht).
    • Laut Doku kann der Cronjob nur einmal am Tag laufen - dies wird durch ein Lockfile sichergestellt. Du hast aber */4 eingetragen. 
    Unter Umständen ist es einfacher den Task Scheduler der Synology (via DSM WebGUI) zu nutzen.
  • Deleted
    Deleted | 6. Aug 2018, 18:28
    Edited on: 6. Aug 2018, 18:39 - by Deleted
    Re (2): Re (2): Cron Job funktioniert nicht
    Vielen Dank für deinen Input

    Folgende Anmerkung:

    • Crontab eintrag angelegt, jedoch wieder auskommentiert da dieser nicht funkioniert hat.
    • Kann mich als root in der Datenbank anmelden zum Testen. Wird nach der einwandfreien Funktion wieder entfernt und Cron Job abgeändert.
    • Das Lockfile wird nicht erstellt, somit wird es leider nicht ausgeführt und auch in Ilias steht das der Cronjob nicht ausgeführt wurde. Aber das wusste ich noch nicht. Danke für den Tipp
    • Ich habe mal den Task Schedeuler der NAS genutzt *danke für die Idee*:
    "Benutzerdefinierte Script : /usr/bin/php /volume1/web/ilias/cron/cron.php [ILIAS_ADMIN] [ILIAS_ADMIN_PWD] [CLIENT] > /dev/null" und erhalte ein Output:

    PHP Fatal error: ilDB Error: <br />MDB2 Error: not found<br />[Error message: extension mysqli is not compiled into PHP]

     ** mysqli(mysqli)://root:xxx@127.0.0.1:3307/ilias01<br />#0 /volume1/web/ilias/Services/Database/classes/class.ilDB.php(269): ilDB->handleError(Object(MDB2_Error))

    #1 /volume1/web/ilias/Services/Init/classes/class.ilInitialisation.php(409): ilDB->connect()

    #2 /volume1/web/ilias/Services/Init/classes/class.ilInitialisation.php(1008): ilInitialisation::initDatabase()

    #3 /volume1/web/ilias/Services/Init/classes/class.ilInitialisation.php(893): ilInitialisation::initClient()

    #4 /volume1/web/ilias/include/inc.header.php(36): ilInitialisation::initILIAS()

    #5 /volume1/web/ilias/cron/cron.php(20): include_once('/volume1/web/il...')

    #6 {main} in /volume1/web/ilias/Services/Init/classes/class.ilErrorHandling.php on line 226 PHP Fatal error:  Call to a member function getActivePluginsForSlot() on null in /volume1/web/ilias/Services/Init/classes/class.ilInitialisation.php on line 542 PHP Fatal error: Call to a member function getActivePluginsForSlot() on null in /volume1/web/ilias/Services/Init/classes/class.ilInitialisation.php on line 542 PHP Fatal error:  Call to a member function addBlockFile() on null in /volume1/web/ilias/error.php on line 8

    Hat der User keine entsprechenden Rechte, oder liegt der Fehler wo anders? Hast du eine Idee?

    ***EDIT***
    Nur mit folgendem Befehl : 
    /usr/bin/php /volume1/web/ilias/cron/cron.php

    Erhalte ich folgende Ausgabe:

    Usage: cron.php username password client




  • Deleted
    Deleted | 7. Aug 2018, 08:50
    Re: Re (2): Re (2): Cron Job funktioniert nicht
    Zum letzten zuerst: da testet ganz am Anfang des Scripts ob die Anzahl der Befehlsparameter stimmt. Tut sie nicht, deshalb die Fehlermeldung.
    Zum eigentlichen Fehler: das PHP-Programm findet da die Bibliothek zur Ńutzung der MySQL Datenbank nicht. Dies liegt wohl daran dass Synology ein Kommandozeilen-PHP (nicht aber das vom Webserver genutzte) ausliefert in dem so ziemlich alle Erweiterungen deaktiviert sind, Dein Problem hat also erst mal nichts mit Rechten zu tun. Laut einem Forumsbeitrag (https://forum.synology.com/enu/viewtopic.php?f=20&t=91099#p425790) kann man aber mit einem einfachen Symlink das PHP der Syno-App nutzen welches viel mehr Module hat:
     
     $ sudo ln -s /usr/local/bin/php56 /sbin/php

    Ich hoffe das hilft ein wenig weiter.
  • Deleted
    Deleted | 7. Aug 2018, 17:17
    Re (2): Re (2): Re (2): Cron Job funktioniert nicht
    Moin,

    kleine Feedback: Es funktioniert jetzt.
    Der Link funktioniert nicht, aber ich mein Cronjob auf /sbin/php geändert und die Jobs werden ausgeführt.
    Es lag daran das 2 unterschiedliche php Versionen auf der NAS laufen.