[geloest] Cronjob mit PHP5 ausführen lassen

Alle weiteren Dienste, die nicht in die drei oberen Foren gehören.
Antworten
ascTim
Beiträge: 12
Registriert: 07.02.2017 13:48:56

[geloest] Cronjob mit PHP5 ausführen lassen

Beitrag von ascTim » 26.07.2017 15:55:13

Hallo!
Ich habe einen Webserver, der einen Cronjob minütlich ausführen soll. Die Umgebung benötigt PHP 5.3. Beim Aufruf von "php -v" erhalte ich die folgende Ausgabe:

Code: Alles auswählen

ascTim@WEBSERVER:/# php -v
PHP 7.0.19-1 (cli) (built: May 11 2017 14:04:47) ( NTS )
Copyright (c) 1997-2017 The PHP Group
Zend Engine v3.0.0, Copyright (c) 1998-2017 Zend Technologies
    with Zend OPcache v7.0.19-1, Copyright (c) 1999-2017, by Zend Technologies
Habe aber auch PHP5.3 installiert. Wenn ich mein php-Skript per Browser aufrufe klappt das alles auch. Nur passiert per Cronjob einfach nichts (zumindest ändert sich nichts). Crontab sieht so aus:

Code: Alles auswählen

* * * * * /usr/bin/php5 /var/www/html/MeinSkript.php
Habt ihr eine Idee, was ich noch prüfen kann?


Gruß

Tim
Zuletzt geändert von ascTim am 27.07.2017 09:22:24, insgesamt 1-mal geändert.

EOiN
Beiträge: 3
Registriert: 12.10.2010 16:28:35

Re: Cronjob mit PHP5 ausführen lassen

Beitrag von EOiN » 26.07.2017 16:22:00

ascTim hat geschrieben: ↑ zum Beitrag ↑
26.07.2017 15:55:13
...

Code: Alles auswählen

* * * * * /usr/bin/php5 /var/www/html/MeinSkript.php
...
Dein CronJob ist auch falsch (ich bin mir zumindest sicher, das er falsch ist.), versuche es mal so:

Code: Alles auswählen

#min hour day month weekday command
*/1   *    *    *    *     <dein Befehl>
Zuletzt geändert von EOiN am 26.07.2017 21:19:59, insgesamt 1-mal geändert.

ascTim
Beiträge: 12
Registriert: 07.02.2017 13:48:56

Re: Cronjob mit PHP5 ausführen lassen

Beitrag von ascTim » 26.07.2017 16:45:09

Danke für den Hinweis. Ich dachte mir, dass es so aussagt: Zu jeder Minute, Stunde, usw.

Neuer Cronjob:

Code: Alles auswählen

*/1 * * * * /usr/bin/php5 /var/www/html/MeinSkript.php
In der Log sehe ich keine Fehler. Was mich etwas verwundert, weil ich eigentlich eine Änderung in der Datenbank sehen müsste.

Code: Alles auswählen

Jul 26 16:33:01 WEBSERVER CRON[11777]: (root) CMD (/usr/bin/php5 /var/www/html/MeinSkript.php)
Jul 26 16:34:01 WEBSERVER CRON[11800]: (root) CMD (/usr/bin/php5 /var/www/html/MeinSkript.php)
Jul 26 16:35:01 WEBSERVER CRON[11807]: (root) CMD (/usr/bin/php5 /var/www/html/MeinSkript.php)
Jul 26 16:36:01 WEBSERVER CRON[11847]: (root) CMD (/usr/bin/php5 /var/www/html/MeinSkript.php)
Was stimmt denn dann nicht?

Benutzeravatar
Meillo
Moderator
Beiträge: 5119
Registriert: 21.06.2005 14:55:06
Wohnort: Balmora
Kontaktdaten:

Re: Cronjob mit PHP5 ausführen lassen

Beitrag von Meillo » 26.07.2017 18:20:19

