Cronjob Problem

klondeik

Well-known member
ID: 89768
L
4 Mai 2007
4.426
1.786
Hallo,

ich möchte auf einem Linux Server einen Cronjob ausführen lassen, das war noch nicht das Problem, der Cronjob ist eingerichtet, Zeit stimmt alles, soweit OK.
Das Problem ist über den Cronjob möchte ich eine PHP Datei ausführen lassen die allerdings einen Schlüssel enthalten muss also
z.B. dateineme.php?key=1234567
Der Cronjob erkennt das ja Logischerweise nicht da der Dateiname ja so nicht existiert.
Jetzt die Frage wie kann ich dieses Cronjob trotzdem ausführen lassen.

Ich hatte es schon mal probiert mit einer anderen PHP wo ich den Header weiterleiten lasse, das geht aber auch nicht so ganz. Die Rechte sind auch so angelegt, das man das ausführen darf, daran liegt es auch nicht.

Kann mir bitte irgendjemand helfen?
 
PHP von der Kommandozeile:
https://www.problem-hilfe.de/linux/h/PHP/Kommandozeile.html

crontab-Syntax:
https://www.adminschoice.com/crontab-quick-reference/


Der Eintrag (täglich um 23:30 Uhr ausführen) könnte etwa so aussehen:
30 23 * * * php 'dateineme.php?key=1234567'

(vorsichsthalber mit vollständigem Pfad eintragen)


edit: Falls die Parameter so nicht übergeben werden können müßtest Du sie einzeln auf die Kommandozeile packen. Dem Script stehen sie dann als $_SERVER["argc"] (Anzahl der übergebenen Argumente) und $_SERVER["argv"] (Array mit den Argumenten) zur Verfügung.
https://www.php-faq.de/q-php-shell.html
 
Zuletzt bearbeitet:
Wenn du Parameter mit ? übergeben willst, musst du das Script über den HTTP-Server aufrufen. wget hilft. (...wobei man hier irgendwie an der Fähigkeit des Programmierers zweifeln sollte, wenn man so ein Script in die crontab eintragen soll :roll:)
 
Es gibt die möglichkeit bei Linux über
curl einen PHP Link aufzurufen

Bei mir aufm server liegt curl hier:
/usr/bin/curl

Wäre dann vor den http aufruf zu packen.

Nutze ich auch für ein paar Crons.
Wobei mir dein GET Wert trotzdem nicht gerade gut vorkommt.
das kann man sicher auch anders lösen
 
Mit PHP-Cli wäre die Sache geritzt, dürfte bei den meisten, die Apache+PHP installiert haben, sogar schon installiert sein