Cronjob sendet Statusnachricht?

vom 07.01.2012, 19:48 Uhr

Ich habe mir ein kleines Script geschrieben, welches Datensätze aus einer Datenbank löschen soll, die veraltet sind und somit dort auch nicht mehr etwas zu suchen haben. Nun habe ich mir gedacht, dass ich die Aufgabe von einem Cronjob erledigen lasse. Dafür habe ich den Cronjob so eingestellt, dass er zu bestimmten Zeiten eine Datenbankabfrage durchführt, alte Datensätze sucht und diese dann löscht. Das ganze funktionierte auch sehr gut.

Als ich allerdings nun in mein Mail-Postfach schaute, habe ich folgende Meldung vom Cronjob gesehen:

Code: Alles auswählen
X-Powered-By: PHP/5.3.3-7+squeeze3
Content-type: text/html

Wisst ihr, wie es zu der Nachricht kommt? Wie kann man diese Nachricht verhindern? Was sagt diese Nachricht überhaupt alles aus und benötigt man diese Mail oder ist sie im Grunde einfach überflüssig und kann somit falls möglich unterdrückt werden?

» fragender » Beiträge: 195 » Talkpoints: 39,55 » Auszeichnung für 100 Beiträge



Ich habe noch keine Erfahrungen mit Cronjobs sammeln können. Allerdings ist es meines Wissens dort standardmäßig so eingestellt, dass eine Email versendet wird. In deinem Fall handelt es sich um eine leere Email im Text- beziehungsweise HTML-Format.

Diese Funktion ist natürlich sehr praktisch. Du könntest deinen Code so editieren, dass die in der Email ausgegeben wird, wie viele Datensätze beispielsweise gelöscht wurden. Oder was noch viel wichtiger ist, ob ein Fehler aufgetreten ist.

Durch das automatisierte Löschen von Datensätzen können sehr viele schwerwiegende Fehler verursacht werden. Daher sollte dein Programm natürlich sehr gut mit allen möglichen Fehler umgehen können. Sonst könnte es dir mal passieren, dass der komplette Inhalt der Datenbank gelöscht wird. Darum würde ich mir an deiner Stelle immer ausgeben, wie viele Datensätze gelöscht wurden und falls ein Fehler aufgetreten ist, dann auf jeden Fall das Programm abbrechen lassen und die eben den Fehler, zum Debuggen, ausgeben lassen.

Benutzeravatar

» hennessy221 » Beiträge: 5132 » Talkpoints: -1,94 » Auszeichnung für 5000 Beiträge


Das Script habe ich natürlich vorher mit einer reinen Abfrage getestet. Es ist somit sichergestellt, dass nur die Datensätze gelöscht werden, die älter als 5 Tage sind und gleichzeitig noch nicht per Mail bestätigt wurden. Durch den WHERE Teil des SQL Statements ist es also gewährleistet, dass alle Datensätze, die bereits aktiviert wurden, davon nicht beachtet werden.

Ich habe es nun glücklicherweise geschafft, eine Lösung zu finden. Es reichte, folgendes an den vorhanden Cronjob, der dafür sorgt, dass ein PHP Script ausgeführt wird, anzuhängen:

Code: Alles auswählen
>/dev/null 2>&1
. Daher habe ich nun auch keine Probleme mehr und das Script wird dennoch ausgeführt.

» fragender » Beiträge: 195 » Talkpoints: 39,55 » Auszeichnung für 100 Beiträge



Ähnliche Themen

Weitere interessante Themen

^