EOiN hat geschrieben: ↑ zum Beitrag ↑
26.07.2017 16:22:00
ascTim hat geschrieben: ↑ zum Beitrag ↑
26.07.2017 15:55:13
...

Code: Alles auswählen

* * * * * /usr/bin/php5 /var/www/html/MeinSkript.php
...
Dein CronJob ist auch falsch (ich bin mir zumindest sicher, das er falsch ist.), versuche es mal so:

Code: Alles auswählen

#min hour day month weekday command
*/1   *    *    *    *     <dein Befehl>
Der Crontab-Eintrag war nicht falsch. Fuenf Sterne bedeuten eine minuetliche Ausfuehrung (und das sogar in portablerer Weise als mit /1).


Meine Vermutung ist, dass das PHP-Script in irgendeiner Weise ``kaputt'' ist.

Funktioniert es denn korrekt, wenn du es interaktiv aus der Shell aus aufrufst? (Das geht beispielsweise oft schief wenn $_SERVER o.ae. verwendet wird.) Ist das Script warningfrei (php errorlog)? Kannst du aus dem Script Ausgaben erzeugen, die Cron dann per Mail zustellt? Stimmen die Dateirechte des Scripts? ... Das waeren ein paar Ansatzpunkte zum Debuggen.
Use ed(1) once in a while!

thoerb
Beiträge: 952
Registriert: 01.08.2012 15:34:53
Lizenz eigener Beiträge: MIT Lizenz

Re: Cronjob mit PHP5 ausführen lassen

Beitrag von thoerb » 26.07.2017 20:26:22

Hast du irgendwelche relative Pfadangaben mit include, require oder ähnliches in deinem Script, dann könnte das helfen:

Code: Alles auswählen

* * * * * cd /var/www/html/ && /usr/bin/php5 MeinSkript.php
Siehe auch: https://stackoverflow.com/questions/505 ... a-cron-job

ascTim
Beiträge: 12
Registriert: 07.02.2017 13:48:56

Re: Cronjob mit PHP5 ausführen lassen

Beitrag von ascTim » 27.07.2017 09:08:40

Danke für die Hinweise.
Meillo hat geschrieben: ↑ zum Beitrag ↑
26.07.2017 18:20:19
Funktioniert es denn korrekt, wenn du es interaktiv aus der Shell aus aufrufst?
Das lief zuerst auf Fehler. Habe dann aber den Beitrag von thoerb berücksichtigt und den cd-Befehl ausgeführt. Dann lief es.
thoerb hat geschrieben: ↑ zum Beitrag ↑
26.07.2017 20:26:22
Hast du irgendwelche relative Pfadangaben mit include, require oder ähnliches in deinem Script, dann könnte das helfen:

Code: Alles auswählen

* * * * * cd /var/www/html/ && /usr/bin/php5 MeinSkript.php
Siehe auch: https://stackoverflow.com/questions/505 ... a-cron-job
Das scheint meine Lösung zu sein. Mit dem "cd /var/www/html &&" bekomme ich laut Log keine Fehlermeldung, der Datenbankeintrag hat sich geändert, so wie es sein soll.


Vielen Dank für Eure schnelle Antworten und Problemlösung!

Benutzeravatar
Meillo
Moderator
Beiträge: 5119
Registriert: 21.06.2005 14:55:06
Wohnort: Balmora
Kontaktdaten:

Re: Cronjob mit PHP5 ausführen lassen

Beitrag von Meillo » 27.07.2017 09:19:04

ascTim hat geschrieben: ↑ zum Beitrag ↑
27.07.2017 09:08:40
Das scheint meine Lösung zu sein. Mit dem "cd /var/www/html &&" bekomme ich laut Log keine Fehlermeldung, der Datenbankeintrag hat sich geändert, so wie es sein soll.

Vielen Dank für Eure schnelle Antworten und Problemlösung!
Schoen. :-)

Bitte setze den Thread noch auf geloest, indem du den ersten Post editierst und dort im Titel ein ``[geloest]'' o.ae. einfuegst.
Use ed(1) once in a while!

Antworten