Cronjob Ausgabe speichern & sinnvoll nutzen
Viele Cronjob Anbieter ermöglichen als Feature die Speicherung der Cronjob Ausgabe bis zu einer gewissen Zeichenlänge. Und genau darum soll es in diesem Artikel gehen.
Wofür kann ich dieses Feature nutzen?
Da gibt es mehrere Möglichkeiten, unter anderem:
- Speichern von Fehlermeldungen
Gerade bei Cronjobs, die einiges an Aufgaben zu erledigen haben, kann schnell mal etwas schief gehen. Ohne die Protokollierung der Fehlermeldungen weißt du dann nicht, wo der Fehler liegt und kannst ihn dementsprechend nicht beheben.
- Speichern von Statistiken
- Speichern der Zeit, zu der der Cronjob ausgeführt worden ist
Häufig ist es jedoch so, dass dieses Feature nur im kostenpflichtigen Account genutzt werden kann (vergleiche die Liste der Cronjob Anbieter). Doch es gibt da noch eine andere Möglichkeit, die ich dir gerne vorstellen möchte.
Cronjob Ausgabe mit PHP speichern
Schon mit wenigen Codezeilen kannst du selber die Ausgabe deines Cronjobs auf deinem Webserver erstellen.
Fehlermeldungen anzeigen: Wenn du die Fehlermeldungen protokollieren möchtest, sollte folgender PHP Code an oberste Stelle stellen:
error_reporting(E_ALL);
ini_set('display_errors', 1);
Dadurch sollten mit Benutzen der 2. Möglichkeit (siehe unten), auch die Fehlermeldungen gespeichert werden.
Ausgabe (Möglichkeit 1): Du initialisierst zunächst eine Variable zum Beispiel so: $e = ""; anschließend benutzt du statt oder zusätzlich zu echo den folgenden Code: $e .= "Ausgabe";.
Du hängst also jede weitere Ausgabe an die bereits initialisierte Variable an und hast dadurch letztlich alle Ausgaben in einer Variable. Am Ende musst du diesen Code nur noch abspeichern - siehe entsprechender Abschnitt in diesem Artikel.
Ausgabe (Möglichkeit 2):
function save_echo ($e) {
// hier den Code aus dem Abschnitt "Speichern" (siehe unten) einfügen um
die Ausgaben in einer Datei zu speichern
return $e;
}
ob_start("save_echo");
// Ausgaben, z.B. durch echo oder normale HTML Ausgaben //
ob_end_flush();
Damit werden alle Ausgaben zunächst zwischengespeichert und vor der endgültigen Ausgabe durch die Funktion save_echo() verarbeitet. In dieser kannst du die Ausgabe dann in einer Datei speichern (Abschnitt "Speichern").
Wenn du mehr zu dieser Zwischenspeicherung der Ausgaben erfahren möchtest, dann klicke hier.
Speichern in einer Datei: Nachdem du nun die Ausgaben sammelst, solltest du sie noch in einer Datei speichern, das kannst du zum Beispiel so machen (es wird bei jedem Aufruf eine neue Datei im Ordner crons angelegt - Du musst den Ordner crons wahrscheinlich noch im Verzeichnis des Skriptes - mit Schreibrechten - anlegen).
$filename = "crons/e-".date('d-H-i-s');
file_put_contents($filename, $e); // $e = gespeicherte Ausgabe
Weitere PHP Tipps
Auf dieser Website wurden weitere Tipps veröffentlicht, die durch wenige PHP-Code Zeilen, ein vermeintlich wichtiges Feature auf deinen Server holen.
- PHP: Testskript für Cronjob Anbieter
Um die verschiedenen Anbieter auf ihre Verlässlichkeit zu testen, habe ich von einem eigenen kleinen PHP-Skript Gebraucht gemacht.
Genau dieses Skript befindet sich in dem Artikel und kann von dir verwendet werden.
- PHP: Laufzeit aushebeln
Nicht nur 30 Sekunden! Nicht nur 60 Sekunden, sondern so viel du möchtest (oder dein Server zulässt).
Mit PHP kannst du die Laufzeit (theoretisch) unendlich verlängern.