Hallo zusammen, ich bekomme cron einfach nicht zum laufen. Hosting ist bei Hetzner. Folgendes gebe ich im Cronjob Mananger ein:
*/10 * * * * /usr/bin/php /pathtoscript/scripts/cron/cron_run_jobs.php schluessel admin
Egal welche Varianten ich benutze, ich erhalte immer die Meldung: Während der Ausführung des Cronjobs ist ein Fehler aufgetreten.
Was mache ich falsch?
Hallo Notaufnahme!
ich vermute du hast das Beispiel aus dem Modul kopiert aber das ist nicht der richtige Pfad.
Du musst schauen wo bei dir die Datei cron_run_jobs.php tatsächlich liegt und den angeben.
”pathtoscript” wird es nicht sein. eher sowas wie: /usr/share/dolibarr/scripts/cron/cron_run_jobs.php
oder /home/DEINEDOMAIN/……../dolibarr/cripts/cron……..
Hoffe das hilft.
Viel Erfolg!
VG,
Kim
1 „Gefällt mir“
Hallo Kim,
das ”pathtoscript” habe ich natürlich durch den realen Pfad ersetzt, den ich hier im Forum aber nicht reinschreiben wollte. Wenn ich das so eingetragen hätte, wäre die Meldung auch eine andere gewesen, aber das Script ist erreichbar, läßt sich aber trotzdem nicht ausführen.
Bist Du bei Hetzner auf einer eigenen Maschine oder auf einem Shared-Host?
Bei letzteren ist das mit den Pfaden ein wenig tricky.
VG
Holger
Hallo Volker,
managed Server. Ich habe einige Crons problemlos am laufen, nur der von Dolibarr zickt rum ;o)
Moin.
Meine Erfahrungen beim Sharedhost (Managed-Server mit KonsoleH)
Wenn man direkt auf seinem Webspace ein echo getcwd() ausführt, landet man bei
/usr/www/users/[AccountName]/RootDerWebanwendung/
So habe ich das dann auch in den Cronjobs verdrahtet (hier nicht für Dolibarr, das betreibe ich auf einem V-Server). Somit ergibt sich für einen Cronaufruf über KonsoleH bei mir:
/usr/bin/php82 /usr/www/users/[AccountName]/RootDerWebanwendung/PfadZuScript/CronScript.php
Wenn man aber hingegen einen Konsolenlogin mit Putty über SSH durchführt, lautet der Pfad zur Webanwendung:
/usr/home/[AccountName]/public_html/RootDerWebanwendung
Deshalb muss man bei KonsoleH immer schauen, dass man das richtig ansteuert und die beiden Pfade nicht verwechselt.
Möglicherweise hilft es Dir.
VG
Holger
1 „Gefällt mir“
Guten Morgen Holger,
danke für Deinen Vorschlag, aber hilft leider nicht.
/usr/bin/php82 /usr/www/users/[AccountName]/RootDerWebanwendung/PfadZuScript/CronScript.php
Genau so habe ich es in der Konsole eingerichtet, es wird auch das Script gefunden, aber es kommt immer wieder die Fehlermeldung “Während der Ausführung des Cronjobs ist ein Fehler aufgetreten.” Es ist zum Verzweifeln.
Hi,
Wenn dein Problem noch besteht, dann kann ich es mir mit dir zusammen gerne mal anschauen.
Meld dich einfach ,
Martin
Moin Notaufnahme.
Schau bitte nochmal. Du schriebst im Ausgangspost, dass Du den Job mit diesem Befehl eingerichtet hast:
”*/10 * * * * /usr/bin/php /pathtoscript/scripts/cron/cron_run_jobs.php schluessel admin”
Da beinhaltet aber nicht den PHP-Interpreter - Vgl. einen funktionierenden Aufruf bei mir mit Hetzner:
”*/10 * * * * /usr/bin/php84 /usr/www/users/KONTONAME/dolibarr_test/scripts/cron/cron_run_jobs.php ###KEY### admin > /usr/www/users/KONTONAME/dolibarr_test/documents/cron_run_jobs.php.log”
Und dann noch kurz die Rückfrage:
An welcher Stelle erhältst Du die Meldung “Während der Ausführung des Cronjobs ist ein Fehler aufgetreten.“ ? In KonsoleH, oder per Mail oder in Dolibarr?
Aufschluss sollte in KonsoleH die Logdatei geben: / Cronjobmanager / Reiter “Logdatei anzeigen”. Und ggf. das Log von Dolibarr, wenn es aktiviert ist und das Loglevel einen hohen Wert hat.
Guten Morgen Holger,
die Interpreterversion ist nur dann notwendig, wenn ein Aufruf des Interpreters von der aktuellen Version abweicht. Beispiel: Der Server läuft mit PHP 8.4 aber die PHP Scripte erwarten die abweichende Version 7.4. Dann müsste ich “/usr/bin/php74” angeben. Wird aber nur “/usr/bin/php” angegeben, dann nimmt der Interpreter die Version, die auch auf dem Server läuft. In meinem Fall 8.2
Die Meldung erscheint beim Aufruf des Cron in der KonsoleH. In der Logdatei wird aber kein Fehler angezeigt. Im Dolibarr sehe ich dann, dass keine Aufgabe abgearbeitet wurde. Also Cron ist nicht gelaufen. In der *.log im Dokumentenverzeichnis steht gar nichts = leer.
1 „Gefällt mir“
Hi Notaufnahme.
Kannst Du den Aufruf aus dem Cronjob mit SSHLogin/Putty an der Konsole starten? Dann solltest Du eine Fehlermeldung bekommen. Mit den Credentials aus den Vertragsinformationen kann man ja bei Hetzner auf Port 222 eine SSH-Verbindung starten.
Versuch auch mal in der Übersicht des Cronmanagers bei KonsoleH oben eine Mailadresse einzutragen und schau, ob Du dann eine Fehlermeldung per E-Mail erhältst.
Hallo Holger,
das Rätsel ist gelöst. Ich habe mir den Code der cron_run_jobs.php mal genauer angeschaut. In Zeile 62 steht
require_once $path.„../../htdocs/master.inc.php“;
aber den Pfad “htdocs” gibt es bei nicht. Also habe ich die Zeile angepasst
require_once $path.„../../master.inc.php“;
und seit dem läuft der Cron.
Vielen Dank für Deinen Support und ein erholsames Wochenende.
Klaus
Hallo Klaus,
das ist ja merkwürdig. ‘htdocs’ ist doch das Webroot von Dolibarr und sollte auf jeden Fall vorhanden sein. Das kann ja nur an der relativen Pfadebene liegen (../../) aber egal - Hauptsache es funzt.
Dir auch ein schönes WE
Holger