Hallöchen!
Ich habe cron, wget und cURL auf meinem Ubuntu installiert.
Folgendes funktioniert:
Das auch:
Der Inhalt von crontest.php schreibt die Uhrzeit minütlich in ein Textfile, was klar aufzeigt, dass das soweit funktioniert:
Jetzt kommt das Problem:
Die Webseite, die ich real nutze, prüft bei jedem Seitenaufruf, ob zwei PHP-Jobs laufen. Falls nicht, werden sie aktiviert und verrichten ihren Dienst.
Falls die Jobs ausfallen und sie niemand zwischenzeitlich mit dem Besuch der Seite neu startet, findet am Ende des Tags kein Bericht statt.
Dies ruft Crontabs auf den Plan. Mein Gedankengang war, die Website einfach per Crontab aufzurufen. Was über den Browser funktioniert, versagt jedoch auch per Putty, obwohl darüber angezeigt wird, dass die Seite tatsächlich geladen worden ist. Das ist etwas verwirrend. Mein zweiter Ansatz bestand darin, jene Klasse aufzurufen, die die Jobs startet. Das funktioniert via Putty weder mittels wget noch mit cURL, obwohl zweifelsfrei die Verarbeitung der Website bzw. des aufgerufenen Scripts durch Status 200 signalisiert wird.
Das erschließt sich mir nicht.
Ein Blick in die Datenbank verrät, dass weder die zwei Jobs gestartet worden sind, noch dass die Seite aufgerufen worden sei. Natürlich wurde sie aufgerufen, was ja durch den Status 200 repräsentiert wird.
Da steht der Thor nun etwas auf dem Schlauch!
Jemand die perfekte Idee?
Wenn ich so recht überlege, ist das eigentlich gar kein Problem von Cron, weil es ja nicht einmal via Putty funktioniert. Was denkst du darüber?
Ich habe cron, wget und cURL auf meinem Ubuntu installiert.
Folgendes funktioniert:
Code:
putty: wget --spider https://**********.de/crontest.php // --spider sei dasselbe wie: -O /dev/null
Das auch:
Code:
1. Aufruf von: crontab -e
2. Hinzufügung von: */1 * * * * wget --spider https://**********.de/crontest.php
Der Inhalt von crontest.php schreibt die Uhrzeit minütlich in ein Textfile, was klar aufzeigt, dass das soweit funktioniert:
PHP:
file_put_contents(__DIR__ . '/crontest.txt', date("H:i:s")."\n", FILE_APPEND);
Jetzt kommt das Problem:
Die Webseite, die ich real nutze, prüft bei jedem Seitenaufruf, ob zwei PHP-Jobs laufen. Falls nicht, werden sie aktiviert und verrichten ihren Dienst.
Falls die Jobs ausfallen und sie niemand zwischenzeitlich mit dem Besuch der Seite neu startet, findet am Ende des Tags kein Bericht statt.
Dies ruft Crontabs auf den Plan. Mein Gedankengang war, die Website einfach per Crontab aufzurufen. Was über den Browser funktioniert, versagt jedoch auch per Putty, obwohl darüber angezeigt wird, dass die Seite tatsächlich geladen worden ist. Das ist etwas verwirrend. Mein zweiter Ansatz bestand darin, jene Klasse aufzurufen, die die Jobs startet. Das funktioniert via Putty weder mittels wget noch mit cURL, obwohl zweifelsfrei die Verarbeitung der Website bzw. des aufgerufenen Scripts durch Status 200 signalisiert wird.
Das erschließt sich mir nicht.
Code:
root@Ubuntu21-64Bit:~# wget https://**********.de/
--2022-07-08 14:33:58-- https://**********.de/
Resolving **********.de (**********.de)... **.***.***.***
Connecting to **********.de (**********.de)|**.***.***.***|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: unspecified [text/html]
Saving to: ‘index.html.1’
Ein Blick in die Datenbank verrät, dass weder die zwei Jobs gestartet worden sind, noch dass die Seite aufgerufen worden sei. Natürlich wurde sie aufgerufen, was ja durch den Status 200 repräsentiert wird.
Da steht der Thor nun etwas auf dem Schlauch!
Jemand die perfekte Idee?
Wenn ich so recht überlege, ist das eigentlich gar kein Problem von Cron, weil es ja nicht einmal via Putty funktioniert. Was denkst du darüber?